SQL日志文件丢失,只有MDF恢复
2010-08-06 09:17
344 查看
新建一个同名的数据库,然后把数据库设置为emergency mode,sysdatabases的status为32768 就表示数据库处于此状态。
不过系统表是不能随便改的,设置一下先
Use Master
Go
sp_configure 'allow updates', 1
reconfigure with override
Go
然后
update sysdatabases set status = 32768 where name = '<db_name>'
以上操作完了之后,把msql的server服务给停了,然后把需要恢复的MDF文件替换掉新建的MDF文件。操作完之后,再开启MSSQL服务,成功的机会还是相当大的,系统一般都会认可你新建立的日志。
============================================================
此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表
G.下面执行真正的恢复操作,重建数据库日志文件
dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf')
H.验证数据库一致性(可省略)
dbcc checkdb('test')
一般执行结果如下:
CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 'test' 中)。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
I.设置数据库为正常状态
sp_dboption 'test','dbo use only','false'
如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。
J.最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL Server Enterprise Manager里面恢复,也可以使用如下语句完成
sp_configure 'allow updates',0
go
reconfigure with override
go
================================================
最后就要检查数据了:
先设置成单用户模式,然后做dbcc
sp_dboption '<db_name>', 'single user', 'true'
DBCC CHECKDB('<db_name>')
如果没有什么大问题就可以把数据库状态改回去了,记得别忘了把系统表的修改选项关掉。
update sysdatabases set status = 28 where name = '<db_name>' --当然你的数据库状态可能不是这个,自己改为合适的值吧。也可以用sp_resetstatus
go
sp_configure 'allow updates', 0
reconfigure with override
Go
不过系统表是不能随便改的,设置一下先
Use Master
Go
sp_configure 'allow updates', 1
reconfigure with override
Go
然后
update sysdatabases set status = 32768 where name = '<db_name>'
以上操作完了之后,把msql的server服务给停了,然后把需要恢复的MDF文件替换掉新建的MDF文件。操作完之后,再开启MSSQL服务,成功的机会还是相当大的,系统一般都会认可你新建立的日志。
============================================================
此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表
G.下面执行真正的恢复操作,重建数据库日志文件
dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf')
H.验证数据库一致性(可省略)
dbcc checkdb('test')
一般执行结果如下:
CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 'test' 中)。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
I.设置数据库为正常状态
sp_dboption 'test','dbo use only','false'
如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。
J.最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL Server Enterprise Manager里面恢复,也可以使用如下语句完成
sp_configure 'allow updates',0
go
reconfigure with override
go
================================================
最后就要检查数据了:
先设置成单用户模式,然后做dbcc
sp_dboption '<db_name>', 'single user', 'true'
DBCC CHECKDB('<db_name>')
如果没有什么大问题就可以把数据库状态改回去了,记得别忘了把系统表的修改选项关掉。
update sysdatabases set status = 28 where name = '<db_name>' --当然你的数据库状态可能不是这个,自己改为合适的值吧。也可以用sp_resetstatus
go
sp_configure 'allow updates', 0
reconfigure with override
Go
相关文章推荐
- SQL的日志文件丢失,只有MDF文件,怎么把数据恢复
- SQL Server 2005 在只有MDF文件的情况下恢复(丢失日志文件)
- SQL只有MDF文件的恢复--SQL无日志LDF文件的恢复(图解)
- SQL2005 如何在没有日志文件的情况下如何恢复MDF数据库文件
- sql server 没有日志文件只有数据文件(.mdf) 的数据库恢复方法
- SQL恢复master数据库方法 只有mdf文件的数据库如何恢复
- SQL2005恢复只有mdf文件的数据库
- SQL2005恢复只有mdf文件的数据库 自动备份数据
- [强烈推荐]Oracle:只有rman备份(数据,参数,日志,控制文件全丢失)的恢复
- SQL2005恢复只有mdf文件的数据库
- SQL2005恢复只有mdf文件的数据库
- Oracle:只有rman备份(数据,参数,日志,控制文件全丢失)的恢复
- SQL Server 没有日志文件(*.ldf) 只有数据文件(*.mdf) 恢复到SQL Server2005
- SQLServer2005 没有日志文件(*.ldf) 只有数据文件(*.mdf) 恢复数据库的方法
- SQL Server 没有日志文件(*.ldf) 只有数据文件(*.mdf) 恢复到SQL Server2005
- 删除SQL日志.单一MDF文件恢复.
- (转)sql2005恢复只有mdf文件的数据库
- [SQL灾难修复]只有mdf文件的恢复技术
- SQLServer2005 没有日志文件(*.ldf) 只有数据文件(*.mdf) 恢复数据库的方法
- SQL Server 没有日志文件(*.ldf) 只有数据文件(*.mdf) 恢复到SQL Server2005