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

如果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 status\G;\" |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 status\G;\" |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 ";

代码如下:

<STRONG><SPAN style="COLOR: #ff0000"></SPAN></STRONG>

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

(0)

相关推荐

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

    如果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位置以及maste

  • ntiIframe.vbs用于批量清除被添加到文件中的恶意代码

    AntiIframe.vbs #该脚本是批量挂马程序的逆向,用于批量清除被添加到文件中的恶意代码.记事本打开文件可以修改Pattern参数指定要处理的文件名,文件名之间用|隔开(也支持vbs正则表达式).由于要修改文件,请谨慎的使用(最好先备份文件) #用法: CScript AntiIframe.vbs [处理的路径] [包含清除内容的文件] #例子: CScript AntiIframe.vbs d:\Web d:\lake2.txt 复制代码 代码如下: '----------------

  • nginx proxy_cache批量清除缓存的脚本介绍

    前言:之前使用官方的nginx proxy_cache作为CDN静态缓存发现该模块清理缓存是一个大问题,只能一条一条url的清除,为此写了一个批量清除缓存的脚本 主要功能包括: 1.按文件类型清理 2.按具体的文件名清理 3.按网站目录清理 下面是bash shell脚本代码,之前网上也好好多类似的脚本但是感觉都不太好还容易误导人犯错误 #!/bin/bash #Email:hello_linux@aliyun.com #Auto Clean Nginx Proxy_Cache Shell Sc

  • 清除CentOS 6或CentOS 7上的磁盘空间的方法

    以下是清除CentOS 6或CentOS 7服务器上的磁盘空间的快速命令. 首先需要安装yum-utils包: yum -y install yum-utils 1.修剪日志文件 find /var -name "*.log" ( ( -size +50M -mtime +7 ) -o -mtime +30 ) -exec truncate {} --size 0 ; 这将截断*.log卷/var上超过7天且超过50M或超过30天的所有文件. 2.清理YUM缓存 清理yum缓存很简单:

  • Shell脚本批量清除Nginx缓存

    前言*随着整个互联网的发展,产生了无数大大小小的网站,随之而来用户对网站UI和速度体验也在日益加强,对企业或者个人来说,赢得用户体验也就意味着赢得先机. 那今天我们在这里针对网站速度这方面来一起交流,提高网站速度对于运维工程师.程序员来说变得至关重要.运维工程师首先得在日常网站运维中发现影响网站速度的各种因素得逐个推动然后解决. 提高网站速度体验除了本身网站程序优化外,对于LinuxSA来说还有大量的工作要做,优化系统内核.调整WEB服务器的参数.优化数据库.增加网站架构缓存等等一系列的工作.

  • 详解清除MongoDB所占用的多余的磁盘空间的方法

    首先一点就是mongodb 不会释放已经占用的硬盘空间,即使drop collection也不行,除非drop database.如果一个db曾经有大量的数据一段时间后又删除的话,硬盘空间就是一个问题,如何收回被mongdodb占用的多余空间?方法有两种 1. dump & restore mongodump -d databasename -o /path/to/dump_dir echo 'db.dropDatabase()' | mongo <databasename> mong

  • LAMP服务器性能优化技巧之Linux主机优化

    目前LAMP (Linux + Apache + MySQL + PHP) 近几年来发展迅速,已经成为Web 服务器的事实标准. LAMP这个词的由来最早始于德国杂志"c't Magazine",Michael Kunze在1990年最先把这些项目组合在一起创造了LAMP的缩写字.这些组件虽然并不是开开始就设计为一起使用的,但是,这些开源软件都可以很方便的随时获得并免费获得.这就导致了这些组件经常在一起使用.在过去的几年里,这些组件的兼容性不断完善,在一起的应用情形变得非常普便.为了改

  • Java面试题冲刺第四天--数据库

    目录 面试题1:你对数据库优化有哪些了解呀? 正经回答: 深入追问: 追问1:那你对SQL优化方面有哪些技巧呢? 追问2:嗯,那你说一下为什么不建议用SELECT * 呢? 二.SELECT语句的一些其他优化 面试题2:你对分库分表是怎么看的呀? 正经回答: 1.垂直分表 2.水平分表 3.垂直分库 4.水平分库 深入追问: 追问1:毫无意义,我真的不想问他MySQL问题了 面试题3:MySQL删除数据的方式都有哪些? 正经回答: 深入追问: 追问1:说一下 delete.truncate.dr

  • 带你玩转Kafka之初步使用

    目录 前言 1 简单介绍 2 下载安装 3 基本使用 3.1 启动Kafka 3.2 简单测试使用 3.3 搭建多代理集群 3.3.1 开始搭建 3.3.2 使用 3.3.3 验证容错性 4 小总结 总结 前言 官方文档:http://kafka.apache.org/ 中文文档:https://kafka.apachecn.org/ Apache Kafka是分布式发布-订阅消息系统. Apache Kafka与传统消息系统相比,有以下不同: 它被设计为一个分布式系统,易于向外扩展: 它同时为

  • mongodb 集群重构和释放磁盘空间实例详解

    MongoDB集群重构,释放磁盘空间 由于mongodb删除了一部分数据后,不会回收相应的磁盘空间,所以这里通过重建数据目录的方式释放磁盘空间. 一 实验环境 配置了一个副本集,该副本集由以下三个节点组成: 10.192.203.201:27017 PRIMARY 10.192.203.202:27017 SECONDARY 10.192.203.202:10001  ARBITER 二 实验步骤 2.1 模拟环境 use dba; for(var i=0;i<1000000;i++)db.c.

随机推荐