mysql relay_log删除_MySQL--binlog和relay log的生成和删除

本文详细介绍了MySQL的binlog和relay log的生成与删除机制。binlog文件在达到max_binlog_size时会生成新的文件,删除包括RESET MASTER、PURGE MASTER LOGS TO、PURGE MASTER LOGS BEFORE等方式。relay log在SQL Thread执行完events或超过expire-logs-days时会被删除。此外,文章还提到了相关参数和如何关闭会话级别的BINLOG记录。
摘要由CSDN通过智能技术生成

##==================================================================================================##

binlog文件生成:在每条二进制日志写入到日志文件后,会判断该文件是否超过max_binlog_size,如果超过则生成一个新的binlog

relay log文件生成:每从Master fetch一个events后,判断当前文件是否超过max_relay_log_size 如果超过则自动生成一个新的relay-log-file

##==================================================================================================##

binlog文件删除机制:

1、当使用RESET MASTER命令后,会清空全部二进制日志

命令:RESET MASTER;

2、当执行PURGE MASTER LOG TO命令后,会删除指定binlog以及之前的二进制日志

命令:PURGE MASTER LOGS TO 'binlog file name';

3、当执行PURGE MASTER LOG BEFORE 命令后,会删除指定时间前的所有二进制

命令:PURGE MASTER LOGS TO 'datetime';

4、当实例启动或执行flush logs时,按照expire_logs_days设置,如果超过该参数指定天数的二进制会被全部删除

命令:mysqladmin flush-log

##==================================================================================================##

binlog文件删除顺序:

先从文件系统中删除binlog文件,在修改binlog的索引文件。

##==================================================================================================##

relay log删除机制

1、在SQL Thread每执行完一个events时判断,如果该relay-log 已经不再需要则自动删除

2、在实例重启或执行flush log时判断relay-log是否超过expire-logs-days的设定值,超过purge file

3、在执行reset slave时删除所有relay-log

##==================================================================================================##

##查看文件日期

ll -h --time-style='+%Y-%m-%d %H:%M:%S' mysql-bin*

##==================================================================================================##

补充知识:

1、在使用mysqldump备份时,可以指定参数--flush-logs来在备份开始前刷新日志

2、参数expire-logs-days的默认值为0,会导致relay-log在flush logs时没有自动清除。

3、除参数binlog-format外,参数binlog_row_image也会影响binlog日志文件大小,尤其当包含blob等大字段记录行被更新时。

4、参数binlog_rows_query_log_events用来在binlog中存放导致数据变化的“原始SQL”,该参数默认不启用,在部分场景中可以开启该参数来排查。

##==================================================================================================##

关闭会话级别的BINLOG

如果不希望当前会话的行为被记录到binlog中,可以使用参数sql_log_bin来禁用:

SET SESSION SQL_LOG_BIN=0

比如在主库上进行数据删除,或在主库上创建索引,但不希望传递到从库时,可以采用此方式处理

##==================================================================================================##

5efa60a354d54aa10f2972188008d630.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值