对于sql 数据库丢失日志文件(ldf)只有数据文件(mdf)的时候使用此方法修复。
我们执行了下面的步骤:
不好意思日语1. 在SQL Server Management Studio中删除状态为Recovery Pending的(即丢失了LDF的)问题数据库.
经典英文老歌
2. 重命名老的MDF文件.
儿童歌曲大全mp33. 重建一个新的数据库, 名字跟刚刚删除的数据库完全一样. 注意, 新的MDF的位置跟我们老的MDF的文件的位置相同. 这里的LDF文件的位置选在你想要存放的最终位置上(这个就是你所要的被恢复的LDF文件了).
4. 停掉SQL Server服务, 将新的MDF重命名掉, 老的MDF命名回原来的名字.
勃朗特三姐妹
5. 启动SQL Server服务, 这时这个数据库的状态会变为Recovery Pending. 我们开始执行下面的脚本.
alter databa contentdb1 t emergency
alter databa contentdb1 t single_ur with rollback immediate
alter databa contentdb1 rebuild log on (name=ContentDB1_log, filename='E:\CDBLOG\contentdb1lo
vesl是什么意思g.ldf')voyager
ALTER DATABASE contentdb1 SET MULTI_USER with rollback immediate
5. 这时数据库的状态就应该恢复正常了.
irreplaceable6.运行: u Survey go
黄鹤楼翻译
ALTER DATABASE Survey SET SINGLE_USER DBCC CHECKDB (Survey, repair_allow_data_loss) with NO_INFOMSGS go
ALTER DATABASE Survey SET MULTI_USER go
进行完整性检查,不然程序查询时会报错。 检测到基于一致性的逻辑 I/O 错误 pageid 不正确(应为 1:126647,但实际为 0:0)。在文件 'D:\DataBa\Survey.mdf' 中、偏移量为 0x0000003dd6e000 的位置对数据库 ID 7 中的页 (1:126647) 执行 读取 期间,发生了该错误。SQL Server 错误日志或系统事件日志中的其他消息可能提供了更详细信息。这是一个威胁数据库完整性的严重错误条件,必须立即纠正。请执行完整的数据库一致性检查(DBCC CHECKDB)。此错误可以由许多因素导致;有关详细信息,compile
问题解决.
笔者在运行上面的脚本的时候, 遇到了一个报错. 在运行了命令alter databa contentdb1 t single_ur with rollback immediate之后, 运行alter databa contentdb1 rebuild log on 的时候说数据库在single ur mode, 我的当前用户无法执行命令.
考博英语词汇
我使用了命令exec sp_who2, 发现我的contentdb1上有个suspend的ssion, 执行命令kill XY 杀掉这个死掉的ssion之后, 问题解决.