方案,总共24台db,一台台进去清理肯定不行,得需要写一个脚本,进行批量操作,方案思路大概如下

1,  建立双master列表masterlist; 一个master一行。

2,远程获取master db上面的binlog位置以及对应master的master主机名(也许是ip地址)

3,拿到binlog位置以及master主机名,然后ssh远程清理掉远程master上面的binlog

4, 采用shell for循环操作step 2以及step 3。

clearbinlog.sh脚本如下

  1. for masterdb in `cat master.db.full`;do
  2. #1 echo get the binlog position infomation
  3. str_log_files=`ssh $masterdb "/opt/mysql/product/5.5.25a/bin/mysql -uroot --password="" -e \"show slave status\G;\" |grep -i master_Log_File "`
  4. echo $str_log_files;
  5. log_file=`echo $str_log_files | awk '{print $2}'`;
  6. echo $log_file;
  7. #2 echo get the master ip address or master hostname
  8. db01tmp=`ssh $masterdb "  /opt/mysql/product/5.5.25a/bin/mysql  -uroot  --password=""  -e \"show slave status\G;\" |grep -i Master_Host  "`;
  9. db01=`echo $db01tmp | awk '{print $2}'`
  10. #3 begin to clear the old binlog
  11. ssh $db01 "/opt/mysql/product/5.5.25a/bin/mysql  -uroot  --password="" -e \"purge master logs to '$log_file';\""
  12. #4 check the disk space for master
  13. ssh $db01 "df -h"
  14. echo " "
  15. echo " -- -- -- ";
  16. done;

OK,run sh脚本

sh clearbinlog.sh 就可以开始清理所有db的binlog了。

最后再次check disk space,执行check_disk.sh脚本,脚本内容如下:

  1. for masterdb in `master.db.full`;do
  2. ssh  $masterdb "df -h" |grep -i mysqldatadir;
  3. done;

执行sh check_disk.sh开始check

批量清除过期的binlog释放磁盘空间的更多相关文章

  1. oracle for linux服务器磁盘空间不足,通过过期的文件释放磁盘空间

    --2013-09-16截取的数据-- 使用df-h命令查看系统磁盘空间 [root@erpdbs PROD]# df -h Filesystem Size Used Avail Use% Mount ...

  2. [记录]一则清理MySQL大表以释放磁盘空间的案例

    一则清理MySQL大表以释放磁盘空间的案例 一.基本情况: 1.dbtest库554G,先清理st_online_time_away_ds(37G)表的数据,保留半年的数据: 1)删除的数据:sele ...

  3. Mysql InnoDB彻底释放磁盘空间

    Innodb数据库对于已经删除的数据只是标记为删除,并不真正释放所占用的磁盘空间,这就导致InnoDB数据库文件不断增长. 如果需要彻底释放磁盘空间,则需要先导出数据,然后删除数据文件,最后导入数据. ...

  4. MySQL删除数据几种情况以及是否释放磁盘空间【转】

    MySQL删除数据几种情况以及是否释放磁盘空间: 1.drop table table_name 立刻释放磁盘空间 ,不管是 Innodb和MyISAM ; 2.truncate table tabl ...

  5. mongodb拷贝数据库copyDatabase()。实现释放磁盘空间的方法。

    下面我们一起来看看关于mongodb拷贝数据库copyDatabase().实现释放磁盘空间的方法,希望文章对各位同学会有所帮助. db.copyDatabase("from",& ...

  6. 利用lsof命令查找已经删除的文件来释放磁盘空间

    测试环境一台服务器/目录空间使用率达到97%,但是通过du -sh *发现实际空间没用到那么多,初步怀疑,之前删除的文件,有运行中的进程一直占用,导致空间没有释放,如图通过du -sh *发现共实际使 ...

  7. 解决tomcat控制台乱码+清除过期缓存条目后可用空间仍不足 - 请考虑增加缓存的最大空间问题

    一.乱码 1.打开Tomcat的目录,找到conf文件夹,一般修改server.xml中的编码集,改为utf-8即可 2.若server.xml中编码设置的就是utf-8,可以修改logging.pr ...

  8. (转) Delete/Truncate删除,释放表空间、降低高水位线、resize释放磁盘空间相关优化

    硬盘空间不足,打算删除数据库中的多余数据,但删除数据后,硬盘硬盘空间不能释放.[delete后用:alter table table_name move    truncate后用:alter tab ...

  9. Linux系统中查找、删除重复文件,释放磁盘空间。

    在Linux系操作系统中查找并删除重复文件的方法的确有很多,不过这里介绍的是一款非常简单实用的软件FSlint.FSlint是一个重复文件查找工具,可以使用它来清除不必要的重复文件,笔者经常使用它来释 ...

随机推荐

  1. IO密集型操作时,为什么线程比进程更好?

    在IO密集型的操作时,进程线程都不会太占用CPU,但是进程消耗的资源比较多.

  2. FlashFXP上传下载

    正常情况我们的生产环境我们本地是不能直接访问的,因为网段不通,且生产环境不允许我们随便访问,但是对于我们自运维的集群我们有时候需要上去做一些操作,通过堡垒机跳转到生产机器上即可,但是我们不能通过xsh ...

  3. python基础3 ---python数据类型二

    ython基础 一.python数据类型     ------列表(list) 1.定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素 特性:可存放多个不同类型的值:可修改指定索 ...

  4. php生成随机密码的自定义函数

    php生成随机密码的自定义函数 生成一个随机密码的函数,生成的密码为小写字母与数字的随机字符串,长度可自定义. 复制代码代码如下: <?php /*  * php自动生成新密码自定义函数(带实例 ...

  5. VHDL学习笔记——数字系统设计

    数字系统是指有若干数字电路和逻辑不见构成的能够处理或传输数字信息的设备.数字系统可分为三部分:输入输出接口.数据处理器和控制器. [传统的系统硬件设计]方法是(1)采用自底向上的设计方法(2)采用通用 ...

  6. js 动态加载事件的几种方法总结

    本篇文章主要是对js 动态加载事件的几种方法进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助   有些时候需要动态加载javascript事件的一些方法往往我们需要在 JS 中动态添 ...

  7. Data Structure Trie: suffix problem

    http://www.geeksforgeeks.org/suffix-array-set-1-introduction/ http://www.geeksforgeeks.org/pattern-s ...

  8. 微信小程序消息模板

    wxml: <form bindsubmit='sendSms' report-submit='true' id='fo'> <button form-type='submit'&g ...

  9. [原创]java WEB学习笔记01:javaWeb之tomcat的安装和配置

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  10. 【Flask模板】include标签

    # include标签:1. 这个标签相当于是直接将指定的模版中的代码复制粘贴到当前位置.2. `include`标签,如果想要使用父模版中的变量,直接用就可以了,不需要使用`with context ...