MySQL 处理清理binlog二进制文件

MySQL 清理binlog二进制文件

我先进数据库里面查询一下

-rw-r----- 1 mysql mysql         56 Oct 30  2023 auto.cnf
-rw-r----- 1 mysql mysql 1073741981 Jul 22 02:28 binlog.000223
-rw-r----- 1 mysql mysql 1073743137 Jul 23 00:05 binlog.000224
-rw-r----- 1 mysql mysql 1073765302 Jul 23 21:41 binlog.000225
-rw-r----- 1 mysql mysql 1073743399 Jul 24 19:16 binlog.000226
-rw-r----- 1 mysql mysql 1073743449 Jul 25 16:44 binlog.000227
-rw-r----- 1 mysql mysql 1073752603 Jul 26 14:25 binlog.000228
-rw-r----- 1 mysql mysql 1073743692 Jul 27 12:27 binlog.000229
-rw-r----- 1 mysql mysql 1073755283 Jul 28 09:55 binlog.000230
-rw-r----- 1 mysql mysql 1073742073 Jul 29 07:22 binlog.000231
-rw-r----- 1 mysql mysql 1073790832 Jul 30 05:24 binlog.000232
-rw-r----- 1 mysql mysql 1073742038 Jul 31 02:59 binlog.000233
-rw-r----- 1 mysql mysql 1073741902 Aug  1 00:48 binlog.000234
-rw-r----- 1 mysql mysql 1073741976 Aug  1 22:57 binlog.000235
-rw-r----- 1 mysql mysql 1073742887 Aug  2 21:02 binlog.000236
-rw-r----- 1 mysql mysql 1073742213 Aug  4 05:03 binlog.000237
-rw-r----- 1 mysql mysql 1073742500 Aug  5 03:39 binlog.000238
-rw-r----- 1 mysql mysql 1073742248 Aug 11 06:23 binlog.000239
-rw-r----- 1 mysql mysql 1073741907 Aug 11 19:48 binlog.000240
-rw-r----- 1 mysql mysql 1073849347 Aug 12 09:14 binlog.000241
-rw-r----- 1 mysql mysql 1073742574 Aug 12 23:39 binlog.000242
-rw-r----- 1 mysql mysql 1073743349 Aug 13 23:46 binlog.000243
-rw-r----- 1 mysql mysql 1073741887 Aug 15 00:26 binlog.000244
-rw-r----- 1 mysql mysql 1073742052 Aug 16 01:00 binlog.000245
-rw-r----- 1 mysql mysql 1073744211 Aug 17 01:12 binlog.000246
-rw-r----- 1 mysql mysql 1073742019 Aug 18 01:26 binlog.000247
-rw-r----- 1 mysql mysql 1073743083 Aug 18 23:32 binlog.000248
-rw-r----- 1 mysql mysql 1073742195 Aug 19 21:53 binlog.000249
-rw-r----- 1 mysql mysql  598642284 Aug 20 10:45 binlog.000250
-rw-r----- 1 mysql mysql    2888719 Aug 20 10:50 binlog.000251
-rw-r----- 1 mysql mysql        464 Aug 20 10:45 binlog.index
-rw------- 1 mysql mysql       1676 Oct 30  2023 ca-key.pem
-rw-r--r-- 1 mysql mysql       1112 Oct 30  2023 ca.pem
-rw-r--r-- 1 mysql mysql       1112 Oct 30  2023 client-cert.pem
-rw------- 1 mysql mysql       1676 Oct 30  2023 client-key.pem
-rw-r----- 1 mysql mysql     196608 Aug 20 10:50 #ib_16384_0.dblwr
-rw-r----- 1 mysql mysql    8585216 Aug 20 10:34 #ib_16384_1.dblwr
-rw-r----- 1 mysql mysql      18300 Aug 20 10:45 ib_buffer_pool
-rw-r----- 1 mysql mysql   79691776 Aug 20 10:50 ibdata1
-rw-r----- 1 mysql mysql   12582912 Aug 20 10:45 ibtmp1
drwxr-x--- 2 mysql mysql       4096 Aug 20 10:49 #innodb_redo
drwxr-x--- 2 mysql mysql       4096 Aug 20 10:45 #innodb_temp
drwxr-x--- 2 mysql mysql       4096 Oct 30  2023 mysql
-rw-r----- 1 mysql mysql   30408704 Aug 20 10:45 mysql.ibd
srwxrwxrwx 1 mysql mysql          0 Aug 20 10:45 mysql.sock
-rw------- 1 mysql mysql          6 Aug 20 10:45 mysql.sock.lock
-rw-r----- 1 mysql mysql          6 Oct 30  2023 mysql_upgrade_info
drwxr-x--- 2 mysql mysql       4096 Oct 30  2023 performance_schema
-rw------- 1 mysql mysql       1676 Oct 30  2023 private_key.pem
-rw-r--r-- 1 mysql mysql        452 Oct 30  2023 public_key.pem
-rw-r--r-- 1 mysql mysql       1112 Oct 30  2023 server-cert.pem
-rw------- 1 mysql mysql       1676 Oct 30  2023 server-key.pem
drwxr-x--- 2 mysql mysql      12288 Oct 30  2023 sys
-rw-r----- 1 mysql mysql   67108864 Aug 20 10:50 undo_001
-rw-r----- 1 mysql mysql   50331648 Aug 20 10:50 undo_002
drwxr-x--- 2 mysql mysql      12288 Oct 31  2023 zabbix
mysql> show variables like 'binlog_expire_logs_seconds';
+----------------------------+---------+
| Variable_name              | Value   |
+----------------------------+---------+
| binlog_expire_logs_seconds | 2592000 |
+----------------------------+---------+
1 row in set (0.01 sec)

发现binlog_expire_logs_seconds是保留30天的binlog,再看看expire_logs_days

mysql>  show variables like 'expire_logs_days';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| expire_logs_days | 0     |
+------------------+-------+
1 row in set (0.00 sec)
expire_logs_days 和 binlog_expire_logs_seconds 都是用于控制 MySQL 二进制日志文件保留时间的参数

expire_logs_days:
单位: 以天为单位。
功能: 指定二进制日志文件可以保留的天数。一旦超过这个期限,MySQL 将自动删除旧的二进制日志文件。
状态: 已被弃用,不再推荐使用。在新的 MySQL 版本中,建议使用下一个参数。

binlog_expire_logs_seconds:
单位: 以秒为单位。
功能: 指定二进制日志文件可以保留的秒数。一旦超过这个期限,MySQL 将自动删除旧的二进制日志文件。
替代方案: 是取代 expire_logs_days 参数的新参数,用来设置二进制日志文件的过期时间。

再查看一下max_binlog_size的大小

mysql> show variables like 'max_binlog_size';
+-----------------+------------+
| Variable_name   | Value      |
+-----------------+------------+
| max_binlog_size | 1073741824 |
+-----------------+------------+
1 row in set (0.00 sec)

发现是1073741824 ,也就是1GB

我开始修改binlog_expire_logs_seconds 为3天

mysql> SET GLOBAL binlog_expire_logs_seconds = 259200;
Query OK, 0 rows affected (0.00 sec)

但是要从你设置259200秒才开始计算3天 ,也就是说等3天后才执行删除。
如果不想等了,执行下面的命令:

PURGE BINARY LOGS BEFORE DATE(NOW() - INTERVAL 3 DAY);  

这个命令的含义是删除指定日期之前的所有二进制日志文件只保留3天。

好了!教程结束了。在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zero16800

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值