Replication基础(八) 半同步复制参数简析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sun_ashe/article/details/82967583

半同步复制参数解析

rpl_semi_sync_master_enabled

控制是否打开半同步复制,这是一个即时生效的参数, 举个例子,如果master因为种种原因无法接受到slave返回的ack信息,导致事务在提交阶段阻塞,手动关闭此参数即可生效。

此参数还有另外的作用就是,在slave丢失,事务等待超时后,半同步状态会自动关闭,但是此参数依然是on的状态,此时当半同步slave恢复后,内部状态会自动切换到半同步模式,其实也有一种手动的方式,就是重新设置此参数为on

mysql> set global rpl_semi_sync_master_enabled=off;
Query OK, 0 rows affected (0.00 sec)

mysql> set global rpl_semi_sync_master_enabled=on;
Query OK, 0 rows affected (0.00 sec)

rpl_semi_sync_master_timeout

等待ack的超时时间,可以动态设置,但是对于处于等待状态的事务无效,如果master因为种种原因无法接受到slave返回的ack信息,处于等待状态,此时如果为了让事务成功提交,将此参数设置为0是不生效的。必须调整rpl_semi_sync_master_enabled参数.

  • 但是这里还有一个疑问,如下

假设开始状态为半同步状态,超时时间为10000秒,此时并没有semisync slave

session1 session2 session3
insert into ashe(name) values(‘aaa’);(waiting)
set global rpl_semi_sync_master_timeout=2000;
insert into ashe(name) values(‘aaa’) ?

如上所示,会是什么样的状态呢?
在session2重新调整超时后,对session1的等待并没有任何影响。但是对后续的session3呢?

其实这里还要分两种情况

  • 1,binlog_order_commits=on

在binlog_order_commits=on的状态时,所有事务提交必须按照写binlog的顺序进行,所以事务3会一直处于等待的状态

  • 2, binlog_order_commits=off

在关闭binlog_order_commits时,事务3可以直接进入等待ack的逻辑中,此时超时时间为为2秒,2秒钟后,超时提交,并且会更新已经接受到的最大binlog文件+pos值,导致session1中的事务直接提交。

rpl_semi_sync_master_trace_level

这是一个日志打印参数,默认即可

The semisynchronous replication debug trace level on the master. Four levels are defined:

1 = general level (for example, time function failures)

16 = detail level (more verbose information)

32 = net wait level (more information about network waits)

64 = function level (information about function entry and exit)

rpl_semi_sync_master_wait_for_slave_count

必须等待多少个slave的ack信息,才可以提交

rpl_semi_sync_master_wait_no_slave

在没有slave时,是否选择等待。
image_1cp94vorj9u316l416um193u14rg9.png-172.5kB

rpl_semi_sync_master_wait_point

控制等待ack的逻辑处于整个事务提交过程的哪个阶段,目前支持两种模式

  • AFTER_SYNC

  • AFTER_COMMIT

关于这两点的具体区别,不在这里描述

rpl_semi_sync_slave_enabled

slave半同步的开关

rpl_semi_sync_slave_trace_level

日志相关

猜你喜欢

转载自blog.csdn.net/sun_ashe/article/details/82967583