检查还原bak文件损坏情况
广告:
RESTORE HEADERONLY FROM DISK = N'M:\temp\20260903-0000\QueQuan_backup_2025_12_18_000001_6784873.bak'
RESTORE VERIFYONLY FROM DISK = N'M:\temp\20260903-00000\QueQuan_backup_2025_12_18_000001_6784873.bak'
1 检查头部
RESTORE VERIFYONLY FROM DISK = 'M:\temp\20261030-\Bgolden\Bgolden.bak';
RESTORE VERIFYONLY FROM DISK = 'M:\temp\20261030-\Bgolden\Bgolden.bak' WITH CHECKSUM;
2 先查这个备份里面的逻辑文件名和mdf大小:
RESTORE FILELISTONLY FROM DISK = 'M:\temp\20261030-\Bgolden\Bgolden.bak';
2 使用 WITH CONTINUE_AFTER_ERROR 强制忽略损坏页继续还原:
NO_CHECKSUM:根本不检查有没有坏
CONTINUE_AFTER_ERROR:照常检查,查到坏了也继续往下还原
WITH CONTINUE_AFTER_ERROR---:
RESTORE DATABASE Bgolden FROM DISK = 'M:\temp\20261030-\Bgolden\Bgolden.bak' WITH CONTINUE_AFTER_ERROR,MOVE 'dghy_Data' TO 'H:\temp\Bgolden.mdf',MOVE 'dghy_Log' TO 'H:\temp\Bgolden.ldf';
WITH NO_CHECKSUM, CONTINUE_AFTER_ERROR---:
RESTORE DATABASE Bgolden FROM DISK = 'M:\temp\20261030-\Bgolden\Bgolden.bak' WITH NO_CHECKSUM, CONTINUE_AFTER_ERROR,MOVE 'dghy_Data' TO 'H:\temp\Bgolden.mdf',MOVE 'dghy_Log' TO 'H:\temp\Bgolden.ldf';
其他配套(不是处理损坏,但还原时经常一起搭配)
REPLACE:覆盖现有数据库
NORECOVERY / RECOVERY / STANDBY:恢复状态
RESTART:中断后接着上次位置继续还原大备份(不是跳过损坏页,是断点续传)
STATS=10:每 10% 输出进度
广告:


