MySql教程

mysql(mariadb)数据库bin_log清理

本文主要是介绍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最大单文件限制
这篇关于mysql(mariadb)数据库bin_log清理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!