Linux

如何在拍攝 LVM/ZFS 快照之前暫停 Postgres?

  • December 27, 2018

如何指示 Postgres 完成所有“進行中”事務,但延遲啟動新事務(不啟動客戶端),直到我拍攝 ZFS 或 LVM 快照(不到一秒)。

例如

  1. 暫停 Postgres,等待“進行中”事務完成
  2. 同步到磁碟
  3. 拍攝 ZFS/LVM 快照
  4. 恢復 Postgres

dba.stackexchange 上的這個答案似乎就是您所追求的。

評論似乎不會自動連結到側邊欄(網路內),所以我需要寫更多的東西來防止自動轉換為評論……是的。

@user121391 答案中提到的文章是正確​​的,但簡而言之:

  • 您不能以任何方式暫停postgresql(強制它繼續打開事務而不處理新事務)
  • 如果底層快照是原子的(ZFS快照似乎是原子的),在快照之前不需要做任何事情,如果你在快照上執行一個新 postgres程序,數據庫將以恢復模式啟動(就像前一個程序異常停止時一樣) .
  • pg_start_backup將使恢復過程更快一點(因為創建了檢查點,並且 WAL 中待處理的寫入會減少)

引用自:https://serverfault.com/questions/808065