MysqL(mariadb)数据库bin_log清理
- 环境
k8s集群使用helm方式安装mariadb数据库。
- 问题于需求
检查存储节点硬盘使用率偏高,检查发现数据库bin_log日志较多,占用大量硬盘。需求清理过量日志(手段),释放硬盘空间(效果),保障生产安全(目的)。
- 处理方案
清理过量日志,配置定期清理bin_log日志。
正式部署
- 检查硬盘存储,定位文件位置
df -hl
cd /
du --max-depth=1 -h|grep G
kubectl -n <namespace> get configmaps
kebectl -n <namespace> edit confgimaps XXX-mariadb-primary
kebectl -n <namespace> edit confgimaps XXX-mariadb-secondary
expire_logs_days=7 #保留7天内得bin_log日志
sync_binlog=1 #每次写入同步存到硬盘中,保证安全性,降低性能
- 重启数据库使配置生效
kubectl -n <namespace> rollout restart sts XXX-mariadb-primary
kubectl -n <namespace> rollout restart sts XXX-mariadb-secondary
这时检查硬盘使用率如果已经下降,说明配置生效了。
其他参考
从库的relay-bin大量蓄积问题处理
一般从库的[MysqL-relay-bin.000000]日志会自动清理,实际生产中遇到从库relay日志大量蓄积,不能自动清理,占用过量的硬盘资源。
可登入数据库进行清理:
stop slave;
reset slave;
start slave;
注释:亲测此方法可清理relay日志,但不确定是否有副作用,建议谨慎使用。安全生产第一,操作前至少备份一下数据库。
- 查看配置
SHOW VARIABLES LIKE 'event_scheduler'; #查看定时器开关
show variables like 'long_query_time'; #查看慢查询时间设定
show variables like 'slow_query_log'; #查看慢查询开关
show VARIABLES like 'slow_query_log_file'; #查看慢查询日志存储位置
show VARIABLES like 'expire_logs_days'; #查看bin_log保留期限
show VARIABLES like 'max_binlog_size'; #查看bin_log最大单文件限制
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。