MySQL数据归档实战-Python和pt-archiver的强强结合
2017-12-26 00:00
253 查看
导读作者:蓝剑锋TCL高级DBA,MySQL&Oracle OCP知数堂MySQL实战/优化班第12期学员微信:lanjian106103个人公众号:DBARUN
一、引言前段时间,在优雅的使用pt-archiver进行数据归档一文中介绍了pt-archiver的使用方法,也将pt-archiver部署到了生产环境,这时候问题来了~生产环境需要做归档的任务有十几个,如果要知道每个归档任务成功与否、跑了多长时间、归档了多少数据,就得手工逐个查看日志,非常枯燥的重复劳动,那是否有办法可以统一管理呢?于是用python倒腾了一个小工具—mysql_archiver小工具,github地址:https://github.com/dbarun/mysql_archiver
二、mysql_archiver2.1 归档调度db_archive_exec.py,从数据库获取归档任务的基本信息,调用pt-archiver进行操作2.1.1 表结构设计表db_archive_info,主要存放归档任务的基本信息
表db_archive_log,主要存放归档任务的执行日志
2.1.2 获取归档任务
2.1.3 调用pt-archiver
2.1.4 部署crontab执行db_archive_exec.py需要指定两个参数,参数1:db ip/域名 参数2:db schema如:python db_archive_exec.py 127.0.0.1 db123
2.2 归档监控db_archive_monitor.py,监控前一次的归档任务是否执行成功,并结合zabbix进行报警
2.2.1 数据库视图设计视图vw_db_archive_fail,汇总前一天执行失败的归档任务
2.2.2 获取归档监控信息
2.2.3 通过logger生成文本
2.3 归档报表db_archive_report_weekly.py,生成前一周的归档情况,并以邮件方式发送
2.3.1 表结构设计表db_archive_report_weekly,主要存放数据库归档周报数据
2.3.2 数据库视图设计视图vw_db_archive_report_weekly,计算前一周的数据库归档情况
2.3.3 生成邮件内容
三、小结开发运维工具,说白了,就是为了避免重复的运维工作,让运维尽可能地自动化。所以,能提高生产力的工具,我觉得都是好工具。MySQL_archiver基本上实现了数据归档的自动运转,统一的归档任务调度管理、自动监控和预警、自动生成报表。在一定程度上节约了生产力,提高了运维效率。MySQL_archiver也是存在很多缺点的,比如:Python代码有点臃肿,不够简洁;缺少可视化的操作界面,如果能有一套运维平台,那就完美了。期待各路大神的交流、指点~
扫码加入知数堂技术交流QQ群(群号:579036588)群内可@各位助教了解更多课程信息
知数堂叶金荣与吴炳锡联合打造领跑IT精英培训行业资深专家强强联合,倾心定制MySQL实战/MySQL优化 / Python/ SQL优化数门精品课程紧随技术发展趋势,定期优化培训教案融入大量生产案例,贴合企业一线需求社群陪伴学习,一次报名,可学3期DBA、开发工程师必修课上千位学员已华丽转身,薪资翻番,职位提升改变已悄然发生,你还在等什么?
扫码下载知数堂精品课程试听视频或点击“阅读原文”直达下载地址(MySQL 实战/优化、Python开发,及SQL优化等课程)密码:hg3h
一、引言前段时间,在优雅的使用pt-archiver进行数据归档一文中介绍了pt-archiver的使用方法,也将pt-archiver部署到了生产环境,这时候问题来了~生产环境需要做归档的任务有十几个,如果要知道每个归档任务成功与否、跑了多长时间、归档了多少数据,就得手工逐个查看日志,非常枯燥的重复劳动,那是否有办法可以统一管理呢?于是用python倒腾了一个小工具—mysql_archiver小工具,github地址:https://github.com/dbarun/mysql_archiver
二、mysql_archiver2.1 归档调度db_archive_exec.py,从数据库获取归档任务的基本信息,调用pt-archiver进行操作2.1.1 表结构设计表db_archive_info,主要存放归档任务的基本信息
表db_archive_log,主要存放归档任务的执行日志
2.1.2 获取归档任务
2.1.3 调用pt-archiver
2.1.4 部署crontab执行db_archive_exec.py需要指定两个参数,参数1:db ip/域名 参数2:db schema如:python db_archive_exec.py 127.0.0.1 db123
2.2 归档监控db_archive_monitor.py,监控前一次的归档任务是否执行成功,并结合zabbix进行报警
2.2.1 数据库视图设计视图vw_db_archive_fail,汇总前一天执行失败的归档任务
2.2.2 获取归档监控信息
2.2.3 通过logger生成文本
2.3 归档报表db_archive_report_weekly.py,生成前一周的归档情况,并以邮件方式发送
2.3.1 表结构设计表db_archive_report_weekly,主要存放数据库归档周报数据
2.3.2 数据库视图设计视图vw_db_archive_report_weekly,计算前一周的数据库归档情况
2.3.3 生成邮件内容
三、小结开发运维工具,说白了,就是为了避免重复的运维工作,让运维尽可能地自动化。所以,能提高生产力的工具,我觉得都是好工具。MySQL_archiver基本上实现了数据归档的自动运转,统一的归档任务调度管理、自动监控和预警、自动生成报表。在一定程度上节约了生产力,提高了运维效率。MySQL_archiver也是存在很多缺点的,比如:Python代码有点臃肿,不够简洁;缺少可视化的操作界面,如果能有一套运维平台,那就完美了。期待各路大神的交流、指点~
扫码加入知数堂技术交流QQ群(群号:579036588)群内可@各位助教了解更多课程信息
知数堂叶金荣与吴炳锡联合打造领跑IT精英培训行业资深专家强强联合,倾心定制MySQL实战/MySQL优化 / Python/ SQL优化数门精品课程紧随技术发展趋势,定期优化培训教案融入大量生产案例,贴合企业一线需求社群陪伴学习,一次报名,可学3期DBA、开发工程师必修课上千位学员已华丽转身,薪资翻番,职位提升改变已悄然发生,你还在等什么?
扫码下载知数堂精品课程试听视频或点击“阅读原文”直达下载地址(MySQL 实战/优化、Python开发,及SQL优化等课程)密码:hg3h
相关文章推荐
- MySQL数据归档实战-Python和pt-archiver的强强结合
- 用Python的Flask框架结合MySQL写一个内存监控程序
- python结合ddt,data,unpack等应用实战
- Python实战(6)单线程和多线程导入mysql数据对比测试
- 如何在Django1.6结合Python3.3版本中使用MySql
- 如何在Django1.6结合Python3.3版本中使用MySql
- python实战数据库MySQL---1彷徨与计划
- 如何在Django1.8 结合Python3.4版本中使用MySql
- 【percona-toolkit手册】pt-archiver数据归档
- ubuntu下eclipse与python,mysql结合
- python实战数据库MySQL---4操作MySQL
- mysql语句写法(左连与子查询结合)实战
- python实战数据库MySQL---2Tkinter
- python结合BeautifulSoup爬虫小实战
- python实战系列之MySQL主从状态监控(09)
- Python爬虫入门实战八:数据储存——MongoDB与MySQL
- Anemometer和pt-query-digest结合将MySQL慢查询可视化
- 使用python 结合mysql和redis进行缓存设计
- pt-archiver 数据归档bug
- 基于python的直播间接口测试实战 详解结合项目