mysql5.5以上实现半同步复制方法
admin
2023-05-10 06:21:53
0

下文给大家带来关于mysql5.5以上实现半同步复制方法,感兴趣的话就一起来看看这篇文章吧,相信看完mysql5.5以上实现半同步复制方法对大家多少有点帮助吧。

1.半同步
半同步复制是主库将binlog日志发给从库,并确认binlog写入从库的relay-log的日志中,这个时候才会返回给主库
2.异步复制
异步复制就是咱们平时说的主从复制,主库将binlog发给从库这个时候就会结束,并不会确认从库是否接收完毕

3.注意事项:
半同步如果出现超时,这个时候主从复制会暂时切换到异步复制的模式,直到一台设置为半同步的数据库能够及时接受信息为止

实验:
mysql主从复制已经做好
主库:
192.168.56.10  
从库:
192.168.56.11

一.主库:
1.查看半同步插件默认是否开启自动加载,可以看出有自动加载功能
mysql> show  variables  like  '%dynamic%';
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| have_dynamic_loading | YES   |
+----------------------+-------+
1 row in set (0.00 sec)

mysql>
2.安装插件
mysql>install plugin rpl_semi_sync_master soname 'semisync_master.so';
mysql>show plugins;
mysql>SET GLOBAL rpl_semi_sync_master_enabled = 1;  #开启半同步复制,默认是关闭的

vim  /etc/my.cnf  #确保重启配置文件能够生效
[mysqld]
GLOBAL rpl_semi_sync_master_enabled = 1

二.从库:
mysql>INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
mysql>show plugins;   #查看是否加载成功
mysql>SET GLOBAL rpl_semi_sync_slave_enabled = 1;  #开启半同步复制,默认是关闭的
mysql>stop slave;
mysql>start slave;

vim /etc/my.cnf
[mysqld]
rpl_semi_sync_slave_enabled=1

###########到此mysql半同步已经做好#######################################
主库:
mysql> show variables like '%semi%';
+-------------------------------------------+------------+
| Variable_name                             | Value      |
+-------------------------------------------+------------+
| rpl_semi_sync_master_enabled              | ON         |  ##半同步开启的状态
| rpl_semi_sync_master_timeout              | 10000      |  #半同步超时时间10s,超过10s切换为异步复制
| rpl_semi_sync_master_trace_level          | 32         | #半同步的调试级别
| rpl_semi_sync_master_wait_for_slave_count | 1          |
| rpl_semi_sync_master_wait_no_slave        | ON         | #master的每个事务都要slave确认
| rpl_semi_sync_master_wait_point           | AFTER_SYNC |
+-------------------------------------------+------------+
6 rows in set (0.00 sec)

从库:
mysql> show variables   like '%semi%';
+---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| rpl_semi_sync_slave_enabled     | ON    |  #可以看出已经打开半同步复制
| rpl_semi_sync_slave_trace_level | 32    | #半同步调试级别为
+---------------------------------+-------+
2 rows in set (0.00 sec)

mysql>

主库:
mysql> show status like '%semi%';
+--------------------------------------------+-------+
| Variable_name                              | Value |
+--------------------------------------------+-------+
| Rpl_semi_sync_master_clients               | 1     |
| Rpl_semi_sync_master_net_avg_wait_time     | 0     |
| Rpl_semi_sync_master_net_wait_time         | 0     |
| Rpl_semi_sync_master_net_waits             | 2     |
| Rpl_semi_sync_master_no_times              | 1     |
| Rpl_semi_sync_master_no_tx                 | 1     |
| Rpl_semi_sync_master_status                | ON    |
| Rpl_semi_sync_master_timefunc_failures     | 0     |
| Rpl_semi_sync_master_tx_avg_wait_time      | 611   |
| Rpl_semi_sync_master_tx_wait_time          | 611   |
| Rpl_semi_sync_master_tx_waits              | 1     |
| Rpl_semi_sync_master_wait_pos_backtraverse | 0     |
| Rpl_semi_sync_master_wait_sessions         | 0     |
| Rpl_semi_sync_master_yes_tx                | 1     |
+--------------------------------------------+-------+
14 rows in set (0.00 sec)

mysql>

Rpl_semi_sync_master_status表示主云服务器使用是异步还是半同步复制

Rpl_semi_sync_master_client表示从云服务器有多少个配置成半同步复制

Rpl_semi_sync_master_yes_tx表示从云服务器确认成功提交的数量

Rpl_semi_sync_master_no_tx表示从云服务器确认失败提交的数量

############################################################
测试
从库 stop slave;
主库创建一个库
create  database te;   #创建的时候特别慢 需要超时 10s,但是能创建成功
show status like '%semi%';
Rpl_semi_sync_master_status                | OFF   ##半同步已经转换为异步复制
从库 start slave;
主库又切换为半同步复制,

反思:有半同步的原理可以知道 半同步在一定程度上确保了主从一致,但是效率确实别异步复制低,具体测试我没测试

看了以上关于mysql5.5以上实现半同步复制方法详细内容,是否有所收获。如果想要了解更多相关,可以继续关注我们的行业资讯板块。

相关内容

热门资讯

伊朗学者:特朗普访华或影响美伊... 美国总统特朗普访问中国之际,美伊停火谈判和霍尔木兹海峡危机仍未解决。伊朗学者法拉吉扎德在接受凤凰卫视...
日本版星链军事侦察网启用 日本防卫政务官若林洋平今天(5月14日)在日本国会参议院内阁委员会上称,为确保作为“反击能力”手段的...
外交部:美方务必慎之又慎处理台... 5月14日,外交部发言人郭嘉昆主持例行记者会。有记者就台湾问题提问,郭嘉昆表示,习近平主席与特朗普总...
世卫组织:全球卫生进展失衡 急... 世界卫生组织13日发布的《2026年世界卫生统计》报告显示,全球卫生领域近年来虽取得一定进展,但进展...
储量2356.87亿立方米!我... 【大河财立方消息】据中国石化,中国石化四川资阳东峰页岩气田2356.87亿立方米探明地质储量通过自然...
英国拟将中国敬业集团旗下的英钢... 有记者问:近日有英国媒体报道称,英国政府将通过相关立法,将中国敬业集团旗下的英国钢铁公司国有化。请问...
聚焦生物医药未来产业,大湾区添... 5月12日,粤港澳大湾区生物医药未来产业创新论坛暨大湾区生物医药未来产业创新中心成立大会在中山大学附...
朱雀二号改进型遥五运载火箭发射... 5月14日午间,朱雀二号改进型遥五运载火箭在东风商业航天创新试验区发射升空,将搭载的2.8吨定制化试...
7500元旅行达人与年轻创作者... 在6000-8000元这个竞争激烈的旗舰手机市场,旅行达人和年轻创作者们往往面临着两难选择:是追求极...
中美元首会晤是否讨论对台军售问... 澎湃新闻记者 聂舒翼 谢瑞强5月14日,外交部发言人郭嘉昆主持例行记者会。有记者提问,中美元首是否在...