加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

分析MySQL relay log参数

发布时间:2023-08-29 13:32:38 所属栏目:MySql教程 来源:
导读:这篇文章主要讲解了“解析MySQL relay log参数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“解析MySQL relay log参数”吧!root@db 16:1

这篇文章主要讲解了“解析MySQL relay log参数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“解析MySQL relay log参数”吧!

root@db 16:12: [(none)]> show variables like '%relay%';

+---------------------------+--------------------------------------+

| Variable_name       | Value                |

+---------------------------+--------------------------------------+

| max_relay_log_size    | 0                  |

| relay_log         |                   |

| relay_log_basename    | /data/mysql/node2bak-relay-bin    |

| relay_log_index      | /data/mysql/node2bak-relay-bin.index |

| relay_log_info_file    | relay-log.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)

root@db 16:12: [(none)]> 

log-slave-updates:

一般情况下slave不会把从master接收到的binlog记录写入自己的binlog,这个参数会使slave通过SQL线程把从master接受到的binlog写进自己的binlog,但是前提是slave一定要开启自己的binlog,此参数一般用于级联复制,例如需要A复制到B,B复制到C,那么B就要开启此参数。

max_relay_log_size:

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

最大的relay_log文件大小;

relay_log:

定义relay_log的位置和名称,如果值为空,则默认位置在数据文件的目录(datadir),文件名为host_name-relay-bin.nn

nnnn(By default, relay log file names have the form host_name-relay-bin.nnnnnn in the data directory);

relay_log_basename:

中转日志文件的名称和路径。

relay_log_index:

同relay_log,定义relay_log的位置和名称;一般和relay-log在同一目录

relay_log_info_file:

设置relay-log.info的位置和名称(relay-log.info记录MASTER的binary_log的恢复位置和relay_log的位置)

relay_log_info_repository :

确定 从的 relay_log 位置放在 FILE(relay-log.info)  还是 TABLE (mysql.slave_relay_log_info),保证数据写入的一致性

relay_log_purge:

开启或关闭在不需要的时候自动删除中转日志。默认开启(1),这是个全局变量,可以通过 SET GLOBAL relay_log_purge =

 N 动态设置。

relay_log_recovery:

当slave从库宕机后,假如relay-log损坏了,导致一部分中继日志没有处理,则自动放弃所有未执行的relay-log,并且重新

从master上获取日志,这样就保证了relay-log的完整性。默认情况下该功能是关闭的,将relay_log_recovery的值设置为 1

时,可在slave从库上开启该功能,建议开启。

relay_log_space_limit:

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

已,不推荐使用;

sync_relay_log:

这个参数和sync_binlog是一样的,当设置为1时,slave的I/O线程每次接收到master发送过来的binlog日志都要写入系统

缓冲区,然后刷入relay log中继日志里,这样是最安全的,因为在崩溃的时候,你最多会丢失一个事务,但会造成磁盘的

大量I/O。

当设置为0时,并不是马上就刷入中继日志里,而是由操作系统决定何时来写入,虽然安全性降低了,但减少了大量的磁

盘I/O操作。这个值默认是0,可动态修改,建议采用默认值。

sync_relay_log_info:

这个参数和sync_relay_log参数一样,当设置为1时,slave的I/O线程每次接收到master发送过来的binlog日志都要写入

系统缓冲区,然后刷入relay-log.info里,这样是最安全的,因为在崩溃的时候,你最多会丢失一个事务,但会造成磁盘

的大量I/O。当设置为0时,并不是马上就刷入relay-log.info里,而是由操作系统决定何时来写入,虽然安全性降低了,但

减少了大量的磁盘I/O操作。这个值默认是0,可动态修改,建议采用默认值。

推荐从库线上环境使用以下配置

#relay log

max_relay_log_size = 0;

relay_log=$datadir/relay-bin

relay_log_purge = 1;

relay_log_recovery = 1;

sync_relay_log =0;

sync_relay_log_info = 0;

如果是mha环境,则relay_log_purge 不要开启,设置为0,可以使用 purge_relay_logs 来定期清除。

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章