Mysqlbinlog日志的清理与切换

(一)、二进制日志的作用

1、复制

MySQL Master二进制日志发送到slave,slave根据日志进行重做,达到主从复制的目的。

2、恢复

不管是使用mysqldump还是xtrabackup,都只能将数据库恢复到有备份的时刻,如果要将数据库恢复到任何时刻,则需要使用二进制日志


(二)、binlog清理

如果数据量较大,binlog日志增长很快,需要定期清理的方法:

方法1:使用“reset master”命令,该命令将删除所有的binlog日志,日志编号从“000001”开始

mysql> reset master;

Query OK, 0 rows affected (0.00 sec)


方法2:使用“purge master logs to ‘hostname-bin.******’ ”命令; 该命令将删除******之前的日志

[root@k8s-master1 mysql]# ls -lrt

-rw-r----- 1 mysql mysql 168 1月  7 16:18 mysql-bin.000001

-rw-r----- 1 mysql mysql 168 1月  7 16:19 mysql-bin.000002

-rw-r----- 1 mysql mysql 168 1月  7 16:19 mysql-bin.000003

-rw-r----- 1 mysql mysql 168 1月  7 16:20 mysql-bin.000004

-rw-r----- 1 mysql mysql 168 1月  7 16:21 mysql-bin.000005

-rw-r----- 1 mysql mysql 168 1月  7 16:21 mysql-bin.000006

-rw-r----- 1 mysql mysql 168 1月  7 16:25 mysql-bin.000007

-rw-r----- 1 mysql mysql 156 1月  7 16:37 mysql-bin.000008

[root@k8s-master1 mysql]# 

mysql> purge master logs to 'mysql-bin.000007';

Query OK, 0 rows affected (0.00 sec)

[root@k8s-master1 mysql]# ls -lrt

-rw-r----- 1 mysql mysql 168 1月  7 16:25 mysql-bin.000007

-rw-r----- 1 mysql mysql 156 1月  7 16:37 mysql-bin.000008


方法3:使用“purge master logs before‘yyyy-mm-dd hh24:mi:ss’ ”命令,该命令将删除指定日志之前的日志, 删除2020-01-07 00:24:00之前的日志

[root@k8s-master1 mysql]# ls -lrt /mysql/mysql-bin*

-rw-r----- 1 mysql mysql 168 1月  7 16:25 mysql-bin.000007

-rw-r----- 1 mysql mysql 156 1月  7 16:37 mysql-bin.000008

-rw-r----- 1 mysql mysql 156 1月  7 16:37 mysql-bin.000009

-rw-r----- 1 mysql mysql 156 1月  7 16:37 mysql-bin.000010

-rw-r----- 1 mysql mysql 156 1月  7 16:37 mysql-bin.000011

-rw-r----- 1 mysql mysql 156 1月  7 16:37 mysql-bin.000012

-rw-r----- 1 mysql mysql 156 1月  7 16:37 mysql-bin.000013

-rw-r----- 1 mysql mysql 156 1月  7 16:37 mysql-bin.000014

mysql> purge master logs before '2020-01-07 00:24:00';

Query OK, 0 rows affected (0.00 sec)


方法4:在配置文件中添加“expire_logs_days”参数,指定过期天数,到期会自动删除。


(三)、binlog切换

使用flush logs或者flush binary logs切换日志

mysql> show master status;

图片

1 row in set (0.00 sec)

mysql> flush logs;

Query OK, 0 rows affected (0.00 sec)


mysql> show master status;

图片

mysql> flush binary logs;

Query OK, 0 rows affected (0.00 sec)


mysql> show master status;

图片


图片


猜你喜欢

转载自blog.51cto.com/15127516/2657669