小编Her*_*rot的帖子

如何解决 BACKUP WITH CHECKSUM 而不是 DBCC CHECKDB 检测到的损坏?

最近,我被要求从生产环境刷新测试服务器上的几个数据库。一直想遵循最佳实践,我使用WITH CHECKSUM选项执行备份,最终得到以下错误:

Msg 3043, Level 16, State 1, Line 32
BACKUP 'DBName' detected an error on page (1:428321) in file 'F:\path\DBName.mdf'.
Msg 3013, Level 16, State 1, Line 32
BACKUP DATABASE is terminating abnormally.
Run Code Online (Sandbox Code Playgroud)

对错误感到惊讶,我运行DBCC CHECKDB以查看发生了什么,但不幸的是(或者幸运的是),它恢复正常。

到目前为止,我发现的所有信息都鼓励使用 DBCC CHECKDB 的发现作为下一步的指南,所以我不确定如何解决这个问题?

一些快速信息:

  1. SQL Server 是 2008 R2。

  2. 我在msdb.dbo.suspect_pages表中发现了错误的确认。它包含事件类型 1 和 3。

  3. 我使用的 DBCC 命令是 DBCC CHECKDB (DBName) WITH NO_INFOMSGS, ALL_ERRORMSGS;

  4. 我不是正式的 DBA,但由于我有一些经验,所以我被允许执行备份和恢复。

  5. 我确实读过类似的帖子DBCC CheckDB 会错过哪些类型的损坏?. 然而,虽然我相信我明白为什么(那篇文章的重点),但我不知道如何解决它。

  6. 通过省略WITH CHECKSUM选项,我能够成功执行备份。

在此先感谢您的指导! …

sql-server-2008-r2 dbcc-checkdb checksum

5
推荐指数
1
解决办法
687
查看次数