mysql主从日志的定期清理
mysql主从的binlog定时删除是很重要的,一般是通过expire_logs_days = 10来设置binlog保留的天数(mysql5.0一下版本不支持),但有时这还不够,假如有几天的日志量非常大,硬盘可能会满,所以不但要设置保留的天数,还要监控硬盘的空间使用情况。写了一个脚本,适合各个版本的mysql,保留3天的日志,当存放日志的硬盘使用率超过80%,则保留2天,但至少会保留一天的binlog日志文件。
- #!/bin/env python
- # -*- coding: utf-8 -*-
- ##############################################################
- #查看存在binlog的目录位置并找出3天前的最后一个bin-log文件名字
- #删除3天以前的binlog文件,删除之后data1目录挂载的硬盘使用率超
- #过的80%的话,继续删除2天前的日志文件,至少保留一天的日志。
- ##############################################################
- import os,sys,time,MySQLdb
- def log_w(text):
- logfile = "/usr/local/zabbix/bin/delet.log"
- now = time.strftime("%Y-%m-%d %H:%M:%S")
- tt = now + "\t" + str(text) + "\n"
- f = open(logfile,'a+')
- f.write(tt)
- f.close()
- def mysql_conn(port,lastlog,days):
- try:
- center_ip = '127.0.0.1'
- center_user = 'repl_monitor'
- center_passwd = 'VQMQLGwTaw3k0UV8'
- sql = "PURGE MASTER LOGS TO '%s';" % lastlog
- conn = MySQLdb.connect(host = center_ip,port = int(port),user = center_user,passwd = center_passwd,connect_timeout=5)
- cursor = conn.cursor()
- cursor.execute(sql)
- alldata = cursor.fetchall()
- cursor.close()
- conn.close()
- text = "Deltet before %s days binlog,deltet %s before !" % (days,lastlog)
- log_w(text)
- except Exception,e:
- log_w(e)
- def find_logdir():
- conn = "find / -name binlog|grep -v usr"
- logdir_list = os.popen(conn).readlines()
- if len(logdir_list) != 0:
- for logdir in logdir_list:
- datadir = logdir.strip().split("/")[1]
- if "mysql_log" in logdir.strip():
- port = 3306
- else:
- port = logdir.strip().split("/")[3].split("-")[-1]
- days = 3
- while 1:
- conn = "find %s -mtime %s|sort" % (logdir.strip(),days)
- count = os.popen(conn).readlines()
- if len(count) != 0:
- lastlog = count[-1].strip().split("/")[-1]
- mysql_conn(port,lastlog,days)
- df = "df -h|grep -e '%s$'|awk '{print $5}'|awk -F '%%' '{print $1}'" % datadir
- disk = os.popen(df).read().strip()
- if not disk:
- break
- else:
- if int(disk) < 80:
- break
- else:
- days = days - 1
- if days == 1:
- break
- else:
- sys.exit()
- if __name__ == "__main__":
- find_logdir()
本文出自 “王伟” 博客,请务必保留此出处http://wangwei007.blog.51cto.com/68019/1123088
mysql主从日志的定期清理的更多相关文章
- mysql 主从日志文件mysql-bin文件清除方法
默认情况下mysql会一直保留mysql-bin文件,这样到一定时候,磁盘可能会被撑满,这时候是否可以删除这些文件呢,是否可以安全删除,是个问题,不建议使用rm命令删除,这样有可能会不安全,正确的方法 ...
- 在 CentOS7 上部署 MySQL 主从
在 CentOS7 上部署 MySQL 主从 通过 SecureCRT 连接至 MySQL 主服务器: 找到 my.cnf 文件所在的目录: mysql --help | grep my.cnf 一般 ...
- 高性能Mysql主从架构的复制原理及配置详解
温习<高性能MySQL>的复制篇. 1 复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台 ...
- mysql主从配置
引言: 双11,阿里云服务器打折,于是我忍不住又买了一台服务器,于是咱也是有两台服务器的爷们了,既然有了两台服务器,那么肯定要好好利用一下吧,那么就来玩玩mysql的主从配置吧. 准备 两台数据库服务 ...
- 恢复MySQL主从数据一致性的总结
今日上午,同事告知,MySQL主从数据库的数据不一致,猜测备库在同步过程中出现了问题,于是,登上备库,使用 mysql> show slave status\G查看,果然,备库在insert语句 ...
- LVS+Keepalived+Squid+Nginx+MySQL主从高性能集群架构部署方案
方案一,在tomcat的workers.properties里面配置相关条件 worker.tomcat.lbfactor= worker.tomcat.cachesize= worker.tomca ...
- Mysql主从配置,实现读写分离
大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...
- MySQL 主从配置
mysql主从复制指两个服务器之间数据库的同步,当主服务器的数据进行了变更,从服务器也会自动更新,其过程是通过bin-log日志实现的,本质是binlog日志的传输. mysql主从分两个角色 1.主 ...
- mysql主从切换
mysql 主从切换 主停,从做主步骤如下: 1 确认从服务器已经完成所有同步操作:stop slave io_thread show processlist 直到看到状态都为:xxx has rea ...
随机推荐
- ANDROID学习书单
Skip to content PersonalOpen sourceBusinessExplore Sign upSign in PricingBlogSupport This reposito ...
- Fiddler (三) Composer创建和发送HTTP Request
之前已经写过两篇Fiddler的文章了,分别是[Fiddler教程] [Fiddler script用法]. 我准备把Fiddler写成一个系列. Fiddler的功能还有很多, 很多功能都没有 ...
- spring常用注解使用解析
spring没有采用约定优于配置的策略,spring要求显示指定搜索哪些路径下的Java文件.spring将会把合适的java类全部注册成spring Bean. 问题:spring怎么知道把哪些 ...
- 图标集锦:10套免费的社交媒体 & 社交网站图标
社交网络是最近几年互联网领域最热门的关键词之一,如今社会网络化媒体也成为我们信息获取和传播的重要途径,很多网站都有把内容分享到社交媒体的功能. 社交媒体图标作为向用户传递信息的重要媒介,不管是在网页还 ...
- FROONT – 超棒的可视化响应式网页设计工具
FROONT 是一个基于 Web 的设计工具,在浏览器中运行,使得各类可视化设计的人员都能进行响应式的网页设计,即使是那些没有任何编码技能的设计师.FROONT 使得响应式网页设计能够可视化操作,能够 ...
- html4基础知识梳理
基础的html知识,只放Xmind的截图. 第一部分: 第二部分: 某些标签的使用示例及注意事项,在印象笔记里.
- 【初探Underscore】再说模版引擎
前言 Underscore 是一个JavaScript实用库,提供了类似Prototype.js (或 Ruby)的一些功能,但是没有扩展任何JavaScript内置对象. 它弥补了部分jQuery没 ...
- js动态计算移动端rem
在做移动端web app的时候,众所周知,移动设备分辨率五花八门,虽然我们可以通过CSS3的media query来实现适配,例如下面这样: html { font-size : 20px; } @m ...
- 给li设置float浮动属性之后,无法撑开外层ul的问题。
最近在项目中有好几次遇到这个问题,感觉是浮动引起的,虽然用<div style="clear:both"></div>解决了,但自己不是特别明白,又在网上查 ...
- AloneJs.msgbox() —— 弹出消息框
一.引用 <link href="https://cdn.suziyun.com/alonejs.min.css" rel="stylesheet" /& ...