只有MDF的文件下的sql server数据库恢复
2016-11-02 10:11
246 查看
对于sql 数据库丢失日志文件(ldf)只有数据文件(mdf)的时候使用此方法修复。
我们执行了下面的步骤:
1. 在SQL Server Management Studio中删除状态为Recovery Pending的(即丢失了LDF的)问题数据库.
2. 重命名老的MDF文件.
3. 重建一个新的数据库, 名字跟刚刚删除的数据库完全一样. 注意, 新的MDF的位置跟我们老的MDF的文件的位置相同. 这里的LDF文件的位置选在你想要存放的最终位置上(这个就是你所要的被恢复的LDF文件了).
4. 停掉SQL Server服务, 将新的MDF重命名掉, 老的MDF命名回原来的名字.
5. 启动SQL Server服务, 这时这个数据库的状态会变为Recovery Pending. 我们开始执行下面的脚本.
6.运行:
笔者在运行上面的脚本的时候, 遇到了一个报错. 在运行了命令alter database contentdb1 set single_user with rollback immediate之后, 运行alter database contentdb1 rebuild log on 的时候说数据库在single user mode, 我的当前用户无法执行命令.
我使用了命令exec sp_who2, 发现我的contentdb1上有个suspend的session, 执行命令kill XY 杀掉这个死掉的session之后, 问题解决.
我们执行了下面的步骤:
1. 在SQL Server Management Studio中删除状态为Recovery Pending的(即丢失了LDF的)问题数据库.
2. 重命名老的MDF文件.
3. 重建一个新的数据库, 名字跟刚刚删除的数据库完全一样. 注意, 新的MDF的位置跟我们老的MDF的文件的位置相同. 这里的LDF文件的位置选在你想要存放的最终位置上(这个就是你所要的被恢复的LDF文件了).
4. 停掉SQL Server服务, 将新的MDF重命名掉, 老的MDF命名回原来的名字.
5. 启动SQL Server服务, 这时这个数据库的状态会变为Recovery Pending. 我们开始执行下面的脚本.
alter database contentdb1 set emergency alter database contentdb1 set single_user with rollback immediate alter database contentdb1 rebuild log on (name=ContentDB1_log,filename='E:\CDBLOG\contentdb1log.ldf') ALTER DATABASE contentdb1 SET MULTI_USER with rollback immediate这时数据库的状态就应该恢复正常了.
6.运行:
use 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:\DataBase\Survey.mdf' 中、偏移量为 0x0000003dd6e000 的位置对数据库 ID 7 中的页 (1:126647) 执行 读取 期间,发生了该错误。SQL Server 错误日志或系统事件日志中的其他消息可能提供了更详细信息。这是一个威胁数据库完整性的严重错误条件,必须立即纠正。请执行完整的数据库一致性检查(DBCC CHECKDB)。此错误可以由许多因素导致;有关详细信息,问题解决.(此过程时间有点长,本次修复一个170多M的MDF文件,大概耗时2个半小时左右).
笔者在运行上面的脚本的时候, 遇到了一个报错. 在运行了命令alter database contentdb1 set single_user with rollback immediate之后, 运行alter database contentdb1 rebuild log on 的时候说数据库在single user mode, 我的当前用户无法执行命令.
我使用了命令exec sp_who2, 发现我的contentdb1上有个suspend的session, 执行命令kill XY 杀掉这个死掉的session之后, 问题解决.
相关文章推荐
- 恢复只有MDF文件的SQL SERVER数据库
- 恢复只有MDF文件的SQL SERVER数据库
- sqlserver 只有MDF文件恢复数据库
- 从MDF文件恢复Sql Server数据库
- 只有mdf和ldf文件,甚至只有mdf文件,如何恢复数据库
- 只有mdf文件的恢复技术
- MDF文件在SQL Server数据库中恢复技术
- MDF文件在SQL Server数据库中恢复技术
- (转)sql2005恢复只有mdf文件的数据库
- 只有mdf文件的恢复技术
- SQL2005只有.mdf文件的恢复方法
- 只有mdf文件的恢复技术
- 只有mdf文件的恢复技术
- sqlserver只有MDF文件恢复数据库的方法
- 只有mdf文件的恢复技术
- 数据库只有mdf文件而没有ldf文件,如何恢复数据库
- 只有MDF文件恢复
- 只有mdf文件的恢复技术
- sqlserver只有MDF文件恢复数据库的方法
- 只有mdf文件的恢复技术