Mysql半同步与并行复制

一、Mysql半同步复制

条件:GTID配置完成
1、Master端配置
<1>安装插件、开启半同步
mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so';  ##安装插件
mysql> set global rpl_semi_sync_master_enabled=1;       ##开启半同步

示图:查看master半同步是否可用
在这里插入图片描述
示图:master半同步状态开启
在这里插入图片描述

2、Slave端配置
<1>安装插件、开启半同步
mysql> install plugin rpl_semi_sync_slave soname 'semisync_slave.so';
mysql> set global rpl_semi_sync_slave_enabled=1;

示图:查看slave半同步是否可用
在这里插入图片描述
示图:slave端半同步状态关闭
在这里插入图片描述

<2>停止并重新开始IO线程
mysql> stop slave io_thread;
mysql> start slave io_thread;

示图:再次查看slave半同步状态—开启
在这里插入图片描述

<3>Master端查看半同步客户端数量为1

在这里插入图片描述

测试:

将slave的io线程停掉,master写入数据,会默认等待10s,如果超时还未等到slave的ack,将自动切换到异步复制,当slave的io线程再次开启,复制将自动切换到半同步方式。

<1>从库关闭io线程
mysql> stop slave io_thread;
<2>主库写入数据时,出现 10000ms 的延迟,模式:半同步 --> 异步
mysql> insert into westos.usertb values('user4','111');

示图:
在这里插入图片描述

<3>从库开启io线程
mysql> start slave io_thread;
<4>主库再次写入数据
mysql> insert into westos.usertb values('user5','222');

示图:
在这里插入图片描述

<5>slave端查看数据—同步

在这里插入图片描述

二、并行复制

1、查看Slave的sql线程类型
mysql> show processlist; 
+----+-------------+-----------+-------+---------+------+--------------------------------------------------------+------------------+
| Id | User        | Host      | db    | Command | Time | State                                                  | Info             |
+----+-------------+-----------+-------+---------+------+--------------------------------------------------------+------------------+
|  6 | root        | localhost | mysql | Query   |    0 | starting                                               | show processlist |
|  8 | system user |           | NULL  | Connect | 3454 | Slave has read all relay log; waiting for more updates | NULL             |
| 10 | system user |           | NULL  | Connect | 3477 | Waiting for master to send event                       | NULL             |
+----+-------------+-----------+-------+---------+------+--------------------------------------------------------+------------------+
2、Slave端配置
[root@server6 ~]# vim /etc/my.cnf
slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers=16	    ##线程数
master_info_repository=TABLE	##master_info存储方式为:table
relay_log_info_repository=TABLE	##relay_log_info存储方式为:table
relay_log_recovery=ON
[root@server6 ~]# /etc/init.d/mysqld restart
3、Slave原有的sql线程转化为调度器
slave复制方式已更新
mysql> show processlist;
+----+-------------+-----------+------+---------+------+--------------------------------------------------------+------------------+
| Id | User        | Host      | db   | Command | Time | State                                                  | Info             |
+----+-------------+-----------+------+---------+------+--------------------------------------------------------+------------------+
|  1 | system user |           | NULL | Connect |  193 | Slave has read all relay log; waiting for more updates | NULL             |
|  2 | system user |           | NULL | Connect |  194 | Waiting for master to send event                       | NULL             |
|  3 | system user |           | NULL | Connect |  194 | Waiting for an event from Coordinator                  | NULL             |
|  4 | system user |           | NULL | Connect |  194 | Waiting for an event from Coordinator                  | NULL             |
|  6 | system user |           | NULL | Connect |  194 | Waiting for an event from Coordinator                  | NULL             |
|  7 | system user |           | NULL | Connect |  194 | Waiting for an event from Coordinator                  | NULL             |
|  8 | system user |           | NULL | Connect |  194 | Waiting for an event from Coordinator                  | NULL             |
|  9 | system user |           | NULL | Connect |  194 | Waiting for an event from Coordinator                  | NULL             |
| 10 | system user |           | NULL | Connect |  194 | Waiting for an event from Coordinator                  | NULL             |
| 11 | system user |           | NULL | Connect |  194 | Waiting for an event from Coordinator                  | NULL             |
| 12 | system user |           | NULL | Connect |  194 | Waiting for an event from Coordinator                  | NULL             |
| 13 | system user |           | NULL | Connect |  194 | Waiting for an event from Coordinator                  | NULL             |
| 14 | system user |           | NULL | Connect |  194 | Waiting for an event from Coordinator                  | NULL             |
| 16 | system user |           | NULL | Connect |  194 | Waiting for an event from Coordinator                  | NULL             |
| 17 | system user |           | NULL | Connect |  194 | Waiting for an event from Coordinator                  | NULL             |
| 18 | system user |           | NULL | Connect |  194 | Waiting for an event from Coordinator                  | NULL             |
| 19 | system user |           | NULL | Connect |  194 | Waiting for an event from Coordinator                  | NULL             |
| 20 | system user |           | NULL | Connect |  194 | Waiting for an event from Coordinator                  | NULL             |
| 22 | root        | localhost | NULL | Query   |    0 | starting                                               | show processlist |
+----+-------------+-----------+------+---------+------+--------------------------------------------------------+------------------+
4、Slave端查看mysql数据库的表,新增两张表
mysql> use mysql;
mysql> show tables;

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值