从数据库Slave服务的I/O线程从主数据库Master服务的二进制日志中读取数据库的更改记录并写入到中继日志中,然后在Slave数据库执行修改操作。这就是中继日志Relay Log。
一、中继日志参数说明
relay_log
中继日志存储位置和文件名
relay_log_info_file
记录master数据库二进制日志的pos和中继日志的pos
max_relay_log_size
中继日志的文件最大SIZE
relay_log_purge
是否自动清理中继日志
relay_log_recovery
中继日志自动恢复
relay_log_space_limit
中继日志空间限制
sync_relay_log
中继日志同步方式
sync_relay_log_info
主从复制状态记录文件info_file更新方式
参数详细介绍如下:
1.1、relay_log
如果值为空,则默认位置在数据文件的目录
1.2、relay_log_info_file
master的binary_log的恢复位置和slave数据库的relay_log的位置
1.3、max_relay_log_size
中继日志的文件最大SIZE
1.4、relay_log_purge
默认值为1(启用)
1.5、relay_log_recovery
服务器启动后立即启用自动中继日志恢复。
恢复过程将创建一个新的中继日志文件,将SQL线程位置初始化为此新的中继日志,并将I / O线程初始化为SQL线程位置。继续从主站读取中继日志。
1.6、relay_log_space_limit
该选项对从站上的所有中继日志的总大小(以字节为单位)设置上限。
值为0意味着“ 没有限制 ”。这对于磁盘空间有限的从服务器主机很有用。
当达到限制时,I / O线程停止从主服务器读取二进制日志事件,直到SQL线程已经赶上并删除了一些未使用的中继日志。
请注意,此限制不是绝对的:有些情况下SQL线程需要更多事件才能删除中继日志。
在这种情况下,I / O线程超出限制,直到SQL线程可以删除某些中继日志,因为不这样做会导致死锁。
1.7、sync_relay_log
sync_relay_lo>0;MySQL服务器将fdatasync()每个sync_relay_log事件写入中继日志后,将其中继日志同步到磁盘(正在使用 ) 。设置此变量立即生效,包括正在运行的通道。
sync_relay_log=0;不会导致同步到磁盘; 在这种情况下,服务器依赖于操作系统来随时刷新中继日志的内容,就像任何其他文件一样。
sync_relay_lo=1;最安全的选择,因为在发生崩溃时,您最多会从中继日志中丢失一个事件。但是,这样写操作会非常频繁。
1.8、sync_relay_log_info
sync_relay_log_info > 0;slave mysql服务每N个事务之后,将relay_log.info文件内容同步至磁盘
sync_relay_log_info =0; slave mysql依赖操作系统定时刷新磁盘服务,将relay_log.info内容同步至磁盘