`
touchinsert
  • 浏览: 1297292 次
  • 性别: 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文件丢失也可以恢复。
分享到:
评论

相关推荐

    sqlserver清理数据库日志

    SQL Server 中的数据库日志是记录数据库所有操作的日志文件,这些日志文件会不断增长,占用大量的磁盘空间。如果不定期清理这些日志文件,可能会导致磁盘空间不足,影响数据库性能。本文将介绍如何清理 SQL Server ...

    SQL SERVER数据库无日志恢复

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

    SqlMDF数据提取工具

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

    SQl Server数据库损坏后的恢复方法.pdf

    "SQL Server数据库损坏后的恢复方法" SQL Server数据库损坏后的恢复方法是指在SQL Server数据库系统中,为了避免数据损失和系统崩溃,需要采取的一系列措施。这些措施包括定期备份数据、使用磁盘阵列等设备来提高...

    Oracle 数据库修复,IBM DB2 数据库修复,MY SQL 数据库修复,SQL Server 数据 库修复,Sybase 数据库,Foxpro 数据库,Access 数据库,Informix 数据库,SAS 数据库 ,Dbase 数据库,NCR 数据库 。

    数据库修复技术可以解决数据库损坏、数据库文件丢失、数据库日志损坏、数据库表单损坏、数据库索引损坏等问题。数据库修复技术可以恢复各种数据库版本,可以恢复各种数据表、数据类型、数据对象、代码等。

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

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

    SQLSERVER误删log_ldf文件解决方式.docx

    在这种情况下,急需找到一种可靠的解决方案来恢复数据库的日志文件。本文将详细介绍如何解决SQL Server误删log_ldf文件的问题。 解决方案步骤 步骤1:设置数据库为紧急状态 在解决问题之前,需要将数据库设置为...

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

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

    Sql Server数据库数据恢复的几种实用方法.pdf

    Sql Server数据库数据恢复的几种实用方法 ...Sql Server数据库数据恢复需要根据实际情况选择合适的恢复方法,备份数据库、使用数据库快照、事务日志和数据库镜像等方法可以快速恢复数据库数据,减少数据丢失的风险。

    sqlserver数据库恢复工具

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

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

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

    sqlserver事务日志已满解决办法.docx

    解决SQL Server事务日志已满的问题需要对数据库进行详细的分析和处理,包括更改恢复模式、收缩日志文件和恢复到完整模式等步骤。同时,也需要对数据库进行定期维护和备份,以确保数据库的性能和稳定性。

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

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

    SQL Server备份策略与恢复.pdf

    事务日志恢复可以恢复数据库到某个点,数据文件恢复可以恢复整个数据库,系统文件恢复可以恢复系统文件。 在SQL Server中,有多种备份工具可以使用,包括SQL Server Management Studio、SQL Server Backup和Restore...

    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 ...

Global site tag (gtag.js) - Google Analytics