我正在考慮創建一個帶有hot/warm standby instance的postgresql安裝程序,以便我的應用程序不受數據庫服務器停機時間的影響,並且還可以快速備份主服務器。如何將c3p0配置爲熱備用/熱備用Postgresql服務器?
我想最簡單的方法來檢測主是改變DNS:
- 應用程序連接到JDBC:在PostgreSQL://database.example.com/testdb
- database.example.com點掌握的IP
- 如果主停止響應,DNS更改database.example.com指向備份服務器1。在此期間,觸發備份成爲主要
我有幾個q問題:
- c3p0可以配置一個非IP網址?
- 請問這個工作在c3p0/jdbc連接方面?與主站的連接會斷開,我不確定連接池在這種情況下的工作方式。它是否簡單地清除了連接池,在一段時間後重新嘗試連接,並在它發生時從備份變爲主的主節點獲取連接?
- 這是否對休眠(例如會話緩存)有任何影響,還是會完全不知道下面的內容?
最後,我也接受了關於在主站變爲不可用時進行主/從切換的不同建議。
感謝您的輸入史蒂夫。雖然我還沒有嘗試過(如果我錯了,有人會糾正我),但我認爲DNS緩存在名稱服務器配置中使用名稱的TTL解決 - 如果將其設置得足夠低(例如1/2分鐘)這意味着該服務將在那段時間停止運行,直到緩存過期並且服務(在本例中爲JDBC驅動程序)被迫從域名服務器獲取IP地址。 – mmalmeida 2015-01-23 09:26:21
(是的,我認爲很短的TTL應該限制DNS緩存,你只需要嘗試看看它的工作效果如何!) – 2015-01-26 07:28:49