Master-Slave Semisynchronous Replication on MySQL 5.7.13
Master-Slave Semisynchronous Replication on MySQL 5.7.13
Prerequisites
- 检查
have_dynamic_loading系统变量值为 YES。 - 复制已经在正常运行。
- 不能配置多复制通道,半同步复制只能兼容默认的复制通道。
Procedure
-
检查动态加载插件要求。
mysql> show variables like 'have_dynamic_loading';
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| have_dynamic_loading | YES |
+----------------------+-------+
1 row in set (0.02 sec) -
安装插件。
源端
mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
Query OK, 0 rows affected (0.15 sec)
mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS
-> FROM INFORMATION_SCHEMA.PLUGINS
-> WHERE PLUGIN_NAME LIKE '%semi%';
+----------------------+---------------+
| PLUGIN_NAME | PLUGIN_STATUS |
+----------------------+---------------+
| rpl_semi_sync_master | ACTIVE |
+----------------------+---------------+
1 row in set (0.00 sec)复制端
mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
Query OK, 0 rows affected (0.19 sec)
mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS
-> FROM INFORMATION_SCHEMA.PLUGINS
-> WHERE PLUGIN_NAME LIKE '%semi%';
+---------------------+---------------+
| PLUGIN_NAME | PLUGIN_STATUS |
+---------------------+---------------+
| rpl_semi_sync_slave | ACTIVE |
+---------------------+---------------+
1 row in set (0.00 sec) -
配置系统变量。
源端
SET GLOBAL rpl_semi_sync_master_enabled = {0|1};
SET GLOBAL rpl_semi_sync_master_timeout = N;[mysqld]
rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=1000 # 1 second复制端
SET GLOBAL rpl_semi_sync_slave_enabled = {0|1};
[mysqld]
rpl_semi_sync_slave_enabled=1 -
重启复制 IO 线程。
stop slave io_thread;
start slave io_thread;
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.