mysql binlog过期策略_清理多台MySQL数据库的过期binlog日志的shell脚本

本节主要内容:

清理mysql中过期的binlog日志。

问题描述:美好梦中,传来阵阵报警声,磁盘空间满。

查看:

复制代码 代码示例:

[root@jbxue cacti]$ ssh xxxx "df -h"

/dev/mapper/Sys-mysqldata

300G   270G   30G  90% /mysqldata

15G  166M   14G   2% /mysqldata/binlog

原因:

近段时间业务量增长比较快,可能是产生了过多的binlog导致的。

继续分析:

复制代码 代码示例:

[root@jbxue cacti]$ ssh xxxx  " sudo -u mysql ls /mysqldata/data/" |grep mysql-bin

mysql-bin.001350

.......

mysql-bin.002352

mysql-bin.log.index

binlog日志文件1000多个,看来要写个脚本清理下了。

本文的主角出场,一个清理多台MySQL数据库的过期binlog日志的shell脚本,分享给大家。

clear_binlog.sh脚本:

复制代码 代码示例:

#!/bin/bash

#

#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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值