基于GTID的主从复制搭建

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于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:[email protected] --server2=user:[email protected] --changes-for=server1 -a


Databases are consistent.检查通过。

完成主从搭建。

本文出自 “专注打孔100年” 博客,请务必保留此出处http://titandeng.blog.51cto.com/823817/1913444

以上是关于基于GTID的主从复制搭建的主要内容,如果未能解决你的问题,请参考以下文章

GTID主从复制

通过 mysqldump 搭建基于 gtid MySQL 5.7 主从复制

mysql之 mysql 5.6不停机主从搭建(一主一从基于GTID复制)

开启GTID主从同步出现1236错误问题

Mysql基于GTID搭建主从同步

mysql5.7.26 基于GTID的主从复制环境搭建