mysql db ha tool mysql connector j
TRANSCRIPT
MySQL Connector J for Failover
2/8
目標 利用 MySQL Connector J 支援 failover ,當
Master DB 連線服務發生異常時,便提供 AP 連線failover 至設定的 Slave DB ,且此 DB 連線為Read 模式。 Connector J 會定期檢查 Master DB的連線服務狀況,待 Master DB 恢復正常,則 AP 連線將導向 Master DB (Read/Write 模式 ) 。
3/8
系統架構 MySQL Connector/J Failover 機制
jdbc:mysql://[A:9453], [B:9454],…/[db name]?failOverReadOnly=true ( 預設值 true)
jdbc:mysql://[B:9454], [A:9453],…/[db name]?failOverReadOnly=true ( 預設值 true)
Readonly 控制權在 Con/J ,直接進 slave 是可寫的 ?
A B
jdbc:mysql://[master host:port], [slave host:port],…/[db name]?failOverReadOnly=true ( 預設值 true)
Con/J 可辨識 master/slave 狀態,亦或是認 URL 順位?
<AP Server Read/write JNDI oltp>
<AP Server ReadOnly JNDI rpt>
4/8
系統環境設定 下載 mysql-connector-java-version-bin.jar ,放置於 AP ,並設定其 CLASSPATH 環境變數。
export CLASSPATH=/path/mysql-connector-java-ver-bin.jar:$CLASSPATH
設定 jdbc url ,開啟 failOverReadOnly jdbc:mysql://[master host:port], [slave host:port],
…/[db name]?failOverReadOnly=true (預設值 true)
5/8
Failover 演練 以 MySQL Connector/J (10.144.150.175) 定期檢查 Master DB(10.144.150.177:9453) 的連線狀況。 在 AP(10.144.150.175) 執行查詢、新增資料程式
(ConMySQL.java) 。 此讀寫作業皆在Master上完成
6/8
Failover 演練 關閉 Master DB , AP 端執行查詢、新增資料程式
(ConMySQL.java) 此時連線將導向至 Slave DB,連線為 Readonly,無法在 Slave DB 上異動資料。
待 Master DB 恢復服務, AP 端執行查詢、新增資料程式將導向至 Master DB(Read/Write 模式 )