9、半同步复制参数说明
master上:
rpl_semi_sync_master_enabled=on表示master上已经开启了半同步复制模式
rpl_semi_sync_master_timeout=1000:该参数默认为1000毫秒,即10秒,此参可动态修改。主库在某次事务中等待事件超过10秒,则降级为异步模式,
不再等待slave从库,如果主库再次探测到slave从库恢复,则自动再次回到半同步复制模式
rpl_semi_sync_master_wait_no_slave:表示是否允许master每个事务提交后都要等待slave的接收确认信息,默认为no,每个事务都要。off,则slave追赶上后,再不会开启semi sync。需要手工启动
rpl_semi_sync_master_trace_level=32:表示用于开启半同步复制模式的调试级别,默认为32
rpl_semi_sync_master_wait_point :默认为AFTER_SYNC
AFTER_COMMIT,master写事务到binlog落地磁盘,并且发送给slave端。主库等待从库写到自己的relay-log中确认信息。在接收确认信息后,master端把事务写到存储引擎里并把相应结果反馈给客户端,客户端将在那时进行处理。
AFTER_SYNC,主库把每一个事务写到binlog并落盘,并且发给从库,并把事务写到存储引擎中,master再等待从库写relay-log里确认信息。在接到确认信息后,主库把相应结果反馈给客户端,客户端将在那时处理
slave上:
rpl_semi_sync_slave_enabled=on:表示slave开启semi sync
rpl_semi_sync_slave_trace_level=32:semi sync模式的调试级别
mysql5.7需要安装plugin,一般情况下次插件已在plugin目录下
mysql> show variables like '%rpl_semi%';
Empty set (0.01 sec)
mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so';
Query OK, 0 rows affected (0.01 sec)
mysql> install plugin rpl_semi_sync_slave soname 'semisync_slave.so';
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like '%rpl_semi%';
+-------------------------------------------+------------+
| Variable_name | Value |
+-------------------------------------------+------------+
| rpl_semi_sync_master_enabled | OFF |
| rpl_semi_sync_master_timeout | 10000 |
| rpl_semi_sync_master_trace_level | 32 |
| rpl_semi_sync_master_wait_for_slave_count | 1 |
| rpl_semi_sync_master_wait_no_slave | ON |
| rpl_semi_sync_master_wait_point | AFTER_SYNC |
| rpl_semi_sync_slave_enabled | OFF |
| rpl_semi_sync_slave_trace_level | 32 |
+-------------------------------------------+------------+
8 rows in set (0.00 sec)
半同步的状态信息,这里没有开启
mysql> show status like '%semi%';
+--------------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------------+-------+
| Rpl_semi_sync_master_clients | 0 |
| Rpl_semi_sync_master_net_avg_wait_time | 0 |
| Rpl_semi_sync_master_net_wait_time | 0 |
| Rpl_semi_sync_master_net_waits | 0 |
| Rpl_semi_sync_master_no_times | 0 |
| Rpl_semi_sync_master_no_tx | 0 |
| Rpl_semi_sync_master_status | OFF |
| Rpl_semi_sync_master_timefunc_failures | 0 |
| Rpl_semi_sync_master_tx_avg_wait_time | 0 |
| Rpl_semi_sync_master_tx_wait_time | 0 |
| Rpl_semi_sync_master_tx_waits | 0 |
| Rpl_semi_sync_master_wait_pos_backtraverse | 0 |
| Rpl_semi_sync_master_wait_sessions | 0 |
| Rpl_semi_sync_master_yes_tx | 0 |
| Rpl_semi_sync_slave_status | OFF |
+--------------------------------------------+-------+
15 rows in set (0.01 sec)
Rpl_semi_sync_master_clients:说明有多少个slave配置了semi sync
Rpl_semi_sync_master_yes_tx:说明slave确认的成功提交数量
Rpl_semi_sync_master_no_tx:说明slave确认的不成功的数量