基於GTID的主從複製搭建

前置檢查mysql

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

log-bin數據庫

gtid-mode = ON服務器

enforce-gtid-consistency = ON網絡


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


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


lz4 -d inputfile outputfileorm


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

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

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.檢查經過。

完成主從搭建。

相關文章
相關標籤/搜索