僅適用於非系統資料庫(master、msdb、model 除外)的資料檔 (.mdf) 損壞情境。
test(完整復原模式),建表 a、b 並插入資料。test_1.bak。SHUTDOWN 關閉服務,用 UltraEdit 十六進位編輯器破壞 test_data.mdf 任意位元組,模擬媒體損壞。BACKUP LOG test TO DISK='...test_2.bak' WITH NO_TRUNCATEWITH NORECOVERY。WITH RECOVERY。SELECT * FROM a 正常回傳。-- 1. 尾部記錄備份(資料檔損壞但記錄檔完好時必做)
BACKUP LOG test TO DISK='D:\Backup\test_2.bak' WITH NO_TRUNCATE
-- 2. 還原完整備份,保持恢復中狀態
RESTORE DATABASE test FROM DISK='D:\Backup\test_1.bak' WITH NORECOVERY
-- 3. 還原尾部記錄,完成復原
RESTORE LOG test FROM DISK='D:\Backup\test_2.bak' WITH RECOVERY
完整備份 + 尾部記錄備份 = 零資料遺失復原(RPO=0)的前提。
若無完整備份,資料庫無法復原。DBA 必須建立並驗證定期完整備份策略,並熟練尾部記錄備份操作。