mysql数据库系统表有哪些 数据库使用教程

巡检工作是保障系统平稳有效运行必不可少的一个环节,目的是能及时发现系统中存在的隐患 。本文介绍了美团MySQL数据库巡检系统的框架和巡检内容,希望能够帮助大家了解什么是数据库巡检,美团的巡检系统架构是如何设计的,以及巡检系统是如何保障MySQL服务稳定运行的 。

mysql数据库系统表有哪些 数据库使用教程

文章插图
对了,文末还有一个重要的招聘信息,可以了解一下!
我们生活中随处可见各种巡检系统,比如电力巡检、消防检查等,正是这些巡检工作,我们才能在稳定的环境下进行工作、生活 。巡检对于数据库或者其他IT系统来说也同样至关重要,特别是在降低风险、提高服务稳定性方面起到了非常关键作用 。
一、背景
为了保障数据库的稳定运行,以下核心功能组件必不可少:
图1 数据库运维保障核心功能组件
其中,数据库巡检作为运维保障体系最重要的环节之一,能够帮助我们发现数据库存在的隐患,提前治理,做到防患于未然 。对于大规模集群而言,灵活健壮的自动化巡检能力,至关重要 。
任何系统都会经历一个原始的阶段,最早的巡检是由中控机+定时巡检脚本+前端展示构成的 。但是,随着时间的推移,老巡检方案逐渐暴露出了一些问题:
巡检定时任务执行依赖中控机,存在单点问题;巡检结果分散在不同的库表,无法进行统计;巡检脚本没有统一开发标准,不能保证执行的成功率;每个巡检项都需要单独写接口取数据,并修改前端用于巡检结果展示,比较繁琐;巡检发现的隐患需要DBA主动打开前端查看,再进行处理,影响整体隐患的治理速度;……
所以我们需要一个灵活、稳定的巡检系统来帮助我们解决这些痛点,保障数据库的稳定 。
二、设计原则
巡检系统的设计原则,我们从以下三个方面进行考虑:
稳定:巡检作为保证数据库稳定的工具,它自身的稳定性也必须有所保证;高效:以用户为中心,尽量化繁为简,降低用户的使用成本,让新同学也能迅速上手治理和管理隐患;提高新巡检部署效率,随着架构、版本、基础模块等运维环境不断变化,新的巡检需求层出不穷,更快的部署等于更早的保障;可运营:用数据做基础,对巡检隐患进行运营,包括推进隐患治理,查看治理效率、趋势、薄弱点等 。
三、系统架构
美团MySQL数据库巡检系统架构图设计如下所示 。接下来,我们按照架构图从下到上的顺序来对巡检系统主要模块进行简单的介绍 。
图2 美团MySQL数据库巡检系统架构图
1. 执行层
巡检执行环境:由多台巡检执行机组成,巡检任务脚本会同时部署在所有执行机上 。执行机会定时从巡检Git仓库拉取最新的脚本,脚本使用Python Virtualenv + Git进行管理,方便扩充新的执行机 。
任务调度:巡检任务使用了美团基础架构部研发的分布式定时任务系统Crane进行调度,解决传统定时任务单点问题 。Crane会随机指派某一台执行机执行任务,假如这台执行机出现故障,会指派其他执行机重新执行任务 。一般一个巡检任务对应着一个巡检项,巡检任务会针对特定的巡检目标根据一定的规则来判断是否存在隐患 。
巡检目标:除了对生产数据库进行巡检以外,还会对高可用组件、中间件等数据库周边产品进行巡检,尽可能覆盖所有会引发数据库故障的风险点 。
2. 存储层
巡检数据库:主要用来保存巡检相关数据 。为了规范和简化流程,我们将巡检发现的隐患保存到数据库中,提供了通用的入库函数,能够实现以下功能: