基於GTID的主從複製搭建

前置檢查

server-id = 10,master/slave不允許重複

log-bin

gtid-mode = ON

enforce-gtid-consistency = ON


1,利用mysqlpump複製master數據到slave,搭建基於GTID的主從複製,缺少GTID處理方法,暫不成功。


mysqlpump --host= --user= --password= --single-transaction --default-parallelism=4 --compress-output=LZ4 "dbname" > /home/dbname.sql.lz4


lz4 -d inputfile outputfile


mysql -u -p < /home/dbname.sql

常見錯誤:Message: Got a packet bigger than 'max_allowed_packet' bytes

max_allowed_packet過小,調大到32M,默認4M。


CHANGE MASTER TO

MASTER_HOST = 'host_name',

MASTER_USER = 'user_name',

MASTER_PASSWORD = 'password',

MASTER_AUTO_POSITION = 1;


start slave;


ERROR 1776 (HY000) at line 30: Parameters MASTER_LOG_FILE, MASTER_LOG_POS, RELAY_LOG_FILE and RELAY_LOG_POS cannot be set when MASTER_AUTO_POSITION is active.


mysqlpump 備份文件缺少SET @@GLOBAL.GTID_PURGED='XXX:1-XXX';相關語句。

暫無解決方法。


2,使用mysqldump複製master數據到slave,搭建基於GTID的主從複製。


mysqldump --host= --user= --password= --single-transaction  --routines --events "dbname" |gzip > /home/dbname.sql.gz


常見錯誤:mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table。

網絡寫超時,更改net_write_timeout爲600,默認60。


gzip -cd inuptfile > outputfile


mysql -u -p < /home/dbname.sql


CHANGE MASTER TO

MASTER_HOST = 'host_name',

MASTER_USER = 'user_name',

MASTER_PASSWORD = 'password',

MASTER_AUTO_POSITION = 1;


start slave;


3,使用mysqldbcompare進行數據一致性校驗;


比較兩個服務器之間具有相同名稱的所有數據庫;

忽略以下數據庫︰INFORMATION_SCHEMA, PERFORMANCE_SCHEMA, mysql, and sys。


mysqldbcompare --server1=user:password@localhost --server2=user:password@localhost --changes-for=server1 -a


Databases are consistent.檢查通過。

完成主從搭建。

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