一、前言
在互联网时代,业务规模常常出现爆发式的增长。快速的实例交付,数据库优化以及备份管理等任务都对DBA产生了更高的要求,单纯的凭借记忆力去管理那几十套DB已经不再适用。那么如何去批量管理这些实例的备份、元数据、定时脚本和快速实例交付就成了急需解决的的问题。
二、数据库的标准化
在实现MySQL的自动化运维的过程中,最痛苦的无非是目录的不统一,配置文件的混乱以及DB主机的不标准,而这些不标准的环境会让自动化运维的路途荆棘重重。所以首先我们将相应的DB主机以及目录做了标准化,将以前不符合的标准的主机和实例进行改造。
一台机子上所有实例,都是在统一的目录下,通过端口进行区分,例如my3306,my3307。然后在my3306下面创建对应的数据目录、日志目录、运行文件目录等
每个实例独享一个配置文件,除serverid , bufferpool_size等参数外其他参数保持一致
线上环境的MySQL软件目录和版本保持一致
三、自动化运维之路一期
在一开始的时候,我们需要着手解决目前的最要紧的事情:备份。对于DBA来说,备份重于一切。如果DBA对自己维护的数据库的备份情况都一无所知,那么总有一天,你会遭遇数据丢失的灾难。因此,我们开始第一期的工作,ZanDB 备份监控系统。 它实现的主要功能是:
实时查看备份的情况,当前应备份实例个数,已完成实例数
显示每个备份的耗费时长
查看过去5天的备份统计信息,如总个数,大小等
四、自动化运维之路二期
在实现了ZanDB备份监控系统之后,我们着手开始设计ZanDB 的二期设计研发工作。