自动清理日志
show variables like '%expire%'; expire_logs_days 0 日志一直不删 自动清理时间,是要按照全备周期+1 假设7天为一个全备周期: set global expire_logs_days=8; 永久设定: 永久生效: vim /etc/my.cnf expire_logs_days=15; 企业建议,至少保留两个全备周期+1的binlog
手工清理
PURGE BINARY LOGS BEFORE now() - INTERVAL 3 day;清理3天之前的 PURGE BINARY LOGS TO 'mysql-bin.000010';删除0000010前的删除(慎用) 删除所有binlog,并从000001开始重新记录日志: *reset master; 主从关系中,主库执行此操作,主从环境必崩 rm binlog文件操作步骤:my.cnf配置文件中binlog关闭掉,启动数据库--关闭数据库--开启binlog--启动数据库, 注意:生产环境慎用!
日志滚动
手动触发滚动,一般配置自动滚动flush logs; flush logs; 重启mysql也会自动滚动一个新的 select @@max_binlog_size;日志有一个大小上限,日志文件达到1G大小(max_binlog_size),一般配置自动滚动 50M左右的大小上限让它自动滚动。 备份时,加入参数也可以自动滚动
binlog2sql
使用场景:binlog2sql是根据mysql的binlog(要求格式是row)反解析出delete,update操作,对误操作数据进行还原。