Postgresql
我可以通過在 NFS 上共享數據目錄來集群 PostgreSQL 嗎?
我在一台主機上創建了一個 PostgreSQL 集群,並通過 NFS 共享將它共享給另一台主機。即使我可以使用第二台主機訪問集群,但無法使用或登錄數據庫。是否可以由多個主機使用單個集群?所以我可以將它作為單個主機介紹給客戶端,如果用於創建集群的第一台主機關閉,另一台主機會保持集群執行,因此客戶端不會面臨與該集群的任何連接或可訪問性問題。
不,您不能通過 NFS 共享數據目錄。
如果沒有其他原因,這是一個可怕的想法,因為
fsync()
假設只有一個緩衝區可以連接到執行在發出 fsync 的單個主機上的輸入設備。它只確保從您執行它的主機刷新緩衝區。沒有辦法解決這個問題。您不能與兩台使用fsync
.除了所有的緩衝複雜性之外,還有一些支持的機制來集群 PostgreSQL。我建議查看“高可用性、負載平衡和複製”一章,並查看wiki 頁面*“複製、集群和連接池”*。
將 PostgreSQL 數據庫與共享磁碟一起使用,這根本不是一個好主意。您的數據庫可能會崩潰並且您將失去數據。
如果您需要基於共享磁碟的 HA 解決方案(如 RedHat Cluster Suite),請通過您的儲存設備執行此操作,創建一個 LUN 並將其映射到兩台伺服器上。
看看 EDB 網站上的這個文件:
提供更多細節以獲得更好的解決方案。