這篇文章主要介紹“怎么解決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”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。