Mysql 主从同步模式
mysql主从同步数据复制工作模式
-
默认为异步同步模式
执行方式:
主服务器执行完一次事物后,立即将结果返回给客户端,不关心从服务器是否已经同步完数据;
-
半同步复制模式
执行方式:
主服务器执行完一次事物后,等待至少一台从服务器同步数据完成,才将结果返回给客户端;
mysql半同步复制模式设置
命令行模式设置,好处:不用重启服务马上生效,坏处服务重启就失效
查看模块是否安装
mysql> SELECT plugin_name, plugin_status FROM information_schema.plugins
WHERE plugin_name LIKE "%semi%";
+----------------------+---------------+
| plugin_name | plugin_status |
+----------------------+---------------+
| rpl_semi_sync_master | ACTIVE |
| rpl_semi_sync_slave | ACTIVE |
+----------------------+---------------+
未安装则配置
#安装master模块
MySQL> install plugin rpl_semi_sync_master SONAME "semisync_master.so";
#安装slave模块
MySQL> install plugin rpl_semi_sync_slave SONAME "semisync_slave.so";
查看模块是否启用
mysql> SHOW VARIABLES LIKE "rpl_semi_sync_%_enabled";
+------------------------------+-------+
| Variable_name | Value |
+------------------------------+-------+
| rpl_semi_sync_master_enabled | OFF |
| rpl_semi_sync_slave_enabled | OFF |
+------------------------------+-------+
2 rows in set (0.00 sec)
启用模块
#启用master模块 开启半同步模式
mysql> SET GLOBAL rpl_semi_sync_master_enabled=1;
#启用slave模块 开启半同步模式
mysql> SET GLOBAL rpl_semi_sync_slave_enabled=1;
永久配置编辑主配置文件
vim /etc/my.cnf
[mysqld]
#安装模块
plugin-load="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
#启用模块
rpl_semi_sync_slave_enabled=1
rpl_semi_sync_master_enabled=1
特意说明: 当只做主同步时,只需要开启master半同步即可,当需要数据库做主从都半同步时,则都要开启