微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLServer2005数据库日志文件损坏的情况下如何恢复数据库

在某些偶然的情况下,会引起sql Server 2005数据库日志文件的损坏,比如:硬件故障、计算机非正常重启或关机。
sql Server 2005数据库日志文件损坏时,可能会出现以下情况:
1、在sql Server Management Studio显示数据库处于置疑(SUSPECT)状态。
2、事件日志可能会出现如下错误信息:
Could not redo log record (21737:686:9),for transaction ID (0:2334886),on page (1:37527),database 'Test' (database ID 15). Page: LSN = (21735:299:5),type = 2. Log: OpCode = 3,context 19,PrevPageLSN: (21737:615:1). Restore from a backup of the database,or repair the database.

During redoing of a logged operation in database 'Test',an error occurred at log record ID (76116:286:2). Typically,the specific failure is prevIoUsly logged as an error in the Windows Event Log service. Restore the database from a full backup,or repair the database.
3、无法分离数据库
4、用CREATE DATABASE dbname ON ( FILENAME = N'DBFile' ) FOR ATTACH_REBUILD_LOG附加数据库时出现提示:The log cannot be rebuilt because the database was not cleanly shut down.

恢复方法
1、停止数据库服务。
2、将需要恢复的数据库文件复制到另外的位置。
3、启动数据库服务。
4、确认要恢复的数据库文件已经成功复制到另外的位置,然后在sql Server Management Studio删除要恢复的数据库
5、新建同名的数据库(数据库文件名也要相同)。
6、停止数据库服务。
7、用第2步中备份的.mdf文件覆盖新数据库的同名文件
8、启动数据库服务。
9、运行alter database dbname set emergency,将数据库设置为emergency mode
10、运行下面的命令就可以恢复数据库

图片点击可在新窗口打开查看

u
se master

图片点击可在新窗口打开查看


图片点击可在新窗口打开查看

declare @databasename varchar(255
)

图片点击可在新窗口打开查看


图片点击可在新窗口打开查看

set @databasename='要恢复的数据库名称'

图片点击可在新窗口打开查看


图片点击可在新窗口打开查看

exec sp_dboption @databasename,N'single',N'true' --将目标数据库置为单用户状态

图片点击可在新窗口打开查看


图片点击可在新窗口打开查看

dbcc checkdb(@databasename ,REPAIR_ALLOW_DATA_LOSS)

图片点击可在新窗口打开查看


图片点击可在新窗口打开查看

dbcc checkdb(@databasename
,REPAIR_REBUILD)

图片点击可在新窗口打开查看


图片点击可在新窗口打开查看

exec sp_dboption @databasename,N'false'--将目标数据库置为多用户状态

图片点击可在新窗口打开查看


上面的方法是通过.mdf文件恢复数据库,即使log文件丢失也可以恢复。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐