重庆思庄Oracle、Redhat认证学习论坛

标题: SQLSERVER2008 事务日志备份失败错误:Backup detected log corruption in database [打印本页]

作者: 郑全    时间: 2024-1-29 21:33
标题: SQLSERVER2008 事务日志备份失败错误:Backup detected log corruption in database
SQLSERVER2008备份失败,让处理一下,经检查,发现单独备份,也会失败:

use xx
go
backup log xx to disk='NUL:'


直接报:

日志                SQL Server (当前 - 2024/1/29 20:50:00)

消息
BACKUP failed to complete the command BACKUP LOG HDWDateServerDB. Check the backup application log for detailed messages.


日期                2024/1/29 20:50:02
日志                SQL Server (当前 - 2024/1/29 20:50:00)
消息
错误: 3041,严重性: 16,状态: 1。


日期                2024/1/29 20:50:02
日志                SQL Server (当前 - 2024/1/29 20:50:00)
消息
Backup detected log corruption in database xx. Context is FirstSector. LogFile: 2 'c:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\xx_log.ldf' VLF SeqNo: x1893 VLFBase: x490000 LogBlockOffset: x4c5400 SectorStatus: 2 LogBlock.StartLsn.SeqNo: x310030 LogBlock.StartLsn.Blk: x340032 Size: x31 PrevSize: x34



原因:
1. 日志备份时,需要备份自上一次日志备份以来的整个日志链。日志链中的任何log corruption都会报错,并导致日志备份失败。
2. 为何完整备份没有报错呢?因为完整备份只需要少量的事务日志。

解决办法:
SQL Server 没有重建事务日志链的工具和直接方法。通过重建事务日志链解决:
1. 停止该数据库所有的事务;
2. 执行完整备份;
3. 将数据库的恢复模式改为“简单”,此步骤将删除原来的事务日志链。如有大量缓冲区的数据未回写硬盘,请执行 checkpoint。如有必要,可收缩事务日志文件。
4. 再将数据库的恢复模式改回“完整”;
5. 执行完整备份,此步骤将重建事务日志链;
6. 可继续执行事务日志备份。

通过以上处理后,再去使用备份工具进行数据库备份,不再报错。






欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2