Asynchronous?Replication?Automatic failover
創(chuàng)新新互聯(lián),憑借10多年的成都網(wǎng)站建設(shè)、成都做網(wǎng)站經(jīng)驗(yàn),本著真心·誠(chéng)心服務(wù)的企業(yè)理念服務(wù)于成都中小企業(yè)設(shè)計(jì)網(wǎng)站有近千家案例。做網(wǎng)站建設(shè),選創(chuàng)新互聯(lián)建站。
其原理是在一條異步復(fù)制通道上配置多個(gè)可用復(fù)制源,當(dāng)某個(gè)復(fù)制源不可用時(shí)(宕機(jī)、復(fù)制鏈路中斷),且 slave 的 IO 線程嘗試重連無(wú)效,自動(dòng)根據(jù)權(quán)重選擇新的源繼續(xù)同步。
準(zhǔn)備一個(gè) MGR 集群和單實(shí)例,模擬復(fù)制鏈路切換,當(dāng) primary 故障,slave 自動(dòng)切換到其他節(jié)點(diǎn)。dbdeployer?deploy?replication?--topology=group?8.0.22?--single-primarydbdeployer deploy single 8.0.22
2. 在從機(jī)上建立指向 MGR 主節(jié)點(diǎn)的復(fù)制通道,
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 的設(shè)置上要考慮嘗試重連多久才切換復(fù)制源。
3. 在從機(jī)上配置 asynchronous connection auto failover
配置 asynchronous connection auto failover 的兩個(gè)函數(shù):
asynchronous_connection_failover_add_source(channel-name,host,port,network-namespace,weight)
asynchronous_connection_failover_delete_source(channel-name,host,port,network-namespace)
權(quán)重值大的被優(yōu)先級(jí)選擇,可以配合MGR的選舉權(quán)重配置 asynchronous_connection_failover 的權(quán)重。當(dāng) MGR 節(jié)點(diǎn)切換,異步復(fù)制也能切換到新的主節(jié)點(diǎn)。
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. 檢查異步復(fù)制通道是否啟用 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é)點(diǎn) kill 掉,這個(gè)從節(jié)點(diǎn)會(huì)在嘗試幾輪重連失敗后自動(dòng)切換到次權(quán)重的復(fù)制源,其日志中會(huì)輸出切換信息。
注意:當(dāng)主節(jié)點(diǎn)故障,一旦復(fù)制鏈路成功 failover 后,在新的復(fù)制鏈路沒(méi)有故障時(shí),如果原主節(jié)點(diǎn)恢復(fù),是不會(huì)回切的。如果當(dāng)前復(fù)制鏈路發(fā)生故障,會(huì)再次選擇權(quán)重高的進(jìn)行切換
mysql集群部署操作如下:
1、在MySQL集群中.當(dāng)table引擎為NDBCLUSTER時(shí)才做集群,其他非NDBCLUSTER表和一般MySQL數(shù)據(jù)庫(kù)表一樣,不會(huì)共享數(shù)據(jù)。NDBCLUSTER表數(shù)據(jù)存儲(chǔ)在Data node服務(wù)器內(nèi)存中,Data Node可以為1臺(tái)或多臺(tái)服務(wù)器,它們之間存放共享數(shù)據(jù)。Data Node服務(wù)器可以分組數(shù)據(jù)copy。
例如:2,3,4,5為四臺(tái)Data Node服務(wù)器ID. 2,3為組0; 4,5為組1; 2,3維持?jǐn)?shù)據(jù)相同,4,5維持?jǐn)?shù)據(jù)相同。 組0和組1維持?jǐn)?shù)據(jù)不同。
2、sql node服務(wù)器中,非NDBCLUSTER數(shù)據(jù)存在本身數(shù)據(jù)庫(kù)中,table引擎為NDBCLUSTER時(shí),數(shù)據(jù)存儲(chǔ)在Data Node中。當(dāng)查詢NDBCLUSTER表時(shí),它會(huì)從Data node集群中提起數(shù)據(jù).
3、Manager server管理SQl node和Data node狀態(tài)。
group_replication_member_expel_timeout 指定組復(fù)制組成員在產(chǎn)生懷疑之后,從組中排除懷疑失敗的成員之前等待的時(shí)間(以秒為單位)。在產(chǎn)生懷疑之前的最初 5 秒檢測(cè)時(shí)間不計(jì)入該時(shí)間。直到并包括 MySQL 8.0.20 在內(nèi),group_replication_member_expel_timeout 默認(rèn)值均為 0,這意味著沒(méi)有等待時(shí)間,并且在 5 秒鐘的檢測(cè)時(shí)間結(jié)束后,可疑成員應(yīng)立即被驅(qū)逐。從 MySQL 8.0.21 開(kāi)始,該值默認(rèn)為 5,這意味著在 5 秒鐘的檢測(cè)時(shí)間后如果該節(jié)點(diǎn)還是不正常,那會(huì)在等 5 秒鐘,如果可疑成員還是不正常,超過(guò)這個(gè)時(shí)間將被驅(qū)逐。
為驗(yàn)證該參數(shù)對(duì)集群影響,我們通過(guò)實(shí)驗(yàn)?zāi)M不同時(shí)長(zhǎng)的網(wǎng)絡(luò)延遲,然后調(diào)整group_replication_member_expel_timeout 值觀察該參數(shù)值對(duì)集群驅(qū)逐故障節(jié)點(diǎn)的影響。
當(dāng)前標(biāo)題:mysql怎么復(fù)制集群 mysql怎么復(fù)制一個(gè)數(shù)據(jù)庫(kù)
文章來(lái)源:http://sd-ha.com/article44/ddsihee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、用戶體驗(yàn)、、微信公眾號(hào)、網(wǎng)站策劃、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)