溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

5:使用GTID進(jìn)行復(fù)制

發(fā)布時間:2020-06-21 20:41:28 來源:網(wǎng)絡(luò) 閱讀:384 作者:shixiazhoujun 欄目:MySQL數(shù)據(jù)庫
  1. 服務(wù)器 192.168.1.1(master) 192.168.1.2(slave)
  2. 同步服務(wù)器,只有當(dāng)已經(jīng)在復(fù)制但不使用gtid的服務(wù)器時才需要此步驟,,對于新服務(wù)器,請繼續(xù)執(zhí)行步驟5。將每個服務(wù)器上的read_only系統(tǒng)變量設(shè)置為ON,使服務(wù)器成為只讀的,方法是發(fā)出以下命令:
    • 分別在master和slave上
    • mysql> SET @@global.read_only = ON;
    • Query OK, 0 rows affected (0.00 sec)
  3. 等待所有正在進(jìn)行的事務(wù)提交或回滾。然后,讓slave趕上master。在繼續(xù)之前,確保slave已經(jīng)處理了所有更新,這一點(diǎn)非常重要
  4. 將master和slave上面的mysql服務(wù)都停止
    • [root@iz2ze3bc56k6c4f3rsiahvz ~]# service mysqld stop
    • Redirecting to /bin/systemctl stop mysqld.service
    • #查看是否停止掉了
    • [root@iz2ze3bc56k6c4f3rsiahvz ~]# ps -ef | grep mysql
    • root 31143 30584 0 23:09 pts/0 00:00:00 grep --color=auto mysql
    • #確實(shí)停掉了
  5. 啟用兩臺服務(wù)器并開啟 GTIDs。要啟用基于GTID的復(fù)制,必須在啟用GTID模式的情況下啟動每個服務(wù)器,方法是將gtid_mode變量設(shè)置為ON,并啟用enforce_gtid_consistency變量以確保僅記錄對基于GTID的復(fù)制安全的語句。此外,在配置slave設(shè)置之前,您應(yīng)該使用-skip-slave-start 選項(xiàng)啟動slaves。為什么需要指定--skip-slave-start,因?yàn)橹付?-skip-slave-start的話,那么mysql啟動的時候復(fù)制就不會啟動。由于在MySQL 5.7.5中添加了mysql.gtid_executed表,因此為了使用GTIDs啟用二進(jìn)制日志記錄不是必須的。這意味著您可以使用GTIDs但沒有二進(jìn)制日志記錄的slave服務(wù)器。Masters必須始終啟用二進(jìn)制日志記錄,以便能夠復(fù)制。
    • 基于上面的講述,我們需要針對master和slave進(jìn)行不同的配置,下面我就貼上master和slave的配置圖
    • master配置
      • 5:使用GTID進(jìn)行復(fù)制
      • 參數(shù)解釋
        • log-bin 表示開啟二進(jìn)制日志
        • server_id 這是唯一的,用來區(qū)分服務(wù)器,在復(fù)制拓?fù)浣Y(jié)構(gòu)中,不能出現(xiàn)相同的server_id
        • gtid_mode 表示開啟GTID
        • enforce_gtid_consistency 確保僅記錄對基于GTID的復(fù)制安全的語句
    • slave配置
      • 5:使用GTID進(jìn)行復(fù)制
      • 參數(shù)解釋(相同參數(shù)的解釋請參考上面)
        • skip-slave-start 指定了--skip-slave-start的話,那么mysql啟動的時候復(fù)制就不會啟動
    • 然后啟動master和slave的mysql,這時候可以將master的只讀模式給禁用了
  6. 配置slave以使用基于GTID的自動定位。告訴slave使用具有基于GTID的事務(wù)的master作為復(fù)制數(shù)據(jù)源,并使用基于GTID的自動定位而不是基于文件的定位。在slave上發(fā)出CHANGE MASTER TO語句,包括語句中的MASTER_AUTO_POSITION選項(xiàng),告訴slave對應(yīng)master的事務(wù)是由GTID識別的。MASTER_LOG_FILE選項(xiàng)和MASTER_LOG_POS選項(xiàng)都不能與MASTER_AUTO_POSITION設(shè)置為1一起使用,嘗試這樣做會導(dǎo)致CHANGE MASTER TO語句失敗并顯示錯誤。
    • 在master上
      • #創(chuàng)建復(fù)制賬號
      • mysql> CREATE USER 'wangwu'@'%' IDENTIFIED BY 'Wangwu@123456';
      • Query OK, 0 rows affected (0.00 sec)
      • mysql> GRANT REPLICATION SLAVE ON . TO 'wangwu'@'%';
      • Query OK, 0 rows affected (0.01 sec)
      • #創(chuàng)建后一定要遠(yuǎn)程登錄一下賬號,驗(yàn)證一下是否能登錄
    • 在slave上
      • 發(fā)出CHANGE MASTER TO
      • mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.1' ,MASTER_USER = 'wangwu',MASTER_PASSWORD = 'Wangwu@123456', MASTER_AUTO_POSITION = 1;
      • Query OK, 0 rows affected, 2 warnings (0.01 sec)
      • 參數(shù)講解
        • MASTER_HOST master的ip地址
        • MASTER_USER master的復(fù)制用戶名
        • MASTER_PASSWORD master的復(fù)制用戶的密碼
        • MASTER_AUTO_POSITION 當(dāng)將MASTER_AUTO_POSITION = 1與CHANGE MASTER TO一起使用時,slave嘗試使用基于gtid的復(fù)制協(xié)議連接到master。
  7. 進(jìn)行一個新的備份
    • 由于您已啟用GTID,因此在啟用GTIDs之前創(chuàng)建的現(xiàn)有備份現(xiàn)在無法在這些服務(wù)器上使用。。此時進(jìn)行一個新的備份,這樣您就不會沒有一個可用的備份。
  8. 在slave上
    • 啟動復(fù)制
    • mysql> start slave;
    • Query OK, 0 rows affected (0.00 sec)
    • #查看是否連接上了master
    • mysql> show slave status\G
    • 5:使用GTID進(jìn)行復(fù)制
    • 看到了兩個YES,那就說明沒問題了
    • 禁用只讀模式
    • 僅當(dāng)您在步驟2中將服務(wù)器配置為只讀時,才需要執(zhí)行以下步驟。要允許服務(wù)器再次開始接受更新,請發(fā)出以下語句:
    • mysql> SET @@global.read_only = OFF;
    • Query OK, 0 rows affected (0.00 sec)
  9. 在master上面添加一些數(shù)據(jù),然后在slave中是否能看到,如果能看到就說明沒問題,如果看不到,就及時查看slave的錯誤日志

參考資料:https://dev.mysql.com/doc/refman/5.7/en/replication-gtids-howto.html

PREV:4:GTID簡單介紹 https://blog.51cto.com/itzhoujun/2352688
NEXT: 6:多源復(fù)制的實(shí)現(xiàn) https://blog.51cto.com/itzhoujun/2353940

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI