还原没有ldf 文件的数据库:

1、拿数据库pcb1做测试。

 关于工作之:【SQLServer】还原没有.ldf 文件的数据库_还原没有ldf 文件的数据库:  1
2、数据库文件和数据库日志文件。
关于工作之:【SQLServer】还原没有.ldf 文件的数据库_还原没有ldf 文件的数据库:  1_02

3、现删除数据库日志文件,模拟日志文件丢失的情况。

关于工作之:【SQLServer】还原没有.ldf 文件的数据库_还原没有ldf 文件的数据库:  1_03


4、现在新建一个数据库,与原数据库同名。
关于工作之:【SQLServer】还原没有.ldf 文件的数据库_还原没有ldf 文件的数据库:  1_04

5、然后停止数据库服务,右键停止即可。
关于工作之:【SQLServer】还原没有.ldf 文件的数据库_还原没有ldf 文件的数据库:  1_05
6、然后把备份的数据库文件,复制到新的同名数据库文件位置,并覆盖新建的数据库.mdf文件.
关于工作之:【SQLServer】还原没有.ldf 文件的数据库_还原没有ldf 文件的数据库:  1_06

7、现在打开数据库,是打不开的,提示错误。
关于工作之:【SQLServer】还原没有.ldf 文件的数据库_还原没有ldf 文件的数据库:  1_07


8、现在输入

select state_desc from sys.databases where name='PCB1' --检查数据库是联机\脱机

运行结果,显示恢复在进行中,就是未完全恢复。

关于工作之:【SQLServer】还原没有.ldf 文件的数据库_还原没有ldf 文件的数据库:  1_08

9、现在输入:

alter database PCB1 set online --设置数据库在线

系统也会报错,提示日志文件不匹配。
关于工作之:【SQLServer】还原没有.ldf 文件的数据库_还原没有ldf 文件的数据库:  1_09

10、现在将数据库设为紧急模式:

alter database PCB1 set emergency--设为紧急模式
alter database PCB1 set single_user--设为单用户

dbcc checkdb (PCB1,repair_allow_data_loss) with no_infomsgs --修复数据库

dbcc checkdb (PCB1) --检查数据库状态1

select state_desc from sys.databases where name='PCB1' --检查数据库状态2

alter database PCB1 set multi_user--设为多用户模式
关于工作之:【SQLServer】还原没有.ldf 文件的数据库_还原没有ldf 文件的数据库:  1_10


11、一般模式,先检查数据库状态,【设为紧急】--【设置单用户】--【修复数据库】--【检查数据库状态】--【这是多用户】
关于工作之:【SQLServer】还原没有.ldf 文件的数据库_还原没有ldf 文件的数据库:  1_11
  

数据库可用.收工