SQLSERVER2012備份日誌報錯:”讀取失敗: 23(資料錯誤(迴圈冗餘檢查)。)”

chenoracle發表於2019-08-08

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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29785807/viewspace-2653016/,如需轉載,請註明出處,否則將追究法律責任。

相關文章