mysql relay log参数汇总

前言:MySQL进行主主复制或主从复制的时候会在配置文件制定的目录下面产生相应的relay log,本文档总结这些相关参数的定义及解释。

1、什么是relay log

The relay log, like the binary log, consists of a set of numbered files containing events that describe database changes, and an index file that contains the names of all used relay log files.

The term “relay log file” generally denotes an individual numbered file containing database events. The term “relay log” collectively denotes the set of numbered relay log files plus the index file.

Relay log files have the same format as binary log files and can be read using mysqlbinlog .

理解:relay log很多方面都跟binary log差不多,区别是:从服务器I/O线程将主服务器的二进制日志读取过来记录到从服务器本地文件,然后SQL线程会读取relay-log日志的内容并应用到从服务器。

2、relay log的相关参数

mysql> show variables like ‘%relay%‘;
+---------------------------+----------------------------------------------+
| Variable_name             | Value                                        |
+---------------------------+----------------------------------------------+
| max_relay_log_size        | 0                                            |
| relay_log                 | /data01/mysql_dir/data/mysql-relay-bin       |
| relay_log_basename        | /data01/mysql_dir/data/mysql-relay-bin       |
| relay_log_index           | /data01/mysql_dir/data/mysql-relay-bin.index |
| relay_log_info_file       | /data01/mysql_dir/data/mysql-relay-bin.info  |
| relay_log_info_repository | TABLE                                        |
| relay_log_purge           | ON                                           |
| relay_log_recovery        | ON                                           |
| relay_log_space_limit     | 0                                            |
| sync_relay_log            | 10000                                        |
| sync_relay_log_info       | 10000                                        |
+---------------------------+----------------------------------------------+
11 rows in set (0.00 sec)

2.1  max_relay_log_size:标记relay log 允许的最大值,如果该值为0,则默认值为max_binlog_size(1G);如果不为0,则max_relay_log_size则为最大的relay_log文件大小;

2.2  relay_log:定义relay_log的位置和名称,如果值为空,则默认位置在数据文件的目录,文件名为host_name-relay-bin.nnnnnn(By default, relay log file names have the form host_name-relay-bin.nnnnnn in the data directory);

2.3 relay_log_index:同relay_log,定义relay_log的位置和名称;

2.4 relay_log_info_file:设置relay-log.info的位置和名称(relay-log.info记录MASTER的binary_log的恢复位置和relay_log的位置),也可以配置记录到mysql库中的slave_relay_log_info表中;

2.5 relay_log_purge:是否自动清空不再需要中继日志时。默认值为1(启用)。

2.6 relay_log_recovery:当slave从库宕机后,假如relay-log损坏了,导致一部分中继日志没有处理,则自动放弃所有未执行的relay-log,并且重新从master上获取日志,这样就保证了relay-log的完整性。默认情况下该功能是关闭的,将relay_log_recovery的值设置为 1时,可在slave从库上开启该功能,建议开启。开启该参数后,记得开启relay-log-purge参数。

This variable also interacts with relay-log-purge, which controls purging of logs when they are no longer needed. Enabling the --relay-log-recovery option when relay-log-purge is disabled risks reading the relay log from files that were not purged, leading to data inconsistency, and is therefore not crash-safe.

2.7 relay_log_space_limit:防止中继日志写满磁盘,这里设置中继日志最大限额。但此设置存在主库崩溃,从库中继日志不全的情况,不到万不得已,不推荐使用;

2.8 sync_relay_log:这个参数和sync_binlog是一样的,当设置为1时,slave的I/O线程每次接收到master发送过来的binlog日志都要写入系统缓冲区,然后刷入relay log中继日志里,这样是最安全的,因为在崩溃的时候,你最多会丢失一个事务,但会造成磁盘的大量I/O。当设置为0时,并不是马上就刷入中继日志里,而是由操作系统决定何时来写入,虽然安全性降低了,但减少了大量的磁盘I/O操作。这个值默认是10000,可动态修改,建议采用默认值。

2.9 sync_relay_log_info:这个参数和sync_relay_log参数一样,当设置为1时,slave的I/O线程每次接收到master发送过来的binlog日志都要写入系统缓冲区,然后刷入relay-log.info里,这样是最安全的,因为在崩溃的时候,你最多会丢失一个事务,但会造成磁盘的大量I/O。当设置为0时,并不是马上就刷入relay-log.info里,而是由操作系统决定何时来写入,虽然安全性降低了,但减少了大量的磁盘I/O操作。这个值默认是10000,可动态修改,建议采用默认值。

参考:

http://www.linuxidc.com/Linux/2014-11/109032.htm

http://dev.mysql.com/doc/refman/5.7/en/slave-logs-relaylog.html

http://dev.mysql.com/doc/refman/5.7/en/replication-options-slave.html

时间: 2024-11-18 07:08:18

mysql relay log参数汇总的相关文章

处理更改 MySQL relay log 目录后 slave 无法启动故障

问题:更改 relay log 目录后 slave 无法启动 2018-08-03T02:53:36.172465Z 0 [ERROR] Failed to open the relay log './mysql03-relay-bin.000018' (relay_log_pos 9680848). 2018-08-03T02:53:36.172515Z 0 [ERROR] Could not find target log file mentioned in relay log info i

【故障处理】ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository

今天在使用冷备份文件重做从库时遇到一个报错,值得研究一下. 版本:MySQL5.6.27 一.报错现象 dba:(none)> start slave; ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository 这个时候查看error.log: 2017-07-17 16:19:02 9022 [ERROR] Failed to open the relay log '.

MySQL 主从延迟几万秒 Queueing master event to the relay log(转)

数据库版本Server version:    5.6.24-log Source distribution 问题描述 数据采集平台业务数据库由于批量灌数据导致主从延迟上万秒. 复制线程长期处于Queueing master event to the relay log状态. 监控数据显示1.Seconds_Behind_Master 维持在6w秒左右,且有上升趋势.2.主库有大量的binlog积压无法同步到从库,但主从库的网卡流量都很低远未达到瓶颈.3.从库的qps与tps很低,维持在几百左右

解决Mysql复制Relay log read failure 的问题

一.问题描述 Mysql主从复制模式中,slave上报错 "relay log read failure",导致主从同步停止. mysql> show slave status\G *************************** 1. row *************************** Slave_IO_State: Master_Host: 10.0.0.93 Master_User: slaveuser Master_Port: 3306 Connect_

MySQL从库不能同步,报错Relay log read failure

问题:MySQL从库的数据不能同步,从库SHOW SLAVE STATUS提示如下错误: Last_SQL_Error: Relay log read failure: Could not parse relay log event entry. The possible reasons are: the master's binary log is corrupted (you can check this by running 'mysqlbinlog' on the binary log)

mysql数据库的参数以及性能的调配

 mysql数据库的特性以及参数性能 一:mysql与其他数据库的比较 MySQL是一个关系型数据库管理系统,开发者为瑞典MySQL AB公司,现在已经被Sun公司收购,支持FreeBSD.Linux.MAC.Windows等多种操作系统与其他的大型数据库例如Oracle.DB2.SQL Server等相比功能稍弱一些 1.可以处理拥有上千万条记录的大型数据 2.支持常见的SQL语句规范 3.可移植行高,安装简单小巧 4.良好的运行效率,有丰富信息的网络支持 5.调试.管理,优化简单(相对其他大

mysql-MHA预发布环境架构分享(八)之relay log的清除

(1)设置relay log的清除方式(在每个slave节点上): mysql -e 'set global relay_log_purge=0' 注意: MHA在发生切换的过程中,从库的恢复过程中依赖于relay log的相关信息,所以这里要将relay log的自动清除设置为OFF,采用手动清除relay log的方式.在默认情况下,从服务器上的中继日志会在SQL线程执行完毕后被自动删除.但是在MHA环境中,这些中继日志在恢复其他从服务器时可能会被 用到,因此需要禁用中继日志的自动删除功能.

MHA 清理relay log(purge_relay_logs)

?? MySQL数据库主从复制在缺省情况下从库的relay logs会在SQL线程执行完毕后被自动删除,但是对于MHA场景下,对于某些滞后从库的恢复依赖于其他从库的relay log,因此采取禁用自动删除功能以及定期清理的办法.对于清理过多过大的relay log需要注意引起的复制延迟资源开销等.MHA可通过purge_relay_logs脚本及配合cronjob来完成此项任务,具体描述如下. 1.purge_relay_logs的功能  a.为relay日志创建硬链接(最小化批量删除大文件导致

Mysql数据库配置参数详解大全

名称 是否需要重启 值 允许值 描述 auto_increment_increment 否 1 1-65,535 auto_increment_increment和auto_increment_offset 用于master-to-master的复制,并可以用来控制AUTO_INCREMENT列的操作. auto_increment_offset 否 1 1-65,535 auto_increment_increment和auto_increment_offse用于master-to-maste