微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mysql(mariadb)数据库bin_log清理

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] 举报,一经查实,本站将立刻删除。

相关推荐