如何批量清除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

[python] view plain copy

print?

  1. #!/bin/bash
  2. # p1 the slave mysql db server
  3. db03=$1
  4. echo  $dbserver;
  5. ster_Log_File=`ssh $db03 "  mysql  -uxx  -pxx --ssl-ca=/opt/mysql/ssl/ca-cert.pem --s
  6. 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
  7. "`;
  8. # echo ##### 获取binlog信息
  9. log_file=`echo $ster_Log_File | awk ‘{print $2}‘`;
  10. db01tmp=`ssh $db03 "  mysql  -uxx  -pxx --ssl-ca=/opt/mysql/ssl/ca-cert.pem --s
  11. 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
  12. "`;

[python] view plain copy

print?

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

[python] view plain copy

print?

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

[python] view plain copy

print?

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

[python] view plain copy

print?

  1. <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的备份等等(有专门的备份机以及备份脚本)。

时间: 2024-10-10 12:20:04

如何批量清除128组节点db上面的过期的binlog,释放磁盘空间。(转)的相关文章

清理: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位置以及mast

批量清除过期的binlog释放磁盘空间

方案,总共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脚本如下 [p

VMware虚拟机作为OpenStack计算节点,上面的虚拟机无法启动问题解决

问题描述: VMware虚拟机作为OpenStack计算节点,如果安装的操作系统是CentOS7.3,则在此计算节点放置的虚拟机无法正常启动,报如下错误: 在创建计算节点时,为了能让 KVM 能创建嵌套的虚机,要把 CPU 的虚拟化功能打开.如下图在 VMWare 中设置以下 CPU 的模式. 用以下命令确认 CPU 支持虚拟化. nova的配置如下: /etc/nova/nova.conf[libvirt]virt_type = kvm123已经验证,如果计算节点安装的是CentOS7.2或U

节点2上crsd无法启动,数据库和监听无法自动启动,比如ocrconfig、ocrcheck以及srvct

CRSD进程在11g中的变化 在11.2中,CRSD进程不再是RAC中最关键的进程之一. 如果对10g RAC比较熟悉,应该清楚CRSD进程的重要性,Oracle在操作系统启动后,就是通过启动这个进程然后启动整个CLUSTER以及数据库的. 在11.2的RAC中,Oracle调整了ASM,使得OCR和VOT可以存储在ASM磁盘组中.ASM是CLUSTER所支持的一个组件,而CLUSTER启动所需的OCR和VOT却要放在ASM中,这其实要解决一个先有鸡还是先有蛋的问题.最终Oracle通过OHAS

批量清除BOM头

批量清除BOM头 (2012-03-05 13:28:30) 转载▼ 标签: 杂谈   有些php文件由于不小心保存成了含bom头的格式而导致出现一系列的问题.以下是批量清除bom头的代码,复制代码,保存成.php文件,放在想执行的文件夹,运行就可以了 <?php if (isset ( $_GET ['dir'] )) { //config the basedir $basedir = $_GET ['dir']; } else { $basedir = '.'; } $auto = 1; c

indows 2008 r2/做了SPS2007---2013后,发现添加原来域中的域组添加不上

根据上次的网络包的分析, 我们在AD中找到了wtc-beijing-it的组, 不过在SharePoint日志中我们没有发现搜索成功的记录. - SearchResultEntry: CN=WTC-BeiJing-IT,OU=Groups,OU=BeiJing,OU=WTC User,OU=WesTrac China,DC=westrac,DC=com,DC=cn + ObjectName: CN=WTC-BeiJing-IT,OU=Groups,OU=BeiJing,OU=WTC User,O

批量清除react中的计时器小组件

在Timers的父组件被卸载时,批量清除各个计时器.

如何减少DB上一个表的Unused空间

一.针对不同情况.您可以尝试以下命令减少未使用空间:1.回收表或索引视图中已删除的可变长度列的空间:DBCC CLEANTABLE (DBName,"[SalesLT].[ProductModel]", 0); 2.对于堆表:若要减少堆的区碎片,请对表创建聚集索引,然后删除该索引. 在创建聚集索引时将重新分布数据.有关如何执行这些操作的信息,请参阅CREATE INDEX请添加链接描述并DROP INDEX请添加链接描述. 3.对于索引,可以重组或者重建索引来减少碎片: 重组: 如果碎

因为 &#39;PRIMARY&#39; 文件组已满。请删除不需要的文件、删除文件组中的对象、将其他文件添加到文件组或为文件组中的现有文件启用自动增长,以便增加可用磁盘空间

导致你的问题的,应该有2种可能性: 1.存放你的primary文件组的磁盘,已经满了: use master--你的数据库名称 go --看看你的primary组里的文件 select ds.name, df.physical_name, --主文件组的物理文件的路径 --打开我的电脑,查看文件所在盘,是否磁盘已满 df.is_percent_growth, --是否自动增长 df.growth --增长多少 from sys.data_spaces ds inner join sys.data