侧边栏壁纸
博主头像
CYC的个人博客博主等级

学习使人进步

  • 累计撰写 91 篇文章
  • 累计创建 11 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

MysqlBinlog日志清理,慎用

Administrator
2023-11-15 / 0 评论 / 0 点赞 / 119 阅读 / 2107 字

MysqlBinlog日志清理,慎用


--查看当前正在使用的binlog文件
mysql> show master status\G;



1、mysql命令purge

--使用PURGE BINARY LOGS TO删除指定的日志文件名
mysql> purge master logs to "mysql-bin.000410";


--删除2022-05-07 21:10:00时间之前的binlog
mysql> PURGE BINARY LOGS BEFORE '2022-05-07 21:10:00';



2、手动rm清理

rm -rf mysql-bin.00040*;

vim mysql-bin.log.index
清除掉里面的mysql-bin.0004**纪录

3、参数清理

set global expire_logs_days=5;
系统自动清理


--删除所有的二进制日志文件
mysql> RESET MASTER;




从库binlog删除
创建工作目录
目的为了提高性能,这个工作目录必须跟mysql在同一个磁盘分区

mkdir -p /data/mha_tmp
purge relay logs
/usr/bin/purge_relay_logs --user=root   --password=ws48250302! --host=192.168.18.12 --disable_relay_log_purge --workdir=/mnt/dbdata/mysql/data/xfy/data/  2>&1  


参数描述:

--user:mysql用户名,缺省为root
--password:mysql密码
--port:端口号
--host:主机名,缺省为127.0.0.1
--workdir:指定创建relay log的硬链接的位置,默认是/var/tmp,成功执行脚本后,硬链接的中继日志文件被删除。由于系统不同分区创建硬链接文件会失败,故需要执行硬链接具体位置,建议指定为relay log相同的分区
--disable_relay_log_purge:默认情况下,参数relay_log_purge=1,脚本不做任何处理,自动退出;设定该参数,脚本会将relay_log_purge设置为0,当清理relay log之后,最后将参数设置为OFF(0)
3.1.3 定期清理relay log

加入到crontab中
0 4 * * * /usr/bin/purge_relay_logs --user=USERNAME --password=PASSWORD --host=Mysql_IP --disable_relay_log_purge --workdir=/data/mha_tmp 2>&1




方式二:
手动删除 relay log

设置relay_log_purge = 1
SET GLOBAL relay_log_purge = 1
flush logs
通过管理员用户登陆从数据库,然后执行下面命令:
flush logs;
可以执行多次!
注意:
观察堆积的relay logs日志是否已经删除,如果删除,直接执行下面第6步“恢复relay_log_purge = 0“;如果未删除,继续从下面第3步”停止slave“往下操作!!!

停止slave
通过管理员用户登陆从数据库,然后执行下面命令:
stop slave;
删除relay logs
可以通过rm直接删除relay logs
通使用下面方式安全删除:
(1) 统计所有关于relay的文件(包括 relay_log_name.index)总个数

ls -A1 |grep relay | sort -rn | wc -l
(2) 列出要删除所有有关relay的文件:

ls -A1 |grep relay | sort -rn | tail -n 100
说明: 100 为要删除的relay logs 数量

(3) 确定没有问题,删除relay logs:

ls -A1 |grep relay | sort -rn | tail -n 100 | xargs rm -rf {}
注意:
要保留最新的两个relay log
要保留relay log的index文件
relay log的index一般命名为: relay_log_name.index
例如: relay-bin.index
5. 启动slave
通过管理员用户登陆从数据库,然后执行下面命令:

start slave;
6 . 恢复relay_log_purge = 0
通过管理员用户登陆从数据库,然后执行下面命令:

SET GLOBAL relay_log_purge=0;

0

评论区