- 服務器 192.168.1.1(master) 192.168.1.2(slave)
- 同步服務器,只有當已經在復制但不使用gtid的服務器時才需要此步驟,,對于新服務器,請繼續執行步驟5。將每個服務器上的read_only系統變量設置為ON,使服務器成為只讀的,方法是發出以下命令:
- 分別在master和slave上
- MySQL> SET @@global.read_only = ON;
- Query OK, 0 rows affected (0.00 sec)
- 等待所有正在進行的事務提交或回滾。然后,讓slave趕上master。在繼續之前,確保slave已經處理了所有更新,這一點非常重要
- 將master和slave上面的mysql服務都停止
- [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
- #確實停掉了
- 啟用兩臺服務器并開啟 GTIDs。要啟用基于GTID的復制,必須在啟用GTID模式的情況下啟動每個服務器,方法是將gtid_mode變量設置為ON,并啟用enforce_gtid_consistency變量以確保僅記錄對基于GTID的復制安全的語句。此外,在配置slave設置之前,您應該使用-skip-slave-start 選項啟動slaves。為什么需要指定--skip-slave-start,因為指定了--skip-slave-start的話,那么mysql啟動的時候復制就不會啟動。由于在MySQL 5.7.5中添加了mysql.gtid_executed表,因此為了使用GTIDs啟用二進制日志記錄不是必須的。這意味著您可以使用GTIDs但沒有二進制日志記錄的slave服務器。Masters必須始終啟用二進制日志記錄,以便能夠復制。
- 基于上面的講述,我們需要針對master和slave進行不同的配置,下面我就貼上master和slave的配置圖
- master配置
- 參數解釋
- log-bin 表示開啟二進制日志
- server_id 這是唯一的,用來區分服務器,在復制拓撲結構中,不能出現相同的server_id
- gtid_mode 表示開啟GTID
- enforce_gtid_consistency 確保僅記錄對基于GTID的復制安全的語句
- slave配置
- 參數解釋(相同參數的解釋請參考上面)
- skip-slave-start 指定了--skip-slave-start的話,那么mysql啟動的時候復制就不會啟動
- 然后啟動master和slave的mysql,這時候可以將master的只讀模式給禁用了
- 配置slave以使用基于GTID的自動定位。告訴slave使用具有基于GTID的事務的master作為復制數據源,并使用基于GTID的自動定位而不是基于文件的定位。在slave上發出CHANGE MASTER TO語句,包括語句中的MASTER_AUTO_POSITION選項,告訴slave對應master的事務是由GTID識別的。MASTER_LOG_FILE選項和MASTER_LOG_POS選項都不能與MASTER_AUTO_POSITION設置為1一起使用,嘗試這樣做會導致CHANGE MASTER TO語句失敗并顯示錯誤。
- 在master上
- #創建復制賬號
- 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)
- #創建后一定要遠程登錄一下賬號,驗證一下是否能登錄
- 在slave上
- 發出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)
- 參數講解
- MASTER_HOST master的ip地址
- MASTER_USER master的復制用戶名
- MASTER_PASSWORD master的復制用戶的密碼
- MASTER_AUTO_POSITION 當將MASTER_AUTO_POSITION = 1與CHANGE MASTER TO一起使用時,slave嘗試使用基于gtid的復制協議連接到master。
- 進行一個新的備份
- 由于您已啟用GTID,因此在啟用GTIDs之前創建的現有備份現在無法在這些服務器上使用。。此時進行一個新的備份,這樣您就不會沒有一個可用的備份。
- 在slave上
- 啟動復制
- mysql> start slave;
- Query OK, 0 rows affected (0.00 sec)
- #查看是否連接上了master
- mysql> show slave status\G
- 看到了兩個YES,那就說明沒問題了
- 禁用只讀模式
- 僅當您在步驟2中將服務器配置為只讀時,才需要執行以下步驟。要允許服務器再次開始接受更新,請發出以下語句:
- mysql> SET @@global.read_only = OFF;
- Query OK, 0 rows affected (0.00 sec)
- 在master上面添加一些數據,然后在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:多源復制的實現 https://blog.51cto.com/itzhoujun/2353940
網站名稱:5:使用GTID進行復制
鏈接分享:http://vcdvsql.cn/article46/gjojhg.html
成都網站建設公司_創新互聯,為您提供響應式網站、品牌網站建設、App設計、網站制作、品牌網站制作、軟件開發
廣告
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源:
創新互聯