exit_on_error
(boolean
) #如果為 on,任何錯誤都將終止當前會話。預設情況下,此設定為 off,因此只有 FATAL 錯誤才會終止會話。
restart_after_crash
(boolean
) #當設定為 on(這是預設值)時,PostgreSQL 將在後端崩潰後自動重新初始化。通常,將此值保留為 on 是最大化資料庫可用性的最佳方法。但是,在某些情況下,例如當 PostgreSQL 由叢集軟體呼叫時,停用重啟可能很有用,這樣叢集軟體就可以獲得控制權並執行其認為適當的任何操作。
此引數只能在 postgresql.conf
檔案或伺服器命令列中設定。
data_sync_retry
(boolean
) #當設定為 off(這是預設值)時,如果無法將修改後的資料檔案重新整理到檔案系統,PostgreSQL 將引發 PANIC 級別的錯誤。這會導致資料庫伺服器崩潰。此引數只能在伺服器啟動時設定。
在某些作業系統上,在寫回失敗後,核心頁面快取中的資料狀態是未知的。在某些情況下,它可能已被完全遺忘,因此重試是不安全的;第二次嘗試可能報告成功,但實際上資料已丟失。在這些情況下,避免資料丟失的唯一方法是在報告任何失敗後從 WAL 進行恢復,最好是在調查失敗的根本原因並更換任何有故障的硬體之後。
如果設定為 on,PostgreSQL 將改為報告錯誤但繼續執行,以便可以在後續的檢查點中重試資料重新整理操作。僅在調查作業系統在寫回失敗時對緩衝資料的處理方式之後才將其設定為 on。
recovery_init_sync_method
(enum
) #當設定為 fsync
(這是預設值)時,PostgreSQL 將在崩潰恢復開始之前遞迴地開啟和同步資料目錄中的所有檔案。檔案搜尋將遵循 WAL 目錄和每個配置的表空間的符號連結(但不包括任何其他符號連結)。這是為了確保所有 WAL 和資料檔案都已持久儲存在磁碟上,然後再重放更改。這適用於每次啟動未乾淨關閉的資料庫叢集時,包括使用 pg_basebackup 建立的副本。
在 Linux 上,也可以使用 syncfs
,要求作業系統同步包含資料目錄、WAL 檔案和每個表空間的(但不包括透過符號連結可達的任何其他檔案系統)檔案系統。這可能比 fsync
設定快得多,因為它不需要逐個開啟檔案。另一方面,如果一個檔案系統被其他修改了大量檔案的應用程式共享,它可能會變慢,因為這些檔案也會被寫入磁碟。此外,在 5.8 之前的 Linux 版本中,寫入資料到磁碟時遇到的 I/O 錯誤可能不會報告給 PostgreSQL,相關的錯誤訊息可能僅出現在核心日誌中。
此引數只能在 postgresql.conf
檔案或伺服器命令列中設定。
如果您在文件中看到任何不正確、與您對特定功能的體驗不符或需要進一步澄清的內容,請使用 此表單 報告文件問題。