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. 可继续执行事务日志备份。
通过以上处理后,再去使用备份工具进行数据库备份,不再报错。
|