MySQL数据归档实战-python和pt-archiver的强强结合

一,引言

前段时间在优雅的使用pt-archiver进行数据归档一文中介绍了pt-archiver的使用方法,也将pt-archiver部署到了生产环境,这时候问题来了……

生产环境需要做归档的任务有十余个,如果要知道每个归档任务成功还是失败、跑了多长时间、归档了多少数据,就得手工逐个日志查一查,非常枯燥的重复劳动,是否有办法可以统一管理呢?于是用python折腾了一个小工具……

二,mysql_archiver

2.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代码有点臃肿,不够简洁;缺少可视化的操作界面,如果能有一套运维平台,那就完美了。

期待各路大神的交流、指点……

本文来自企鹅号 - DBARUN媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张戈的专栏

Linux系统内存监控、性能诊断工具vmstat命令详解

最近,烦心事有点多,博客也像是进入了便秘期。虽然还远远不到说放弃的地步,但总有一种挤不出牙膏的郁闷感。很怀念前几个月的冲劲和激情,一天都能存好几篇优质草稿。 看...

39850
来自专栏Golang语言社区

【Go 语言社区】[Golang]优秀开源库剖析

原创文章,转载请注明出处:服务器非业余研究http://blog.csdn.net/erlib 作者Sunface 1.blelve 地址:h...

43280
来自专栏繁花云

利用Speedtest测试服务器网速

speedtest是由国外用户sivel编写的一款跨平台的网速测试软件,使用GO编写,支持大部分平台

55600
来自专栏Python中文社区

构建一个pip安装的车辆路径显示的Python包

專 欄 ❈treelake,Python中文社区专栏作者。 简书: http://www.jianshu.com/u/66f24f2c0f36 ❈ 最近有一些...

271100
来自专栏跟着阿笨一起玩NET

C#消息队列(RabbitMQ)零基础从入门到实战演练

41420
来自专栏北京马哥教育

如何利用Python网络爬虫抓取微信朋友圈的动态

今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的A...

41600
来自专栏Python中文社区

一个多线程知乎用户爬虫的实现

專 欄 ❈默然,Python中文社区专栏作者。 博客:https://www.zhihu.com/people/moranzcw GitHub:https:/...

29050
来自专栏沈唁志

WordPress有新评论微信提醒管理员

25140
来自专栏北京马哥教育

etcd:从应用场景到实现原理的全方位解读

马哥linux运维 | 最专业的linux培训机构 ---- 随着CoreOS和Kubernetes等项目在开源社区日益火热,它们项目中都用到的etcd组件作...

607120
来自专栏Thinks

Web App Install Banners简介

移动端,web和native app有一个比较大的区别:访问的过程。

11810

扫码关注云+社区

领取腾讯云代金券