Mysql或Mariadb产生大量的mysql-bin.xxx日志文件
每天看着数据盘都增长100M左右心里很是着急。进入系统查询Mariadb数据库每天才产生几十M的空间
于是找了半天才发现在其根目录下有很多mysql-bin.xxx的日志文件。这是由于启用mysql-bin日志记录的缘故
mysql> show global variables like '%bin%'; +---------------------------------+----------------------+ | Variable_name | Value | +---------------------------------+----------------------+ | binlog_cache_size | 32768 | | innodb_locks_unsafe_for_binlog | OFF | | log_bin | ON | | log_bin_trust_function_creators | OFF | | max_binlog_cache_size | 18446744073709547520 | | max_binlog_size | 104857600 | | sync_binlog | 0 | +---------------------------------+----------------------+ 7 rows in set (0.00 sec)
其中一个数据库,积累了大量的bin日志:
mysql> show binary logs; +------------------+-----------+ | Log_name | File_size | +------------------+-----------+ | mysql-bin.000064 | 3175623 | | mysql-bin.000065 | 104857696 | | mysql-bin.000066 | 30124812 | | mysql-bin.000067 | 104857882 | | mysql-bin.000068 | 104857829 | | mysql-bin.000069 | 104857910 | | mysql-bin.000070 | 29627738 |
有三种解决方法:
1.关闭mysql主从,关闭binlog;
2.开启mysql主从,设置expire_logs_days;
3.手动清除binlog文件;
实现:1.关闭mysql主从,关闭binlog
# vim /etc/my.cnf //注释掉log-bin,binlog_format # Replication Master Server (default) # binary logging is required for replication # log-bin=mysql-bin # binary logging format - mixed recommended # binlog_format=mixed
然后重启数据库
2.重启mysql,开启mysql主从,设置expire_logs_days
# vim /etc/my.cnf //修改expire_logs_days,x是自动删除的天数,一般将x设置为短点,如10 expire_logs_days = x //二进制日志自动删除的天数。默认值为0,表示“没有自动删除”
3.手动清除binlog文件
# /usr/local/mysql/bin/mysql -u root -p > PURGE MASTER LOGS BEFORE DATE_SUB(CURRENT_DATE, INTERVAL 10 DAY); //删除10天前的MySQL binlog日志,附录2有关于PURGE MASTER LOGS手动删除用法及示例 > purge binary logs to 'mysql.bin.000071'; //删除指定日志文件; > reset master; //这种清理法更狠,一键清除所有日志; Query OK, 0 rows affected (0.06 sec) > show master logs;
4.清除binlog时,对从mysql的影响
如果您有一个活性的从属服务器,该服务器当前正在读取您正在试图删除的日志之一,则本语句不会起作用,而是会失败
并伴随一个错误。不过,如果从属服务器是休止的,并且您碰巧清理了其想要读取的日志之一,则从属服务器启动后不能复制
当从属服务器正在复制时,本语句可以安全运行。您不需要停止它们
常用的命令:
mysql>show slave hosts -- 查看所有连接到Master的Slave信息 mysql>show master status -- 查看Master状态信息 mysql>show slave status -- 查看Slave状态信息 mysql>show binary logs -- 查看所有二进制日志 mysql>show binlog events [IN log_file] -- 查看二进制日志中的事件
上一篇:2016年新年快乐