以下是半同步复制参数统计。
relay_log_recovery
Command-Line Format -- relay_log_recovery =#
Config-File Format relay_log_recovery
Option Sets Variable Yes, relay_log_recovery
Variable Name relay_log_recovery
Variable Scope Global
Dynamic Variable No
Permitted Values
Type boolean
Default FALSE
解释:当slave从库宕机时,假如relay-log损坏了,导致一部分中继日志没有处理,则自动放弃所有未执行的relay-log,并且重新从master上获取日志,这样保证relay-log的完整性。默认情况下该功能是关闭的,不支持动态修改,建议开启。
sync_relay_log
Command-Line Format -- sync_relay_log =#
Config-File Format sync_relay_log
Option Sets Variable Yes, sync_relay_log
Variable Name sync_relay_log
Variable Scope Global
Dynamic Variable Yes
Permitted Values
Platform
Bit Size 32
Type numeric
Default 0
Range 0 .. 4294967295
Permitted Values
Platform
Bit Size 64
Type numeric
Default 0
Range 0 .. 18446744073709547520
解释:这个参数和sync_binlog是一样的,当设置为1时,slave的I/O线程每次接收到master发送过来的binlog日志都要写入系统缓冲区,然后刷入relay log中继日志里,这样是最安全的,因为在崩溃的时候,你最多会丢失一个事务,但会造成磁盘的大量I/O。
当设置为0时,并不是马上就刷入中继日志里,而是由操作系统决定何时来写入,虽然安全性降低了,但减少了大量的磁盘I/O操作。这个值默认是0,可动态修改,建议采用默认值。
sync_relay_log_info
Command-Line Format -- sync_relay_log_info =#
Config-File Format sync_relay_log_info
Option Sets Variable Yes, sync_relay_log_info
Variable Name sync_relay_log_info
Variable Scope Global
Dynamic Variable Yes
Permitted Values
Platform
Bit Size 32
Type numeric
Default 0
Range 0 .. 4294967295
Permitted Values
Platform
Bit Size 64
Type numeric
Default 0
Range 0 .. 18446744073709547520
解释:这个参数和sync_relay_log参数一样,当设置为1时,slave的I/O线程每次接收到master发送过来的binlog日志都要写入系统缓冲区,然后刷入relay-log.info里,这样是最安全的,因为在崩溃的时候,你最多会丢失一个事务,但会造成磁盘的大量I/O。
当设置为0时,并不是马上就刷入relay-log.info里,而是由操作系统决定何时来写入,虽然安全性降低了,但减少了大量的磁盘I/O操作。这个值默认是0,可动态修改,建议采用默认值。
sync_master_info
Command-Line Format -- sync_master_info =#
Config-File Format sync_master_info
Option Sets Variable Yes, sync_master_info
Variable Name sync_master_info
Variable Scope Global
Dynamic Variable Yes
Permitted Values
Platform
Bit Size 32
Type numeric
Default 0
Range 0 .. 4294967295
Permitted Values
Platform
Bit Size 64
Type numeric
Default 0
Range 0 .. 18446744073709547520
解释:这个参数和sync_relay_log_info参数一样,当设置为1时,slave的I/O线程每次接收到master发送过来的binlog日志都要写入系统缓冲区,然后刷入master.info里,这样是最安全的,因为在崩溃的时候,你最多会丢失一个事务,但会造成磁盘的大量I/O。
当设置为0时,并不是马上就刷入master.info里,而是由操作系统决定何时来写入,虽然安全性降低了,但减少了大量的磁盘I/O操作。这个值默认是0,可动态修改,建议采用默认值。
rpl_semi_sync_master_enabled
Variable Name rpl_semi_sync_master_enabled
Variable Scope Global
Dynamic Variable Yes
Permitted Values
Type boolean
Default OFF
解释:表示是否开启半同步复制功能,默认是关闭的,采用异步复制,可动态修改。
rpl_semi_sync_master_timeout
Variable Name rpl_semi_sync_master_enabled
Variable Scope Global
Dynamic Variable Yes
Permitted Values
Type boolean
Default OFF
解释:表示主库在某次事务中,如果等待时间超过10秒,那么降级为异步复制模式,不再等待slave从库。如果主库再次探测到slave从库恢复了,则会自动再次回到半同步复制模式。默认为10 000毫秒,等于10秒,这个参数动态可调。
rpl_semi_sync_master_trace_level
Variable Name rpl_semi_sync_master_trace_level
Variable Scope Global
Dynamic Variable Yes
Permitted Values
Type numeric
Default 32
解释:在master上,开启半同步复制模式时的调试级别默认是32,可动态修改,一般采用默认值即可。
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_no_slave
Variable Name rpl_semi_sync_master_wait_no_slave
Variable Scope Global
Dynamic Variable Yes
Permitted Values
Type boolean
Default ON
解释:是否允许master每个事务提交后都要等待slave的接收确认信号。默认为ON,每一个事务都会等待。如果为OFF,则slave追赶上后,也不会开启半同步复制模式,需要手工开启,可动态修改。
rpl_semi_sync_slave_enabled
Variable Name rpl_semi_sync_slave_enabled
Variable Scope Global
Dynamic Variable Yes
Permitted Values
Type boolean
Default OFF
解释:表示在slave上是否已经开启半同步复制模式,默认是不开启,可动态修改。
rpl_semi_sync_slave_trace_level
Variable Name rpl_semi_sync_slave_trace_level
Variable Scope Global
Dynamic Variable Yes
Permitted Values
Type numeric
解释:在slave上,开启半同步复制模式时的调试级别,默认是32,可动态修改,一般采用默认值即可。
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)