Postgresql
PostgreSQL同步複製超時?
我正在使用帶有同步複製的 PostgreSQL 9.3。我有 2 個同步複製器和 1 個非同步複製器。我的問題是當 2 個同步複製器關閉時,事務將無限期等待。我發現以下關於此的討論,
但找不到解決方案。有沒有辦法解決這個問題?(可能正在使用 pg-pool 之類的工具)
這不是問題,這是設計使然。
如果您不希望事務等待同步副本確認送出,那麼您不希望同步複製。您想要非同步複製,並且應該簡單地刪除該
synchronous_standby_names
選項。如果同步複製在無法訪問副本時放棄,那會有什麼好處?“我保證你的交易在另一個節點上是安全的——哦,除非副本關閉,在這種情況下,我會默默地違背我的承諾。”
通常,您應該做的是在不關心送出是否同步的事務中設置
synchronous_commit
為,文件說這意味著:local
但是,特殊值 local 可用於希望等待本地刷新到磁碟而不是同步複製的事務。
並將其
on
留作您不能承受損失的重要交易。所以只有那些會等到備用數據庫可以複製更改。另請參閱 上的文件
synchronous_standby_names
。現在,您可能想要一種方式來表示“等待最多 5 分鐘以等待待機確認,但如果到那時還沒有,則繼續進行。” 目前不支持。我也不太相信它有用。