主从开启半同步复制 Google

12 篇文章 0 订阅
1 篇文章 0 订阅

==== 主从开启半同步复制 Google =====================

1、在主库执行
mysql>install plugin rpl_semi_sync_master SONAME ‘semisync_master.so’;

2、在从库执行
mysql>install plugin rpl_semi_sync_slave SONAME ‘semisync_slave.so’;

3、修改 主 配置文件 ,添加以下两行

plugin-load=rpl_semi_sync_master=semisync_master.so
rpl_semi_sync_master_enabled=1

4、修改从的配置文件,添加以下两行

plugin-load=rpl_semi_sync_slave=semisync_slave.so
rpl_semi_sync_slave_enabled=1

5、重启 从服务器, 然后重启 主服务器。 半同步模式就此打开

mysql> show variables like ‘%semi%’;
±------------------------------------------±-----------+
| Variable_name | Value |
±------------------------------------------±-----------+
| rpl_semi_sync_master_enabled | OFF |
| rpl_semi_sync_master_timeout | 10000 |
| rpl_semi_sync_master_trace_level | 32 |
| rpl_semi_sync_master_wait_for_slave_count | 1 |
| rpl_semi_sync_master_wait_no_slave | ON |
| rpl_semi_sync_master_wait_point | AFTER_SYNC |
| rpl_semi_sync_slave_enabled | ON |
| rpl_semi_sync_slave_trace_level | 32 |
±------------------------------------------±-----------+
8 rows in set (0.03 sec)

6、 验证 半同步复制如何工作。

    1》 停止从库,现在没有任何从库在线
    2》 在此种情况下,向 主库 插入数据,插入会被 挂起 10s 钟。
    3》 再次插入数据,没有挂起(转回  异步复制,直到有 半同步复制功能 的 一台从 上线。)

7、 继续查看半同步复制的详情。

mysql> show status like ‘%semi%’;
±-------------------------------------------±------+
| Variable_name | Value |
±-------------------------------------------±------+
| Rpl_semi_sync_master_clients | 0 |
| Rpl_semi_sync_master_net_avg_wait_time | 0 |
| Rpl_semi_sync_master_net_wait_time | 0 |
| Rpl_semi_sync_master_net_waits | 0 |
| Rpl_semi_sync_master_no_times | 0 |
| Rpl_semi_sync_master_no_tx | 0 |
| Rpl_semi_sync_master_status | OFF |
| Rpl_semi_sync_master_timefunc_failures | 0 |
| Rpl_semi_sync_master_tx_avg_wait_time | 0 |
| Rpl_semi_sync_master_tx_wait_time | 0 |
| Rpl_semi_sync_master_tx_waits | 0 |
| Rpl_semi_sync_master_wait_pos_backtraverse | 0 |
| Rpl_semi_sync_master_wait_sessions | 0 |
| Rpl_semi_sync_master_yes_tx | 0 |
| Rpl_semi_sync_slave_status | ON |
±-------------------------------------------±------+
15 rows in set (0.01 sec)

==== 主从开启 GTID 复制 模式 (错误重现 ) ==============

在这里插入图片描述

1、 先保证当前主从的 数据 是 一致的 (假设各自有 2136 条数据 ) 。

2、停止从库服务

3、修改主库的配置文件 ,添加以下两行

gtid-mode=on
enforce-gtid-consistency=ON

4、 重启主库,GTID 就开始生效,并记录 , 此时主库还没有任何数据插入,当前的 GTID是空白的

5、 向主库 插入 20 条数据, 查看一下 gtid 的情况
mysql> mysql> show master status;
±-----------------±---------±-------------±-----------------±----------------------------------------------------------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
±-----------------±---------±-------------±-----------------±----------------------------------------------------------------------------------+
| mysql-bin.000003 | 3449 | | | e7a4897e-579c-11e9-9a6b-000c29322c09:1-30,
e7a4897e-579c-11e9-9a6b-000c29322c22:1 |
±-----------------±---------±-------------±-----------------±----------------------------------------------------------------------------------+
1 row in set (0.00 sec)

6、 删除 从库 的 所有的数据 (相当于新库 )

7、此时主库 20条数据, 做一次 完全备份 , 将该备份拷贝到 从库。

8、 修改 从库配置文件。 让 从库启动 二进制日志!

添加以下二进制配置项目

log-bin=/bin-log/mysql-bin
server-id=81
max_binlog_size=1073741824
expire_logs_days=0
binlog_format=row
binlog_rows_query_log_events=OFF
gtid-mode=ON
enforce-gtid-consistency=ON
log-slave-updates=ON

9、保存退出, 启动 从库 的 服务。

mysql> select * from class.students; ## ( 2157条数据 )

10、从库重新确立 主从关系 :

mysql> CHANGE MASTER TO MASTER_HOST=‘192.168.217.21’, MASTER_USER=‘uplooking’, MASTER_PASSWORD=‘123123’, MASTER_AUTO_POSITION=1;
mysql> start slave;
mysql> show slave status \G

发现 SQL 线程出错 。

如何 操作,排除错误,修复 主从 复制架构。
show slave status \G #查看从状态上报错在2137上主键冲突
删掉2136以后的数据就OK了。
mysql> delete from class.students where sid>=2137;

===== 为架构添加一台从服务器 =============================

克隆,IP地址,主机名,boost,yum安装,用户和用户组添加,拷贝配置文件,修改配置文件, 创建和授权好 所需要的 目录, 拷贝数据,启动服务

请查看本博客的mysql经典主从复制机制

1、要求,使用半同步复制 + GTID 的方式加入 集群。

2、要求在新的 从库加入时, 对 主库的业务没有任何的影响

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值