官术网_书友最值得收藏!

1.4.3 搭建GTID AUTO_POSITION MODE的主從

在這一部分中,獲取gtid-purged變量是需要注意的地方,也是筆者在線上遇到的一個“坑”,這個“坑”還比較普遍。簡單來說,就是在MySQL 5.7的某些版本中,導入數據會覆蓋原本命令set gtid_purged的設置,而gtid_executed表并不是實時更新的,因此在從庫重啟后可能導致數據重復拉取,進而導致主從同步報錯。

注意,主備庫必須開啟GTID并設置好server_id:

同時,主從庫都開啟 binary log。如果不設置級聯從庫,那么從庫不需要開啟參數log_slave_updates。

(1)建立復制用戶并且授權。

(2)導出數據。

(3)從庫導入數據。

使用命令mysql-e "source xxx.sql" 導入數據。

(4)從庫執(zhí)行reset master命令。

這一步主要防止gtid_executed表在導入數據的過程中被覆蓋,我們在MySQL 5.7的某些版本中遇到過這種情況。一旦從庫再次重啟,讀取 gtid_executed 表就會得到錯誤的 gtid_executed變量,進而導致從庫啟動失敗。因此最好重新設置gtid_purged變量。

(5)提取gtid_purged變量,并且執(zhí)行。

使用head-n 40命令可以快速得到gtid_purged變量,例如:

執(zhí)行

即可,完成本步驟后,mysql.gtid_executed表會重構,這個我們在1.2節(jié)的通用修改時機中已經討論過了。

(6)使用MASTER_AUTO_POSITION建立同步。

(7)啟動slave。

主站蜘蛛池模板: 休宁县| 汕尾市| 桦南县| 搜索| 甘泉县| 东兰县| 句容市| 天镇县| 鹿邑县| 九龙城区| 蒙阴县| 岚皋县| 江口县| 闻喜县| 阳城县| 政和县| 台南市| 石屏县| 确山县| 电白县| 琼海市| 青川县| 灌阳县| 保康县| 会同县| 竹溪县| 盖州市| 昌都县| 上高县| 杭州市| 正安县| 长兴县| 南昌市| 海阳市| 曲周县| 策勒县| 定远县| 长乐市| 梧州市| 宜黄县| 临猗县|