Postgresql

如果程序因某種原因終止,重新啟動 PostgreSQL 是否安全?

  • October 16, 2019

我正在編寫一個docker-compose帶有 PostgreSQL 的容器的配置。docker-compose有一個名為restart. 如果我啟用它,那麼只要 Postgres 程序停止,它就會立即重新啟動 Postgres。然而,它(可能)如何重新啟動並不相關。

我知道在 MySQL 中,在數據庫停止後立即啟動數據庫是不安全的,因為 MyISAM 表可能會損壞。必須先使用不相關的命令行工具手動修復 MyISAM 表,然後啟動 db。

所以我想知道如果出現問題,重啟 PostgreSQL 通常是否安全。或者,也許我們應該先備份、修復、讀取日誌,然後再嘗試重新啟動它。

例如,一個相關的情況是停電。之後我該怎麼辦?

Postgres 通常可以很好地處理伺服器重啟。假設所有正確的硬體都已就位(電池支持的記憶體等),在崩潰後啟動 Postgres 將自動使其進入恢復模式,它將嘗試重播自上次CHECKPOINT. 一旦它完成重播到一致狀態,您就可以自由使用數據庫並繼續您的業務。然而,話雖如此,您作為 DBA 可以根據您的業務需求執行一致性檢查,以確保沒有損壞。

披露:我在EnterpriseDB (EDB)擔任支持工程師

引用自:https://dba.stackexchange.com/questions/251262