作者公号:霸王龙的日常
专注数据库,分享实用的项目实战经验。
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
此处设置密码为
Trex@123
2.3 查看数据库信息
[root@trex ~]# su - omm
[omm@trex ~]$ gs_om -t status --detail
可以看到数据库端口为26000,数据目录为:/gaussdata/dn
2.4 创建DBMind使用的用户和数据库
切换到omm用户,创建DBMind使用的用户和数据库
[root@trex ~]# su - omm
[omm@trex ~]$ gs_guc reload -D /gaussdata/dn -c 'password_encryption_type=1'
[omm@trex ~]$ gsql -p 26000 -d postgres -c 'create user dbmind_monitor password "Trex@456";'
[omm@trex ~]$ gsql -p 26000 -d postgres -c 'alter user dbmind_monitor monadmin;'
[omm@trex ~]$ gs_guc reload -D /gaussdata/dn -c 'password_encryption_type=2'
[omm@trex ~]$ gsql -p 26000 -d postgres -c 'grant all privileges to dbmind_monitor;'
[omm@trex ~]$ gsql -U dbmind_monitor -p 26000 -d postgres -W "Trex@456" -c 'create database metadatabase;'
2.5 查看数据库
创建完成后,登录到数据库,并输入\l
命令查看元数据库metadatabase
是否存在。
[omm@trex ~]$ gsql -d postgres -p 26000 -r -U dbmind_monitor -W Trex@456
2.6 数据库信息
NAME | VALUE |
---|---|
操作系统用户/密码 | trex/Trex@123 |
数据库用户/密码 | dbmind_monitor/Trex@456 |
数据库名 | metadatabase |
数据库端口 | 26000 |