Asynchronous?Replication?Automatic failover
創(chuàng)新互聯(lián)是一家專業(yè)的成都網(wǎng)站建設公司,我們專注成都網(wǎng)站建設、網(wǎng)站建設、網(wǎng)絡營銷、企業(yè)網(wǎng)站建設,賣鏈接,廣告投放平臺為企業(yè)客戶提供一站式建站解決方案,能帶給客戶新的互聯(lián)網(wǎng)理念。從網(wǎng)站結構的規(guī)劃UI設計到用戶體驗提高,創(chuàng)新互聯(lián)力求做到盡善盡美。
其原理是在一條異步復制通道上配置多個可用復制源,當某個復制源不可用時(宕機、復制鏈路中斷),且 slave 的 IO 線程嘗試重連無效,自動根據(jù)權重選擇新的源繼續(xù)同步。
準備一個 MGR 集群和單實例,模擬復制鏈路切換,當 primary 故障,slave 自動切換到其他節(jié)點。dbdeployer?deploy?replication?--topology=group?8.0.22?--single-primarydbdeployer deploy single 8.0.22
2. 在從機上建立指向 MGR 主節(jié)點的復制通道,
change master to master_user='msandbox',master_password='msandbox', master_host='127.0.0.1',master_auto_position=1,source_connection_auto_failover=1,master_port=23223,master_retry_count=6,master_connect_retry=10 for channel 'mgr-single';
在 master_retry_count 和 master_connect_retry 的設置上要考慮嘗試重連多久才切換復制源。
3. 在從機上配置 asynchronous connection auto failover
配置 asynchronous connection auto failover 的兩個函數(shù):
asynchronous_connection_failover_add_source(channel-name,host,port,network-namespace,weight)
asynchronous_connection_failover_delete_source(channel-name,host,port,network-namespace)
權重值大的被優(yōu)先級選擇,可以配合MGR的選舉權重配置 asynchronous_connection_failover 的權重。當 MGR 節(jié)點切換,異步復制也能切換到新的主節(jié)點。
SELECT asynchronous_connection_failover_add_source('mgr-single','127.0.0.1',23223,null,100); SELECT asynchronous_connection_failover_add_source('mgr-single','127.0.0.1',23224,null,80); SELECT asynchronous_connection_failover_add_source('mgr-single','127.0.0.1',23225,null,50);start?slave?for?channel?'mgr-single';
4. 檢查異步復制通道是否啟用 failover。
mysql SELECT CHANNEL_NAME, SOURCE_CONNECTION_AUTO_FAILOVER FROM performance_schema.replication_connection_configuration; +--------------+---------------------------------+| CHANNEL_NAME | SOURCE_CONNECTION_AUTO_FAILOVER |+--------------+---------------------------------+|?mgr-single?? |??1??????????????????????????????|+--------------+---------------------------------+1 row in set (0.01 sec
5. 把 MGR 的 primary 節(jié)點 kill 掉,這個從節(jié)點會在嘗試幾輪重連失敗后自動切換到次權重的復制源,其日志中會輸出切換信息。
注意:當主節(jié)點故障,一旦復制鏈路成功 failover 后,在新的復制鏈路沒有故障時,如果原主節(jié)點恢復,是不會回切的。如果當前復制鏈路發(fā)生故障,會再次選擇權重高的進行切換
1:
Windows server 2003 192.168.119.88(管理節(jié)點,存儲節(jié)點,SQL節(jié)點)
Windows server 2003 192.168.119.87(存儲節(jié)點,SQL節(jié)點)
2、安裝程序
在兩臺機器上面同時進行
(1)在mysql cluster官網(wǎng):
中下載msi安裝軟件mysql-cluster-gpl-7.4.11-win32.msi
可能需要Oracle用戶注冊后下載
安裝完成后
(2)在命令行中切換到mysql安裝后bin目錄下執(zhí)行:
mysqld --install mysql 注冊服務
(3)設置環(huán)境變量:
將mysql安裝后bin目錄添加到環(huán)境變量中
一個最簡單的MySQL集群通常是一主一從的架構(Master-Slave)
MySQL自帶有主從同步的功能
主要步驟如下:
在主庫上創(chuàng)建一個同步賬號
GRANT SELECT,REPLICATION SLAVE ON *.* TO user@'%' IDENTIFIED BY'123456'
在從庫上設置主庫
change master to master_host='主庫IP',master_port=主庫端口,master_user='user',master_password='123456',master_auto_position=1;(mysql5.6以上)
change master to master_host='主庫IP',master_port=主庫端口,master_user='user',master_password='123456',MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=0,
在從庫上啟動同步線程
start slave;
復雜的集群通常通過第三方軟件,比如剛剛GA的MySQL官方高可用MGR