当前位置:  数据库>mysql

批量清除128组节点db上面过期的binlog释放磁盘空间实现思路

    来源: 互联网  发布时间:2014-10-09

    本文导语:  如果10台以内的db的话,自己手动ssh进去,clean就足以,但是上百台呢,就要写脚本了。大概思路:在 一台db跳转机上面, 写一个脚本,访问slave,远程获取正在复制的master上面的binlog位置, 然后再远程去purge master上面的binlog.1, 建立...

如果10台以内的db的话,自己手动ssh进去,clean就足以,但是上百台呢,就要写脚本了。大概思路:在 一台db跳转机上面, 写一个脚本,访问slave,远程获取正在复制的master上面的binlog位置, 然后再远程去purge master上面的binlog.

1, 建立slave dbserver列表 slavelist; 一个slave一行。
2,远程获取slave db上面的binlog位置以及slave的master主机名(也许是ip地址)
3,拿到binlog位置以及master主机名,然后ssh远程清理掉master上面的binlog
4,shell for循环操作step 2以及step 3。
附带脚本1:clean_binlog.sh
代码如下:

#!/bin/bash
# p1 the slave mysql db server
db03=$1
echo $dbserver;
ster_Log_File=`ssh $db03 " mysql -uxx -pxx --ssl-ca=/opt/mysql/ssl/ca-cert.pem --s
sl-cert=/opt/mysql/ssl/server-cert.pem --ssl-key=/opt/mysql/ssl/server-key.pem -e "show slave statusG;" |grep -i master_Log_File
"`;
# echo ##### 获取binlog信息
log_file=`echo $ster_Log_File | awk '{print $2}'`;
db01tmp=`ssh $db03 " mysql -uxx -pxx --ssl-ca=/opt/mysql/ssl/ca-cert.pem --s
sl-cert=/opt/mysql/ssl/server-cert.pem --ssl-key=/opt/mysql/ssl/server-key.pem -e "show slave statusG;" |grep -i Master_Host
"`;

代码如下:

# 获取master主机名或者ip地址
db01=`echo $db01tmp | awk '{print $2}'`
# 开始清理binlog日志信息

代码如下:

ssh $db01 " mysql -uxxx -pxx --ssl-ca=/opt/mysql/ssl/ca-cert.pem --ssl-cert=/op
t/mysql/ssl/server-cert.pem --ssl-key=/opt/mysql/ssl/server-key.pem -e "purge master logs to '$log_file';" "
# check master上面的binlog信息

代码如下:

ssh $db01 " df -h /mysql/binlog ";

代码如下:

  

附带批量for循环脚本2:
for s in `cat slavelist`; do sh clean_binlog.sh $s; done
这个是比较粗略的方案,肯定有不足之处,我的128组是mm组合,所以这样操作是可以的,架构不同估计会有变动,这里还涉及到purge之前的binlog的备份等等(有专门的备份机以及备份脚本)。

    
 
 

您可能感兴趣的文章:

  • 怎样手动清除磁盘高速缓冲?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ I/O 成员 clear():清除状态标志
  • php压缩html(清除换行符,清除制表符,去掉注释标记)
  • C++ I/O 成员 unsetf():清除格式标志
  • android开发教程之清除android数据缓存示例(清除本地数据缓存)
  • 不同版本MSSQL清除日志方法介绍
  • 如何清除Linux命令的历史记录(清除不该保留的命令)
  • linux僵尸(zombie)进程介绍及清除
  • 文件清除工具 Eraser
  • Linux/Centos/Ubuntu清除系统缓存释放内存命令介绍
  • 如何清除history和last命令中显示的东东?
  • wtmp清除工具 wtmpclean
  • 如何用按钮触发事件以清除session中的变量?
  • 我的IE输入form中保存了我以前输入的历史记录,我怎么清除?
  • 简单问题,怎么清除命令提示
  • Ubuntu回收站自动清除工具 Autotrash
  • 如何清除刚刚被绑定的端口???
  • rootkit清除工具 GMER
  • 请教各位:javabean被使用后需要清除吗?
  • 清除CMOS密码
  • 清除ComBox中所有项的方法是CleanItem还是别的什么?
  • 如何手动清除一个对象


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3