mysql之 重建GTID下主從關係


主庫:
mysqldump -uroot -pmysql -S /tmp/mysql.sock1 --single-transaction --add-drop-database --master-data=1 --all-databases>test_backup.sql


說明:
--all-databases :備份所有的數據庫
--single-transaction : 在一個事物中導出,確保產生一致性的備份 ,當前只對innodb支持
--master-data : 備份的時候dump出 CHANGE MASTER 信息(file 和 pos),可供 主從複製 的時候使用,默認值爲1 。當值設置爲 2 的時候,也會 dump出信息,但是會被 註釋 掉。
--add-drop-database : 導出的sql中,包含如果數據庫存在就刪除在創建的sql

從庫:
mysql>reset master;
mysql>reset slave all;

-- 導入數據庫 
# mysql -uroot -pmysql <test_backup.sql

mysql>change master to
master_host='10.100.25.40',
master_port=3307,
master_user='rpl',
master_password='mysql', 
master_auto_position=1;

mysql> start slave;
mysql> show slave status\G;


說明:

## 在開啓GTID數據庫下導入報錯
mysql -uroot -p userdb < userdb.sql
Password:xxxxxxxx
ERROR 1840 (HY000) at line 24: @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty.

mysql提示: 當前數據庫實例中開啓了 GTID 功能, 在開啓有 GTID 功能的數據庫實例中, 導出其中任何一個庫, 如果沒有顯示地指定--set-gtid-purged參數, 都會提示這一行信息. 意思是默認情況下, 導出的庫中含有 GTID 信息, 如果不想導出包含有 GTID 信息的數據庫, 需要顯示地添加--set-gtid-purged=OFF參數.或者在導入時,清空所有原GTID信息(reset master;reset slave all;)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章