今天就跟大家聊聊有关怎么在MySQL中配置半同步复制,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
MySQL安装
通过APT的方式安装,官方指导文档地址:
https://dev.mysql.com/downloads/repo/apt/
1、下载mysql-apt-config_0.8.3-1_all.deb
2、安装deb
A Quick Guide to Using the MySQL APT Repository:
https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/
sudo dpkg -i mysql-apt-config_0.8.3-1_all.deb
3、更新源
sudo apt-get update
4、安装MySQL
sudo apt-get install mysql-server
5、根据提示选择安装和设置密码。
另外,还需要对其进行设置,绑定的IP和打开防火墙的3306端口,这里主要是学习MySQL半同步复制,对MySQL的安装不做多解释,如果疑问欢迎留言。
MySQL半同步复制介绍
(1)默认情况下,MySQL的复制功能是异步的,异步复制可以提供最佳的性能, 主库把binlog日志发送给从库,这一动作就结束了,并不会验证从库是否接收完毕,这一过程,也就意味着有可能出现当主服务器或从服务器端发生故障的时候,有可能从服务器没有接收到主服务器发送过来的binlog日志,这就会造成主服务器和从服务器的数据不一致,甚至在恢复时造成数据的丢失。
注意:
半同步复制模式必须在主服务器和从服务器端同时开启,否则主服务器默认使用异步复制模式。
(2)异步复制案例:
MySQL5.6 数据库主从(Master/Slave)同步安装与配置详解
(3)为了解决上述可能发生的错误,MySQL 5.5 引入了一种半同步复制模式。该模式可以确保从服务器接收完主服务器发送的binlog
日志文件并写入到自己的中继日志relay log
里,然后会给主服务器一个反馈,告诉主服务器已经接收完毕,这时主服务线程才返回给当前session
告知操作完成。
(4)当出现超时情况是,主服务器会暂时切换到异步复制模式,直到至少有一个从服务器从及时收到信息为止。
(5)中继日志的自我修复:
从MySQL 5.5.X版本开始,增加了<代码> relay_log_recovery> 代码参数,这个参数的作用是:当奴隶从库宕机后,假如<代码>继电器。日志> 代码损坏了,导致一部分中继日志没有处理,则自动放弃所有未执行的<代码> relay-log> 代码,并且重新从<代码> 代码>大师上获取日志,这样就保证了<代码> relay-log> 代码的完整性。默认情况下该功能是关闭的,将<代码> relay_log_recovery> 代码的值设置为1时,可在奴隶从库上开启该功能,建议开启。
(6)半同步复制与异步复制的切换:
半同步复制的工作原理就是当奴隶从库IO_Thread线程将binlog日志接收完毕之后,要给主人主库一个确认,如果<代码> rpl_semi_sync_master_timeout=10000> 代码(10秒)超过10秒未收到奴隶从库的接受确认信号,那么就会自动切换为传统的异步复制模式。
<强> MySQL半同步复制配置强>
首先,需要安装两个MySQL,这里是:
- <李>
主:192.168.1.227
李> <李>奴隶:192.168.1.224
李>原始数据库的模样如下:
<强> 强>
<强>一、主配置强>
(1)在主数据库安装半同步复制插件:
mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME & # 39; semisync_master.so& # 39;;
(2)设置的主人上开启半同步复制:
mysql> SET GLOBAL rpl_semi_sync_master_enabled =, 1;
(3)修改<代码> mysqld.cnf> 代码配置文件: