解析MySQL relay log参数

47次阅读
没有评论

共计 2895 个字符,预计需要花费 8 分钟才能阅读完成。

这篇文章主要讲解了“解析 MySQL relay log 参数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“解析 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 来定期清除。

感谢各位的阅读,以上就是“解析 MySQL relay log 参数”的内容了,经过本文的学习后,相信大家对解析 MySQL relay log 参数这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-26发表,共计2895字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)