背景介绍
晚期,数据库系统仅仅提供 SQL 命令来查问其外部的运行状态,导致数据库运维操作门槛高,易用性差,DBA 一度成为高度专业化的要害岗位,享受高薪和大家艳羡的眼光的同时,也为企业的数据安全带来了不确定性危险。并且,命令行运维不直观,重大依赖运维人员教训,不能做到疾速的发现、定位、解决问题,导致数据库运维问题,发现难,定位难,解决难。为了应答这个困境,数据库运行状态可视化(数据库监控零碎)应运而生,通过可视化的伎俩以人类便于了解的图表模式,将重点数据以图形化的伎俩展现给运维人员,从而显著的升高了数据库运维的门槛,进步了数据库运维的效率。这个阶段有一些代表性的产品比方:OEM(Oracle), ViewPoint(Teradata),等等。然而,这个期间用户的数据的规模不是很大,数据库也仍然部署在用户本人的数据中心,仍然是几个 DBA 运维几套数据库的阶段。随着云时代的到来,云数据库逐步托管了客户的数据存储服务,云化将所有沉重的 IT 运维工作都集中在云后盾治理了起来,从而把客户从业余,简单,沉重的数据中心运维流动中解放了进去,使客户可能更加专一于其外围业务。同时,云服务提供商作为数据存储服务的提供者,则须要在 IT 运维与数据库运维上深耕细作,施展其团队稳固,专业化水平高,把握海量数据库运行数据的劣势;充分利用目前机器学习、人工智能畛域的科研成果,应用技术手段逐步提高每名运维人员所能治理的数据库数量,从而实现数据库运维工作的“减员增效”。另一方面,数据库服务上云后,云服务提供商所须要运维的数据库数量与之前相比天差地别,以前的工具可能曾经不适应云时代的需要。如何做好云上海量数据库的运维工作将成为云服务提供商的一个微小挑战。
数据库智能运维体系
传统意义上的数据库监控服务仅仅是指(1)采集数据库运行状态;(2)上报 / 存储数据库运行数据;(3)图形化展现数据库运行状态数据。然而,这仅仅是数据库智能监控运维体系的一部分。
1620439065554099870.png
如果把整个数据库智能监控运维体系比作一个人的话,传统意义上的数据库监控服务仅仅代表了,眼睛的角色。该服务只能做到发现问题,辨认定位问题和解决问题都须要 DBA 的染指。因而 DBA 才是传统数据库监控运维体系中的外围因素,这也是 DBA 人才为何如此要害的起因之一。而云时代的到来和大数据分析、人工智能等技术的成熟,给了数据库监控运维更多的设想空间。我能够在传统数据库监控(眼睛)的根底上,减少预测剖析和根因判断模块,建设景象 - 根因 - 解决方案的映射关系(大脑),最初通过数据库治理模块执行解决方案(双手),从而实现从发现问题,定位问题,到解决问题的运维闭环。并且机器不同于人类,只有算力容许,它能够做到眼观六路,耳听八方,不知疲倦,也不会感觉无聊,7x24 的盯着成千盈百数据库系统的各种运行数据,不会放过任何一个渺小的潜在问题。因而,数据库运维工作的智能化中,应用规定或算法固化 DBA 判断和决策教训将是十分重要的一环。
GaussDB(DWS) 的数据库智能运维体系
参考友商数据库监控运维体系的建设教训,联合 GaussBD(DWS) 数仓的本身特点,咱们筹备从眼,脑,手三个方面发力建设闭环的数据库智能监控运维体系。
1620438983485005080.png
GaussDB(DWS) 应用 DMS 来承载数据库的智能运维体系。DMS 将会串起数据库运维过程中的监控,剖析,解决三个步骤,别离对应上文提到的数据库智能运维体系中的眼,脑,手三局部,从概念设计上造成运维体系的闭环。
监控局部:次要负责数据库运行状态数据的采集、存储和可视化展现,这一部分根本等同于传统的数据库的监控业务。这一部分性能和指标的选取,咱们参考了友商以及运维团队的倡议,将监控指标分为底层 IT 零碎运维指标和数据库系统运维指标两类,正在别离逐渐补齐和欠缺中。监控模块是 DMS 数据库运智能监控运维体系首先发力,并要在短时间内造成竞争力的模块。
剖析局部:作为整个 DMS 数据库智能运维体系的大脑,该局部是承当运维数据分析与决策的要害模块。该局部因为其复杂性,目前还处于设计构想阶段。初步布局有三个子模块,工夫序列的趋势剖析子模块,该模块次要用来做趋势预测剖析,用来预判潜在的问题;逻辑推断子模块,用户剖析问题景象与理论根因之间的关系,能够实现从问题景象到触发起因的推断,初步思考应用搜索引擎技术实现;常识图谱子模块,次要用于景象、根因与解决方案之间的映射关系示意,不便从定位的根因中找到最合适的解决方案。
解决局部:次要由 DWS 提供的数据库治理性能承当,目前能够提供数据库参数配置(可配置参数少,须要进一步丰盛),工作负载队列配置,集群装置 / 卸载,集群重启,集群扩容,集群数据重散布以及节点温备等运维能力。
GaussDB(DWS) 数据库智能运维典型用户与需要
为了进一步理清数据库智能运维产品的设计思路,咱们打算从用户的角度剖析其需要,而后从需要导出性能(工具)页面设计,从性能(工具)页面总结出所需监控数据库指标。通过剖析数据库监控零碎的各种应用场景,咱们对数据库监控零碎的用户做了用户角色画像,定义了数据库运维过程中的三种角色,并认为不同角色仅仅关注数据库运维的一个侧面。在理论的数据库运维场景中,可能同一个用户会身兼多种角色,然而这里咱们为了不便剖析仅仅从逻辑上定义这三种角色。
1622012201849063412.png
利用开发:次要指客户侧的利用开发角色,他们负责设计具体的业务 SQL。他们关怀业务 SQL 执行的正确性和执行效率。利用开发工程师须要用到 web SQL 来调试其 SQL 语句的查问效率;须要用到查问监控页面来查看业务 SQL 在理论执行场景中的体现和资源耗费;须要用到工作负载队列监控来确认新开发的业务 SQL 是否在适合的工作负载队列中,以及所配置的熔断规定是否正当,等等。
SRE:指的是华为云侧的数据库运维角色,他们通常一个人须要负责成千盈百个集群的稳固运行,他们须要可能迅速辨认出集群运行状态的异样,集群资源瓶颈以及集群潜在的扩容需要,并且他们还须要积极响应客户的求助,帮忙客户定位,确认和解决问题。SRE 须要节点资源监控来辨认集群中的资源歪斜;须要辨认集群资源耗费基线变化趋势,从而辨认到扩容需并揭示用户;须要关注存储变动以推算下一次惯例颐养的工夫点并主动布局;同时还须要响应用户需要,应用 DMS 提供的问题定位工具,辅助用户定位现网问题。
DBA:指的是 GaussDB(DWS) 数据库集群专家,他们相熟数据库设计方法论,数据库的调优,数据库问题定位。他们须要剖析定位数据库的故障,从资源和业务角度使用多种工具综合剖析定位系统故障,零碎稳定性和潜在瓶颈;也须要帮忙用户从业务、数据库设计的角度去举荐数据库的索引,散布列配置,依据用户业务水平举荐用户购买适合的集群规模等等;同时还须要辅助利用开发工程师调优引起性能劣化的 SQL 语句;在找到确切的故障根因后,举荐适合的解决方案修复故障。
在一般来说在私有云场景中,用户角色个别只有利用开发和 SRE 两种,私有云场景中的 SRE 角色往往涵盖了 DBA 的角色。咱们在这里将运维角色细分的目标,其实是要展现一个残缺的运维场景沙盘,将客户的运维诉求分门别类的列举进去,为后续进一步的性能(工具)页面设计和运维场景设计提供根底。
GaussDB(DWS) 数据库智能运维指标
数据库监控指标数量多,模式和逻辑简单,依据指标类型能够分为逻辑关系与物理关系两种。其中逻辑关系指数库外部逻辑关系,比方,最顶层是数据库,数据库中有多个 schema,schema 中有多个表,数据库中有多个用户,一个用户能够有多个 schema 和表。而物理关系是指,gaussDB(DWS) 集群的拓扑关系,比方,一个数据库集群是由多个计算节点形成,每个计算节点上会部署多个计算实例。这两种指标关系都会影响到数据库指标的采集维度和聚合展现维度。
1622014301360010441.png
因为下面曾经剖析了指标的维度关系,所以咱们上面将只探讨具体的数据库指标类型,而不会对指标的维度进行开展。数据库是一个软件服务,而它必须运行在一个宿主机和操作系统之上,因而监控指标大抵能够分为两类:
系统资源类指标:这一类指标次要形容零碎上的各种资源耗费
数据库相干指标:这一类指标次要形容数据性能相干的业务负载程度
DMS 集群指标设计.jpg
上图总结了 DMS 采集的数据库次要指标,具体指标项依照指标大类,原子指标和派生指标三个档次排列。不过,目前该指标地图并不固定,将来随着 GaussDB(DWS) 智能运维零碎的逐渐成熟,该指标地图会逐步完善并固定下来。
因为 MPP 数据库的非凡构型,数据库实例是作为过程试运行在节点上的。因而,咱们的指标设计其实自身会自带维度属性,比方磁盘使用率指标,最小的维度应该是某个 DN 实例,上一级是节点级,再上一级就是整个集群。所以,咱们理论提供的监控指标应该是指标维度关系与集群指标地图的一个笛卡尔积。为了形容这种情景,咱们引入原子指标,派生指标和组合指标的概念。以下面的磁盘使用率为例,咱们将 DN 实例的磁盘使用率作为原子指标,而其余维度的磁盘使用率作为派生指标。
原子指标:形容数据库某个个性的最小维度指标,比方节点的 CPU 使用率,DN 实例的磁盘使用率,等等。
派生指标:(1)原子指标在不同维度上的聚合后果,比方集群均匀 CPU 使用率,集群磁盘使用率,等等;(2)对原子指标做统计运算失去的新指标,比方 CPU 歪斜率,等等。
组合指标:将多个原子指标或者派生指标组合在一起,从而失去的更加便于了解的新指标。比方集群衰弱度,等等。
目前 DMS 的指标建设更多停留在原子指标和派生指标阶段,因为咱们认为应该首先补齐数据库的根底指标造成根本的监控运维能力之后,能力联合用户应用习惯,深度开掘指标在各个维度下的运维含意以及多种指标组合后所代表的运维意义。
总结
最初,总结一下,本文次要介绍了 GaussDB(DWS)数据库智能监控运维服务体系的设计规划和现状。本文作为 DMS 系列文章的第一篇,次要起到一个概要介绍的作用,让大家对 GaussDB(DWS)数据库智能监控运维服务体系有个概况的意识,更多干货细节欢送期待后续的文章。