`
touchinsert
  • 浏览: 1287747 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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、运行下面的命令就可以恢复数据库:

图片点击可在新窗口打开查看use 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'single', N'false'--将目标数据库置为多用户状态

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

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

在某些偶然的情况下,会引起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、运行下面的命令就可以恢复数据库:

图片点击可在新窗口打开查看use 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'single', N'false'--将目标数据库置为多用户状态

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

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

相关推荐

    SQL SERVER数据库无日志恢复

    MS SQL SERVER数据库日志文件物理损坏后的无日志恢复数据库的方法。

    SqlMDF数据提取工具

    6、、系统崩溃只剩下Sqlserver数据文件的情况下的恢复,即无日志文件或者日志文件损坏情况下的恢复。 7、SqlServer数据文件内部存在坏页情况下的恢复。 8、在Sql Server运行在简单日志模式、完全日志模式或者大容量...

    计算机等考三级数据库辅导:SqlServer日志文件损坏时恢复数据的方法.docx

    计算机等考三级数据库辅导:SqlServer日志文件损坏时恢复数据的方法.docx

    完美解决SQL server 5173问题(一个或多个文件与数据库的主文件不匹配)

    消息 5173,级别 16,状态 2,第 ...如果这是现有数据库,则文件可能已损坏,应该从备份进行还原。 如果出现这个错误,不用急,这是mdf和ldf不一致导致,ldf文件损坏了,按本尊方法新建ldf文件,就能完美解决 !!!!

    sqlserver数据库恢复工具

    ApexSQL Log 2018是一款实用的sql数据库误操作恢复工具,之前小编为大家提供过ApexSQL Log 2016版本的下载,这个版本增加了对sql2008,sql2012以及2018版本的支持,支持对数据进行审计,查看操作日志,以及查看完整...

    赤兔SQL Server数据库恢复软件 v14.4.zip

    赤兔SQL Server数据库恢复软件可以处理微软SQL数据库丢失,数据库损坏,数据库备份损坏,数据库日志损坏等故障下的数据恢复。 赤兔SQL Server数据库恢复软件功能: 1、去掉了之前老版本的页面分析和碎片分析的界面,...

    数据库损坏和置疑修复方法

    Sql Server数据库本身依赖于操作系统、文件读写存储等环境,数据库经常因为操作系统、异常关机、异常终止退出或者SQL Server数据库本身的机制问题均会导致数据库无故损坏,其中数据库损坏的主要原因如下: ...

    SQL Server无日志恢复数据库(2种方法)

    应用很广泛,在进行SQL Server数据库操作的过程中难免会出现误删或者别的原因引起的日志损坏,又由于SQL Server数据库中数据的重要性,出现了以上的故障之后就必须对数据库中数据进行恢复。下文就为大家介绍一种恢复...

    sql数据库置疑恢复

    sql数据库置疑恢复,SQL Server 2000中的一个数据库因为断电,重启后发现处于置疑状态,无法使用了,怀疑是日志文件损坏,用 sp_detach_db 无法正确分离数据库,而且用 sp_attach_single_file_db 也无法重新附加...

    DBRecovery 2018 Suite 数据库修复工具

    维修损坏的SQL Server数据库备份和日志(MDF,NDF,比克,LDF)。 工程数据库的恢复 维修损坏的工程数据库(WDB)。 DBFRecovery 维修损坏的Visual FoxPro数据库(DBF)。 该产品还支持dBASE和FOXBASE文件。 为...

    SQL Server 2008管理员必备指南(超高清PDF)Part3

    《SQL Server 2008管理员必备指南》适合所有SQL Server用户参考,更是数据库管理员的必备指南。 编辑推荐 《SQL Server 2008管理员必备指南》教你全面掌握SQL Server 2008的必备指南!这本实用指南讲述了SQL Server ...

    SQL Server维护

    目录 SQL Server维护 1 适用人员: 2 一、 SQL Server安装 4 SQL 2000安装 4 检查SQL Server 2000版本 20 ...4.数据库日志损坏的修复 155 5. 数据库质疑的一般处理 156 6.还原数据库到指定时间点 156

    SQL Server 2008管理员必备指南(超高清PDF)Part1

    《SQL Server 2008管理员必备指南》适合所有SQL Server用户参考,更是数据库管理员的必备指南。 编辑推荐 《SQL Server 2008管理员必备指南》教你全面掌握SQL Server 2008的必备指南!这本实用指南讲述了SQL Server ...

    SQL Server 2008管理员必备指南(超高清PDF)Part2

    《SQL Server 2008管理员必备指南》适合所有SQL Server用户参考,更是数据库管理员的必备指南。 编辑推荐 《SQL Server 2008管理员必备指南》教你全面掌握SQL Server 2008的必备指南!这本实用指南讲述了SQL Server ...

    SQLServer日志清空语句(sql2000,sql2005,sql2008)

    时候当系统运行时间比较长的时候,我们把备份的数据库还原的时候发现,数据库中数据文件和日志文件变的好大,特别是日志文件。现在给大家介绍如何清理SQLServer数据库日志

    mdf数据库恢复

    赤兔SQL Server数据库恢复软件可以处理微软SQL数据库丢失,数据库损坏,数据库备份损坏,数据库日志损坏等故障下的数据恢复。   产品功能如下: 1、去掉了之前老版本的页面分析和碎片分析的界面,直接就一个库界面,...

    蓝梦软件BestRecoveryForSQL碎片级数据恢复软件

    BestRecoveryForSQL可以处理微软SQL数据库丢失,数据库损坏,数据库备份损坏,数据库日志损坏等故障下的数据恢复(.mdf, .ndf, .bak, .ldf). 支持以下版本的SQL Server: 2008, 2008 64位版, 2008 Express, 2005, 2005 ...

    数据库灾难性恢复(数据库技术;灾难性;恢复;数据备份)

    保留数据库日志文件与数据库备份一起创建了更完善的 DR 解决方案。日志文件允许恢复备份之间发生的数据更改。该解决方案的真正复杂性在于保护日志文件以确保它们在恢复期间的可用性。如果选择实现双日志记录,DB2 ...

    SQL SERVER 9003错误解决方法

    看是9003错误,就想到可能是由于日志文件的原因,再看数据库文件可能损坏,于是想到dbcc checkdb指令. 方法如下: 1.我们使用默认方式建立一个供恢复使用的数据库(如pos)。可以在SQL Server Enterprise Manager里面...

    操作系统重装后oracle数据库的恢复

    a、确认数据库的初始化配置文件、数据文件、重作日志文件、控制文件等没有被损坏或缺失。 b、使用oradim工具重建实例服务。如oradim -new -sid test -startmode m -pfile d:\oracle\admin\test\pfile\init.ora ...

Global site tag (gtag.js) - Google Analytics