Postgresql
如何通過應用程序自動切換為 PostgreSQL 進行自動故障轉移?
有兩種方法可以嘗試。
方法一
使用 JDBC 連接 PostgreSQL 集群(僅限主、備 2 台伺服器):
jdbc:postgresql://192.168.0.1:5432,192.168.0.2:5432/jiradb
但失敗了:
您的 dbconfig.xml 文件的配置不正確(使用者、密碼或數據庫 URL 等)
如何從 jdbc 連接多個伺服器?
方法二
使用
pgbouncer
和repmgr
三台伺服器:
- 彈跳器
- PostgreSQL Primary (192.168.0.1) 安裝 repmgr,執行 repmgrd
- PostgreSQL Standby (192.168.0.2) 安裝repmgr,執行repmgr
在 pgbouncer 伺服器(pgbouncer.ini)中設置配置:
[databases] postgres = host=192.168.0.1 port=5432 dbname=postgres postgres = host=192.168.0.2 port=5432 dbname=postgres [pgbouncer] listen_port = 6432 listen_addr = * auth_type = md5 auth_file = userlist.txt logfile = pgbouncer.log pidfile = pgbouncer.pid admin_users = postgres unix_socket_dir = /tmp
當主伺服器關閉時,repmgr 可以切換到備用伺服器作為主伺服器。但是 pgbouncer 沒有自動連接第二個數據庫伺服器。為什麼?的配置設置
databases
不起作用。是錯誤的用法嗎?還是pgbouncer沒有這個自動切換功能?
比較JDBC 文件:
為了支持簡單的連接故障轉移,可以在以逗號分隔的連接 url 中定義多個端點(主機和埠對)。驅動程序將嘗試按順序連接到它們中的每一個,直到連接成功。如果沒有成功,則拋出正常的連接異常。
連接 url 的語法是:
jdbc:postgresql://host1:port1,host2:port2/database
所以你的網址沒問題。如果 JIRA 抱怨它,那將是一個 JIRA 錯誤。