交易記錄是資料庫復原的基石。理解 Checkpoint、MinLSN、Redo/Undo 機制,能協助 DBA 規劃備份策略、排查效能問題。
將記憶體中髒頁(已修改未寫入磁碟的頁面)強制刷新至資料檔,並記錄檢查點資訊至記錄檔。包含:
觸發條件:髒頁達閾值、記錄檔達 recovery interval 設定、手動執行 CHECKPOINT、資料庫關閉等。
目前作用中交易中最舊記錄的 LSN。從 MinLSN 到記錄尾端稱為作用中記錄區,不可截斷。MinLSN 也是記錄截斷點,唯有此點之前的記錄可被備份/截斷釋放空間。
| 機制 | 觸發時機 | 動作 | 目的 |
|---|---|---|---|
| Redo | 交易已 Commit,但髒頁未刷入資料檔 | 依記錄檔重新執行已提交操作 | 確保持久性,讓資料檔與記錄一致 |
| Undo | 交易未 Commit(失敗/回滾/崩潰) | 反向執行操作,還原修改前值 | 確保原子性,移除未完成交易影響 |
資料庫啟動復原時:
Checkpoint 越新,MinLSN 越接近記錄尾端,Redo 掃描範圍越小,復原越快。
recovery interval 平衡 Checkpoint 頻率與 I/O 壓力。CHECKPOINT 控制復原時間目標 (RTO)。