-1

在 SAN 问题之后,SQL 数据库被标记为可疑。由于不一致的程度,恢复来自有效的备份和日志备份。没有其他系统或其他用户数据库出现问题,并且 CHECKDB 成功。恢复的数据库也有一个成功的 CHECKDB 并且应用程序被重新启用。

但是,问题数据库的每日备份一直失败。CHECKDB 继续成功,没有错误。完整的 Copy_Only 备份会产生相同的错误(也尝试过 continue_after_error)

Msg 3203, Level 16, State 1, Line 3
Read on "mydb.mdf" failed: 
23(failed to retrieve text for this error. Reason 15105)
Msg 3203, Level 16, State 1, Line 3
BACKUP DATABASE is terminating abnormally.

我还在系统事件日志中看到

设备 \Device\Harddisk2\DR2 有一个坏块。

服务器本身已重新启动,并且 SQL Server 重新联机,没有出现任何错误。CHECKDB 继续报告任何数据库没有错误 - 但由于一周多以来没有有效备份,情况正在恶化。

其他论坛建议此错误可能是由于文件访问/权限或没有足够的磁盘空间来完成备份,但事实并非如此,尝试在不同的凭据下备份到多个不同的位置并获得相同的结果。

我正在整理一个过程来导出所有数据库对象并将所有数据批量复制到一个干净的数据库中。我考虑过的另一个选项是分离/停止 sql 并将 mdf、ndf、ldf 文件复制到另一台服务器,但目前不愿意在不首先保护数据的情况下停止 SQL Server。

欢迎任何想法,我可以在数据库在线时执行进一步检查以确定坏块可能与什么有关。

屏幕截图 1 - 显示运行备份已完成 70%。1

4

1 回答 1

0

只是说我们已经得出结论 mdf 文件无法修复。再次分享场景

使用 mdf 文件中的坏扇区

  • T-Log 备份成功
  • 数据库仍然可以访问/运行
  • 和 CHECKDB 看起来不错

但是 * 完整和差异备份失败 * 分离数据库时无法复制 MDF 文件 * 仍可以原位重新连接数据库

由于一些糟糕的文件管理和整个问题的延迟识别

  • 日志链损坏(由于有限的日志备份保留)
  • 唯一的解决方案是从数据中恢复旧的备份和痛苦的副本
于 2016-08-09T09:22:12.370 回答