SQLSERVER2012备份日志报错:”读取失败: 23(数据错误(循环冗余检查)

这篇博客讲述了SQL Server 2012数据库在2019年8月6日遇到日志备份失败的问题,错误信息提示数据错误(循环冗余检查)。作者怀疑日志文件损坏或硬盘故障,但硬盘未报警。为解决问题,采取了一系列步骤,包括在非业务高峰期进行全备、将数据库恢复模式切换至简单模式并收缩日志、再切换回完整模式、再次全备以及备份日志。通过这些操作,成功解决了日志备份问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题: SQLSERVER2012数据库,8月6日的LOG自动备份出现问题,之前备份一直正常,报错如下:

失败:(-1073548784) 执行查询“BACKUP LOG [chenjchdb] TO  DISK = N'E:\\chen_...”失败,

错误如下:“在 "D:\\chen\\chenjchdb\\chenjchdb_log.ldf" 上读取失败: 23(数据错误(循环冗余检查)。)

原因:

自动备份和手动备份日志文件都失败,报错 读取失败: 23(数据错误(循环冗余检查)

怀疑日志文件损坏或硬盘故障,检查硬盘没有报警,不能确定磁盘是否有坏道;

解决方案:

dbcc checkdb速度较慢,直接收缩日志文件;

1.非业务高峰期期间,对数据库进行全备;

2.将数据库恢复模式由完整模式改成简单模式;

3.收缩日志;

4.将数据库恢复模式由简单模式改成完整模式;

5.对数据库进行全备;

6.对数据库日志进行备份;

具体过程如下:

---1 22:10 数据库全备

use master 

BACKUP DATABASE chenjchdb

TO DISK='E:\chen\chenjchdb_20190806_22_30.bak' 

WITH COMPRESSION

GO

---2 收缩日志

---SELECT [name] FROM sys.database_files WHERE type_desc='LOG'; --- chenjchdb_log

USE master

GO

ALTER DATABASE chenjchdb SET RECOVERY SIMPLE WITH NO_WAIT

GO

ALTER DATABASE chenjchdb SET RECOVERY SIMPLE   

GO

USE chenjchdb 

GO

DBCC SHRINKFILE (N'chenjchdb_log' , 1, TRUNCATEONLY)

GO

USE master

GO

ALTER DATABASE chenjchdb SET RECOVERY FULL WITH NO_WAIT

GO

ALTER DATABASE chenjchdb SET RECOVERY FULL   

GO

---3 数据库全备

use master 

BACKUP DATABASE chenjchdb

TO DISK='E:\chen\chenjchdb_20190806_23_00.bak' 

WITH COMPRESSION

GO

---4 备份日志

use master

BACKUP LOG chenjchdb

TO DISK='E:\chen\log\chenjchdb_20190806_23_30.trn' 

WITH COMPRESSION

GO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值