首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MySQL5.7主从复制+GTID模式+半同步复制AFTER_SYNC模式

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

作者头像
4xx.me
发布2022-06-09 19:16:49
发布2022-06-09 19:16:49
7260
举报

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

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

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

我的运行环境: centos7.4 mysql5.7.22

推荐一键安装脚本:https://oneinstack.com/

1.环境准备

新装mysql初始化完成待操作 旧mysql数据库先把数据导入主、从服务,保证数据一致,等待操作

2.操作主库

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

代码语言:javascript
复制
# 每个节点保证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执行

代码语言:javascript
复制
# 安装主库半同步复制插件
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]之后添加配置

代码语言:javascript
复制
# 从库同步配置
# 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执行

代码语言:javascript
复制
# 安装从库半同步复制插件
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

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

再次登录mysql控制台

代码语言:javascript
复制
# 设置要链接的主库信息
CHANGE MASTER TO MASTER_HOST='ip',MASTER_USER='用户名',MASTER_PASSWORD='密码',MASTER_AUTO_POSITION=1;

# 开启从库复制
start slave;

# 检查是否成功,2个YES即开启成功
show slave status \G

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

异常问题解决

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

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

代码语言:javascript
复制
# 先关闭从库复制
stop slave;
# 重置主库
reset master;
# 重置从库
reset slave;
# 开启从库复制
start slave;

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

代码语言:javascript
复制
# 重置主库
reset master;

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • > MySQL5.7主从复制+GTID模式+半同步复制AFTER_SYNC模式
    • 1.环境准备
    • 2.操作主库
    • 3.操作从库
    • 异常问题解决
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档