数据库运维
记录DBA学习成长历程

mysql二进制日志其他操作

自动清理日志

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操作,对误操作数据进行还原。
赞(0)
MySQL学习笔记 » mysql二进制日志其他操作