按照指定个数清理MySQL binlog 日志

针对大量MySQL binlog导致的磁盘空间问题,本文介绍了如何编写Python脚本,依据binlog文件数量而非天数进行清理。当磁盘使用率达到90%且binlog数量超过15个时,脚本会触发清理。文章包含详细步骤,并使用pymysql、psutil和logging模块。建议设置为每小时执行一次的定时任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:由于线上库有较多的增删改操作,一天的binlog 日志可能就达到200-300G。这时候我们按照天数清理binlog 已经无法起作用了,因此编写脚本按照个数清理binlog。当磁盘空间达到90% 的时候清理binlog。

clean_binlog.py 
#!/usr/bin/python
import psutil
import os
import re
import pymysql
import logging

LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"
logging.basicConfig(filename='/var/log/clean_mysql_binlog.log', level=logging.INFO, format=LOG_FORMAT)

#获取剩余磁盘大小
disk_stat = psutil.disk_usage('/home')
disk_percent = disk_stat.percent
logging.info('The percentage of disk usage is %d'
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值