MDF损坏或LDF文件损坏
当MDF损坏时
1.备份结尾日志
http://www.cnblogs.com/gered/p/8964424.html
2.当LDF损坏时(参考:http://www.cnblogs.com/CareySon/archive/2013/06/16/3138742.html)
(1)重做日志文件
--设置库为紧急状态 alter database [11test] set emergency --设置为单用户模式 alter database [11test] set single_user use master; GO alter database [11test] set Emergency; GO exec sp_dboption [11test], single, true GO --重建数据库日志文件 alter database [11test] Rebuild Log on (name=FightWarPkDb,filename='C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\11test_log.LDF') GO alter database [11test] set multi_user
1.数据库正常关闭,日志损坏。
当数据库正常关闭时,日志损坏就不是那么重要了,因为此时数据库中所有提交的事务对应的脏数据都已经CheckPoint到物理磁盘,因此不存在数据不一致的问题。因此,如果MDF和NDF文件完好,直接指定 FOR ATTACH_REBUILD_LOG参数后附加即可,如图所示。
但值得注意的是,使用该方式附加数据库会自动重建日志文件,日志文件大小为0.5MB,也就是2个VLF,自动增长为10%,因此您需要手动再来设置一下日志的大小,避免出现太多VLF的情况。
2.替换法
【】新建一个同名数据库
【】下线(或关掉引擎服务),然后删掉新建同名数据库的MDF,把出问题的数据库MDF文件替换
【】上线/重启引擎服务