mysql gtid 同步_MySQL5.7主从复制+GTID模式+半同步复制AFTER_SYNC模式

> MySQL5.7主从复制+GTID模式+半同步复制AFTER_SYNC模式

61121e42b9ae9d9aa3123c8c706ea86c.png

GTID模式:GTID是事务的ID,唯一识别号,全局唯一。对于主从复制简单来说就是不需要管binlog日志和复制点,简化复制操作和降低复制集群维护的难度,但是只支持带事务的引擎和语句

半同步复制:5.7版本之后推出,介于同步复制和异步复制之间,既能保证数据一致,也能提高性能

我的运行环境:

centos7.4

mysql5.7.22

1.环境准备

新装mysql初始化完成待操作

旧mysql数据库先把数据导入主、从服务,保证数据一致,等待操作

2.操作主库

修改配置文件,/etc/my.cnf在[mysqld]之后添加配置# 每个节点保证server-id不同

server-id = 1

# 主库同步配置

# GTID模式

gtid_mode=on

enforce_gtid_consistency=on

# 半同步模式,无数据丢失AFTER_SYNC模式

rpl_semi_sync_master_enabled=1

rpl_semi_sync_master_timeout=1000

rpl_semi_sync_master_wait_point=AFTER_SYNC

# binlog

# log_slave_updates允许下端接入slave

log_slave_updates=1

log_bin = mysql-bin

binlog_format = row

expire_logs_days = 7

登录mysql控制台mysql -uroot -p执行# 安装主库半同步复制插件

install plugin rpl_semi_sync_master soname 'semisync_master.so';

# 检查安装

show global variables like 'rpl%';

# 创建备份账号,`@'%'`指ip白名单,%通配符。`密码`设置链接密码

grant replication slave on *.* to 'backup'@'%' identified by '密码';

# 刷新配置

flush privileges;

重启mysql服务 service mysql restart

3.操作从库

修改配置文件,/etc/my.cnf在[mysqld]之后添加配置# 从库同步配置

# GTID模式

gtid_mode=on

enforce_gtid_consistency=on

# 半同步模式,无数据丢失AFTER_SYNC模式,从库

read_only=1

skip_slave_start=1

relay_log_recovery=1

rpl_semi_sync_slave_enabled=1

# binlog

# log_slave_updates允许下端接入slave

log_slave_updates=1

log_bin = mysql-bin

binlog_format = row

expire_logs_days = 7

登录mysql控制台mysql -uroot -p执行# 安装从库半同步复制插件

INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

重启mysql服务 service mysql restart 使配置生效

再次登录mysql控制台# 设置要链接的主库信息

CHANGE MASTER TO MASTER_HOST='ip',MASTER_USER='用户名',MASTER_PASSWORD='密码',MASTER_AUTO_POSITION=1;

# 开启从库复制

start slave;

# 检查是否成功,2个YES即开启成功

show slave status \G

4ca41c7c8d9c030aaa601e3f5ed951d5.png

去主库操作下数据,看是否自动同步到了从库,如果同步了就主从复制成功

异常问题解决

由于某些原因导致了复制失败、异常、或者需要重置从库复制功能

重置从库

登录从库的mysql控制台执行# 先关闭从库复制

stop slave;

# 重置主库

reset master;

# 重置从库

reset slave;

# 开启从库复制

start slave;

重置主库

登录主库的mysql控制台执行# 重置主库

reset master;

注意:所以操作需要在mysql不对外提供服务的前提下执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值