怎么解决SQL SERVER2012备份日志报错读取失败: 23

发布时间:2021-11-08 16:57:07 作者:iii
来源:亿速云 阅读:254

这篇文章主要介绍“怎么解决SQL SERVER2012备份日志报错读取失败: 23”,在日常操作中,相信很多人在怎么解决SQL SERVER2012备份日志报错读取失败: 23问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么解决SQL SERVER2012备份日志报错读取失败: 23”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

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

问题: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

到此,关于“怎么解决SQL SERVER2012备份日志报错读取失败: 23”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. Asp.Net错误
  2. java链接sql server 2000后出错的原因

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

sql server

上一篇:docker如何分配资源给容器

下一篇:怎么进行RHEL7 Docker虚拟化使用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》