Mysql binlog日志太多,占用大量磁盘空间该如何正确处理
Mysql binlog日志太多,占用大量磁盘空间该如何正确处理
1、问题描述
由于其他程序问题,一直读写数据库,导致数据库产生了大量的binlog日志,把磁盘空间占满
2、解决方式
可以先rm 删除binlog日志文件,再执行purge binary logs to 'mysql-binlog.000100'.
注意:mysqlbinlog 文件的生成顺序是递增的,也就是mysql-binlog.000100 比起mysql-binlog.000101, mysql-binlog.000100是较为早一些的binlog日志。
rm 删除的时候,一定不能删除正在使用的binlog文件。另外用rm 删除的binlog ,一定要再purge一次,不然数据库无法启动。
rm mysql-binlog.000100
purge binary logs to 'mysql-bin.0000100'
3、补充mysql 命令操作
# 查看当前binlog文件列表
SHOW BINARY LOGS;
# 设置binlog过期时间,使系统自动删除binlog
show variables like 'expire_logs_days';
set global expire_logs_days = 30;
# 查看binlog文件中记录的操作
show binlog events in 'mysql-binlog.000100'
# 也可以使用shell 查看
mysqlbinlog --no-defaults /var/lib/mysql/mysql-binlog.000100