12组nodesMySQLDB,每组2台Master-Master,批量清除过期的binl_MySQL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了12组nodesMySQLDB,每组2台Master-Master,批量清除过期的binl_MySQL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1812字,纯文字阅读大概需要3分钟。
内容图文
bitsCN.com12组nodes MySQL DB,每组2台Master-Master,批量清除过期的binlog释放磁盘空间
接到call,磁盘报警了,发现是大量dml操作导致N多binlog产生,所以需要清除已经sync过的binlog日志,12组nodes MySQL DB,每组2台Master-Master,需要批量清除过期的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脚本如下
[python]
for masterdb in `cat master.db.full`;do
#1 echo get the binlog position infomation
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 "`
echo $str_log_files;
log_file=`echo $str_log_files | awk '{print $2}'`;
echo $log_file;
#2 echo get the master ip address or master hostname
db01tmp=`ssh $masterdb " /opt/mysql/product/5.5.25a/bin/mysql -uroot --password="" -e /"show slave status/G;/" |grep -i Master_Host "`;
db01=`echo $db01tmp | awk '{print $2}'`
#3 begin to clear the old binlog
ssh $db01 "/opt/mysql/product/5.5.25a/bin/mysql -uroot --password="" -e /"purge master logs to '$log_file';/""
#4 check the disk space for master
ssh $db01 "df -h"
echo " "
echo " -- -- -- ";
done;
OK,run sh脚本
sh clearbinlog.sh 就可以开始清理所有db的binlog了。
最后再次check disk space,执行check_disk.sh脚本,脚本内容如下:
[html]
for masterdb in `master.db.full`;do
ssh $masterdb "df -h" |grep -i mysqldatadir;
done;
执行sh check_disk.sh开始check
内容总结
以上是互联网集市为您收集整理的12组nodesMySQLDB,每组2台Master-Master,批量清除过期的binl_MySQL全部内容,希望文章能够帮你解决12组nodesMySQLDB,每组2台Master-Master,批量清除过期的binl_MySQL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。