天天看點

【DB吐槽大會】第59期 - PG 缺少便捷的壞塊修複能力

背景

1、産品的問題點

  • PG 缺少便捷的壞塊修複能力

2、問題點背後涉及的技術原理

  • PG 的資料通過block組織, block可以開啟checksum用于校驗其正确性. 如果BLOCK出現了問題checksum可能和實際計算得到的checksum對不上, 或者完全無法讀出該block.
  • 遇到這樣的問題, 需要通過備份進行恢複.

3、這個問題将影響哪些行業以及業務場景

  • 通用

4、會導緻什麼問題?

  • 通過備份進行恢複代價非常大. 如果隻是少量block出現問題, 顯然代價很高.

5、業務上應該如何避免這個坑

  • 目前隻能通過備份恢複, 包括邏輯備份, 實體備份.

6、業務上避免這個坑犧牲了什麼, 會引入什麼新的問題

  • 一旦涉及到備份恢複, 就要考慮2個問題
    • 能不能恢複到最新的狀态
    • 需要多久完成恢複, 越大的執行個體, 可能需要花費越多時間.
      • 雖然可以使用ZFS這種快照檔案系統, 建立實時從庫來解決恢複速度的問題. 但是實體壞塊是可能傳染的, 問題有可能傳染到從庫.
  • 要有完整的備份, 導緻成本增加
  • 備份和恢複都需要資源來存儲, 導緻成本增加

7、資料庫未來産品疊代如何修複這個坑

  • 希望核心層面支援通過WAL日志(有full page write時)來修複壞塊, 效率大幅度提升, 而且沒有通過PITR全量恢複耗時、耗資源的問題.