暂无评论
一、现状分析
挂载/dev/mapper/centos-mysql总容量 107G,已用 97G,使用率 96%,磁盘即将占满;
占用主体是mysql-relay-bin.00xxxx中继日志文件,单文件 101M,堆积大量未自动清理的中继 binlog;
风险:磁盘 100% 后 MySQL 锁库、CloudOS 平台服务中断、页面打不开。
二、先区分 2 类日志:不要误删 ibd/ib_logfile
可安全清理:mysql-relay-bin.00xxxx、mysql-bin.00xxxx 二进制 / 中继日志
绝对不能删:ibdata1、ib_logfile0/1(InnoDB 核心数据与回滚日志,删库直接崩溃)
三、分 3 步操作(先配置自动回收,再手动清理存量日志,杜绝反复爆满)
步骤 1:登录 MySQL,查看当前日志与同步状态(核心,不能乱删同步依赖的日志)
bash
运行
# 登录CloudOS内置mysql
mysql -uroot -p$(grep root_password /etc/h3cloud/mysql.conf |awk -F'=' '{print $2}')
MySQL 内执行:
sql
-- 查看所有中继日志列表
show relay log;
-- 查看从库同步当前读取到哪个日志(关键!只能删这个文件之前的日志)
show slave status\G
找到字段:Relay_Log_File: mysql-relay-bin.002540
规则:所有文件名编号小于 002540的 relay-bin 文件可删除,当前及之后的不能删,否则主从同步断裂。
步骤 2:配置自动清理策略(永久解决反复爆满,CloudOS 标准配置)
方案 A:设置日志过期自动删除(推荐,无需人工定期清理)
sql
-- 设置中继/二进制日志保留7天,自动过期清理
set global expire_logs_days = 7;
-- 永久写入配置文件,重启mysql不失效
exit
vi /etc/h3cloud/mysql.conf
# 添加/修改这一行
expire_logs_days = 7
方案 B:同步完成自动清理中继日志(CloudOS 主从环境必开)
sql
set global relay_log_purge = ON;
步骤 3:安全手动清理存量 relay-bin 日志(两种方式)
方式 1:MySQL 内部安全清理(推荐,自动校验同步位点,不会删错)
sql
-- 清理早于指定日志文件的所有中继日志,替换为show slave status查到的Relay_Log_File
purge relay logs to 'mysql-relay-bin.002540';
exit
执行后磁盘空间立刻释放,无需手动删文件。
方式 2:shell 手动删除(仅 mysql 无法登录时应急使用)
先确认可删除文件编号,例如同步位点是 002540,则删除 000167~002539 所有文件
bash
运行
# 批量删除编号小于002540的relay-bin
cd /opt/h3cloud/mysql/
rm -f mysql-relay-bin.00{0167..2539}
删除后刷新 mysql 日志索引,避免报错:
bash
运行
mysql -uroot -p$(grep root_password /etc/h3cloud/mysql.conf |awk -F'=' '{print $2}') -e "flush relay logs;"
四、应急扩容临时方案(磁盘马上 100% 时)
若暂时不敢删日志、平台业务紧急:
临时调整 expire_logs_days=1,自动清理 1 天前日志;
迁移部分 relay-bin 到其他空闲磁盘,软链接挂载;
扩容 mysql 逻辑卷lvextend+xfs_growfs/resize2fs扩展分区容量。
五、清理后校验
查看磁盘使用率回落:df -h /opt/h3cloud/mysql/
校验主从同步无报错:
bash
运行
mysql -uroot -p$(grep root_password /etc/h3cloud/mysql.conf |awk -F'=' '{print $2}') -e "show slave status\G"
确认 Slave_IO_Running: Yes、Slave_SQL_Running: Yes,无同步异常。
六、预防再次爆满巡检命令
bash
运行
# 每日查看日志占用
ls -lhS /opt/h3cloud/mysql/mysql-relay-bin.*
# 查看mysql自动清理配置
grep expire_logs_days /etc/h3cloud/mysql.conf
关键禁忌
禁止直接 rm 删除当前同步位点正在使用的 relay-bin 文件,会导致 CloudOS 主从同步中断,平台计费 / 告警 / 云主机数据同步异常;
禁止删除 ibdata1、ib_logfile 系列文件,会直接损坏 MySQL 数据库;
不要设置expire_logs_days=0(关闭自动清理,日志无限堆积)。
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论