2016-05-09 84 views
1

我們正在整合架構以支持我們的Postgres 9.5數據庫的高可用性。我們有1個主站和3個從站複製主站的數據。當主站發生故障時,從站1被升級爲新的主站,但從站2和從站3仍然指向先前的主站而不是更新的主站節點。 有沒有辦法讓奴隸動態讀取新的主人。還是需要手動更改配置並重新啓動從站?新主人員的POSTGRES REPLICATION

+0

最簡單的方法是使用repmgr – e4c5

回答

0

有沒有簡單的答案,但我會嘗試:

  • 當主服務器發生故障,你會促進一個奴隸,並重新配置所有其他的奴隸爲目標的新主人。但是有一種情況可能不需要重新配置其他從屬設備:如果您使用的是「WAL歸檔」,並且您的歸檔文件存儲在共享驅動器上,而該共享驅動器在舊主設備故障後仍然存在。如果新主服務器繼續使用相同的共享存儲,則可能不需要重新配置其他從服務器。再一次,我從來沒有嘗試過 - 你可以試試。
  • 如果您的複製機制基於「複製插槽」(在PostgreSQL 9.4中引入) - 那麼您必須重新配置所有從站。在這種情況下,實際上你必須從頭開始重建所有其他從機上的複製(就像它們從來不是從機一樣)。不過,在我看來,「複製插槽」是更好的選擇。

關於自動化:您問過是否可以自動重新配置其他從站,但是您錯過了要提及的一點是如果您實施了任何故障轉移自動化。我想說的是,PostgreSQL本身不會自動執行故障轉移(當主服務器失敗時提升其中一個從服務器)。至少您必須在要升級的從站上創建「觸發文件」,並且您必須手動或通過使用其他產品(例如pgpool2)來執行此操作。

如果您使用pgpool2 - 您可以通過設置follow_master_command pgpool.conf值來設置自動從站重新配置。

最後我會強烈推薦閱讀this tutorial - 它會讓你的生活更輕鬆。

編輯: 我忘了說了兩件事情:

  • 只要新主人是提升可能不是一個好主意,自動重新配置所有其他的奴隸,特別是如果你有許多奴隸。這會給你的新主服務器和你的網絡帶來額外的壓力,所以在某些情況下,最好延遲這個例如夜間服務。更多關於這個在上面的教程。
  • 我寫了教程。