在 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