[实战]openGauss之AI4DB,领先的开源数据库自治运维平台DBMind

1 软件简介

AI与数据库结合是近些年的行业研究热点,openGauss较早地参与了该领域的探索,并取得了阶段性的成果。AI特性子模块名为DBMind。

DBMind作为openGauss数据库的一部分,为openGauss数据库提供了自动驾驶能力,是一款领先的开源数据库自治运维平台。通过DBMind, 您可以很容易地发现数据库的问题,同时可以实现秒级的数据库问题根因分析。

作者:霸王龙的日常,欢迎关注

1.1 DBMind的特点

  • DBMind采用了先进的插件化的架构形式,支持海量插件扩展;

  • 支持多种运行模式,具备命令行交互式运行、服务式运行;

  • 面向云原生进行设计,支持Prometheus,并提供多种丰富的exporter插件;

  • 提供丰富的对接模式,可以很容易地与现有管理系统进行对接,支持RESTful API、Python SDK、命令行、Prometheus协议等模式;

  • 支持端到端全流程的数据库自治运维能力,包括慢SQL根因分析、workload索引推荐、多指标关联挖掘、故障自修复、异常检测与根因分析等功能;

1.2 DBMind支持的主要能力

  • 索引推荐
  • 异常检测与分析
  • 多指标关联分析
  • 慢SQL根因分析
  • 时序预测
  • 参数调优与推荐
  • SQL改写与优化
  • 故障自动修复

DBMind的AI4DB服务架构如下图所示

图中各关键组件说明:

  • DBMind Service: DBMind后台服务,可用于定期离线计算,包括慢SQL根因分析、时序预测等;
  • Prometheus-server: Prometheus 监控指标存储的服务器;
  • metadatabase: DBMind在离线计算结束后,将计算结果存储在此处,支持openGauss、SQLite等数据库;
  • client: 用户读取DBMind离线计算结果的客户端,目前仅实现命令行客户端;若采用openGauss等数据库存储计算DBMind计算结果,则用户可以自行配置Grafana等可视化工具对该结果进行可视化;
  • openGauss-exporter: 用户从openGauss数据库节点上采集监控指标,供DBMind服务进行计算;
  • node-exporter: Prometheus官方提供的exporter, 可用于监控该节点的系统指标,如CPU和内存使用情况;
  • reprocessing-exporter: 用于对Prometheus采集到的指标进行二次加工处理,例如计算CPU使用率等。

2. 安装准备

2.1 环境信息

假设在主控节点 192.168.7.111上部署 DBMind,有一套端口号为26000的数据库环境,环境信息如下:

NAME VALUE
操作系统 openEuler20.03 LTS
架构 x86_64
IP 192.168.7.111
数据库 openGauss5.0.1

2.2 创建管理用户

[root@trex ~]# useradd -m trex -d /home/trex [root@trex ~]# passwd trex