Linux
如何在拍攝 LVM/ZFS 快照之前暫停 Postgres?
如何指示 Postgres 完成所有“進行中”事務,但延遲啟動新事務(不啟動客戶端),直到我拍攝 ZFS 或 LVM 快照(不到一秒)。
例如
- 暫停 Postgres,等待“進行中”事務完成
- 同步到磁碟
- 拍攝 ZFS/LVM 快照
- 恢復 Postgres
dba.stackexchange 上的這個答案似乎就是您所追求的。
評論似乎不會自動連結到側邊欄(網路內),所以我需要寫更多的東西來防止自動轉換為評論……是的。
@user121391 答案中提到的文章是正確的,但簡而言之:
- 您不能以任何方式暫停postgresql(強制它繼續打開事務而不處理新事務)
- 如果底層快照是原子的(ZFS快照似乎是原子的),在快照之前不需要做任何事情,如果你在快照上執行一個新
postgres
程序,數據庫將以恢復模式啟動(就像前一個程序異常停止時一樣) .pg_start_backup
將使恢復過程更快一點(因為創建了檢查點,並且 WAL 中待處理的寫入會減少)