MySQL半同步复制

1、半同步复制实现的基础是主从复制 因此需要提前有 主从复制环境或主主复制
2、环境:两台机子
master
slave

master配置文件
vim /etc/my.cnf

[client]
user=root
password=123456
[mysqld]
server_id=1
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
log_bin=/usr/local/mysql/logs/master-bin
exprie_logs_days=7
socket=/usr/local/mysql/data/mysql.sock
[mysqld_safe]
log-error=/usr/local/mysql/logs/master.err
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

slave的配置文件:
vim /etc/my.cnf

[client]
user=root
password=123456
[mysqld]
server_id=2
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
log_bin=/usr/local/mysql/logs/master-bin
exprie_logs_days=7
socket=/usr/local/mysql/data/mysql.sock
log_slave_updates
[mysqld_safe]
log-error=/usr/local/mysql/logs/master.err
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

3、半同步复制插件
查看插件
ls /usr/local/mysql/lib/plugin/semi*

/usr/local/mysql/lib/plugin/semisync_master.so
/usr/local/mysql/lib/plugin/semisync_slave.so

MySQL主库安装半同步插件
mysql>install plugin rpl_semi_sync_master soname ‘semisync_master.so’;

生效方法:
临时:
控制Master是否开启半同步 on启用 off关闭
mysql> set global rpl_semi_sync_master_enabled=on;
设置超时时间
mysql> set global rpl_semi_sync_master_timeout=1000;
永久:
在vim /etc/my.cnf中添加

 [mysqld]
  rpl_semi_sync_master_enabled=ON
  rpl_semi_sync_master_timeout=1000

临时和永久同时配置,则可以不重启数据库

检查主库开启及配置的插件生效方法
mysql> select * from mysql.plugin;
出现semisync_master.so说明OK

在这里插入图片描述
mysql> show plugins;
出现rpl_semi_sync_master ACTIVE则说明OK

在这里插入图片描述
在这里插入图片描述
mysql> show global status like ‘%semi%’;
出现Rpl_semi_sync_master_status ON则说明OK

在这里插入图片描述
mysql> show global variables like ‘%semi%’;
出现rpl_semi_sync_master_enabled ON则说明OK
在这里插入图片描述

MySQL从库安装半同步插件

mysql> install plugin rpl_semi_sync_slave soname ‘semisync_slave.so’;

临时生效方法:
mysql> set global rpl_semi_sync_slave_enabled=on;
永久生效方法:
修改配置my.cnf

  [mysqld]
   rpl_semi_sync_slave_enabled=ON

两种方法如果同时配置,则可以不重启数据库

如果在一个正在运行的slave上开启半同步复制的功能,那么在配置半同步以后需要重启停止slave的IO线程:
mysql> show slave status\G
确保主从复制时两个Yes
mysql> stop slave io_thread;
mysql> start slave io_thread;

在这里插入图片描述
检查从库开启

mysql> show global status like ‘%semi%’;

mysql> show variables like ‘%semi%’;

在这里插入图片描述
最后验证

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL同步复制是一种数据库复制机制,它可以提高数据复制的可靠性和一致性。同步复制要求在主库和从库上都启用相应的插件。 首先,在主库上启用同步复制功能,可以使用以下命令: mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so'; 这将安装并启用主库的同步复制插件。 接下来,在从库上启用同步复制功能,可以使用以下命令: mysql> install plugin rpl_semi_sync_slave soname 'semisync_slave.so'; 这将安装并启用从库的同步复制插件。 然后,需要确保IO线程正在运行。可以使用以下命令来启动IO线程: mysql> start slave io_thread; 这将启动从库的IO线程,用于从主库获取二进制日志事件。 最后,可以在主库上检查同步复制是否正常工作。可以使用以下命令来检查: mysql> show variables like 'rpl_semi_sync%'; 这将显示同步复制的相关变量值,以确认同步复制是否正常启用和运行。 总结起来,对于MySQL同步复制,需要在主库和从库上分别启用相应的插件,并确保IO线程正常运行。这样可以提高数据复制的可靠性和一致性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Mysql同步复制](https://blog.csdn.net/carefree2005/article/details/113971341)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值