清理多台MySQL数据库的过期binlog日志的shell脚本
本节主要内容:
清理mysql中过期的binlog日志。
问题描述:美好梦中,传来阵阵报警声,磁盘空间满。
查看:
/dev/mapper/Sys-mysqldata
300G 270G 30G 90% /mysqldata
15G 166M 14G 2% /mysqldata/binlog
原因:
近段时间业务量增长比较快,可能是产生了过多的binlog导致的。
继续分析:
mysql-bin.001350
.......
mysql-bin.002352
mysql-bin.log.index
binlog日志文件1000多个,看来要写个脚本清理下了。
本文的主角出场,一个清理多台MySQL数据库的过期binlog日志的shell脚本,分享给大家。
clear_binlog.sh脚本:
#
#site: www.jquerycn.cn
for i in `cat server03list`; do #循环遍历db列表
# 1 获取数据库的master binlog名称,并在控制台打印出当前执行的db名称
echo $i;
binlog=`ssh $i " /opt/mysql/product/5.5.25a/bin/mysql -uxxxx -ppassword --ssl-ca=/ssl/ca-cert.pem --ssl-cert=/ssl/server-cert.pem --ssl-key=/ssl/server-key.pem -e \" show master status;\" "|grep mysql-bin |awk '{print $1}'`;
echo $binlog;
# 2 开始执行binlog purge清理操作。
ssh $i " /opt/mysql/product/5.5.25a/bin/mysql -uxxxx -ppassword --ssl-ca=/ssl/ca-cert.pem --ssl-cert=/ssl/server-cert.pem --ssl-key=/ssl/server-key.pem -e \" purge master logs to '$binlog';\" "
# 3 check清理完的磁盘空间。
ssh $i "df -h" |grep mysqldata;
# 4 输入空行分隔
echo "";
echo "";
echo "";
done;
执行清理操作,把结果输出到日志:
sh clear_binlog.sh > clear_binlog.log
您可能感兴趣的文章:
自动与手动清理mysql-binlog日志的方法
批量清除过期的binlog日志释放磁盘空间的shell脚本
清理多台MySQL数据库的过期binlog日志的shell脚本
批量清除128组节点db上过期的binlog释放磁盘空间的shell脚本
mysql删除binlog日志及使用日志恢复数据的方法
自动清理binlog日志与手动删除binlog日志的方法
使用binlog恢复mysql数据的简单例子
mysql设置自动清理binlog日志的方法
删除Mysql中binlog日志的二种方法
如何在mysqldump时加上binlog日志的位置号