异常诊断功能为用户的数据库实例提供实时的性能监控、健康巡检、故障诊断和优化,让用户既可以直观地感知数据库实例实时的运行状况,也可以定位实时出现的性能异常,并根据优化建议进行系统优化。异常诊断支持查看实例或分片的实时和历史异常诊断信息。
整体概览

查看诊断信息
- 登录 DBbrain 控制台。
- 在左侧导航栏,选择诊断优化。
- 在上方选择对应的实例 ID 或分片 ID,选择异常诊断页签。
- 在页面右侧选择查看实时或历史诊断信息。

- 查看时间轴范围内的健康得分趋势图和诊断的异常事件、 3D 拓扑视图或平面视图。
- 查看健康得分趋势图
单击趋势图中的任意时间点,显示该时间点的健康得分,同时下方联动展示以下信息:
健康得分、CPU、内存、总请求数、慢查询数、SQL 语句类型每秒执行的次数将联动展示该时间点的数据信息。
在健康得分下单击详情,可跳转至健康报告页面,查看健康得分、得分详情和健康报告。

- 查看诊断事件条形图
鼠标悬停至诊断事件条形图时,将展示风险等级、概要和起止时间等信息,单击条形图可跳转至事件详情页面,可查看事件详情、现场描述、智能分析、优化建议等信息。查看事件详情的操作请参见 异常告警。


- 查看视图
选择3D 或平面,查看视图。视图中将展示磁盘层(包括数据空间、日志空间、各参数值)、引擎层(回滚次数、锁等待次数、各参数值)、server 层(连接数、各参数值)等相关信息,并可单击查看配置信息,鼠标悬停至连接处序号,可显示相关数据信息。
- 查看健康得分趋势图
查看诊断提示
- 登录 DBbrain 控制台。
- 在左侧导航栏,选择诊断优化。
- 在上方选择对应的实例 ID 或分片 ID,选择异常诊断页签。
- 在页面右侧选择查看实时或历史诊断信息。
- 实时:选择实时,展示近三小时的风险分布和诊断详情。
- 历史:选择历史,展示已选时间段的风险分布和诊断详情。
- 查看已选时间范围的诊断提示。
查看诊断事件详情
在诊断提示中,单击具体的事件告警所在行,或者鼠标悬停至事件告警上,单击查看,进入事件详情页面,查看事件详情。
事件详情主要包括事件详情、现场描述、智能分析、优化建议等信息。诊断类型不同展示的事件详情不同,请以实际展示为准。- 事件详情:包括诊断项、起止时间、风险等级、概要等信息。
- 现场描述:异常事件(或健康巡检事件)的外在表现现象的快照和性能趋势。
- 智能分析:分析导致性能异常的根本原因,定位具体操作。
- 优化建议:提供优化指导建议,包括但不限于 SQL 优化(索引建议、重写建议)、资源配置优化和参数调优。
忽略/取消忽略告警
在诊断详情中,鼠标悬停至事件告警上,单击忽略,可选择忽略本条、忽略此类型,单击确定。同时支持在事件详情页忽略告警。说明:
该功能仅针对诊断项为非“健康巡检”的异常告警。
- 忽略本条:仅忽略本条告警。
- 忽略此类型:忽略后,由相同根因产生的异常告警也将被忽略。
已被忽略的诊断事件,将会被置为灰色。若需取消忽略,也可单击取消忽略。
诊断项说明
诊断项为智能诊断的项目,其类别包括性能、可用性、可靠性、可维护性四类,每个诊断项仅属于一个类别。
| 诊断项名称 | 诊断项类别 | 说明 | 风险等级划分 |
|---|---|---|---|
| 插入、更新、删除慢 | 性能 | 执行插入、更新或删除操作时,需要花费较长的时间才能完成 | - 严重:锁等待导致 - 告警:非锁等待导致 |
| 执行中慢会话 | 性能 | 存在需要优化的慢查询语句 | 提示 |
| 等待行锁 | 性能 | 存在等待锁时间过长的事务 | 严重 |
| 事务未提交 | 性能 | 存在过长时间的未提交的事务 | 致命 |
| DDL 语句等待 Metadata Lock | 性能 | 存在等待 Metadata Lock 的线程,且其在执行 DDL 语句 | 严重 |
| insert, update, delete 语句等待 Metadata Lock | 性能 | 存在等待 Metadata Lock 的线程,且其在执行 IUD 语句 | 严重 |
| select 语句等待 Metadata Lock | 性能 | 存在等待 Metadata Lock 的线程,且其在执行 SELECT 语句 | 严重 |
| 死锁 | 可靠性 | 数据库发生死锁 | 致命 |
| 只读锁 | 性能 | 存在等待全局只读锁的线程 | 致命 |
| SQL 语句等待 Metadata Lock | 性能 | 存在等待 Metadata Lock 的线程,且其在执行非 DDL、IUD、SELECT 语句 | 告警 |
| Waiting for flush tables | 性能 | 存在等待 flush table 状态的线程 | - 致命:活跃会话数 > 30 - 严重:30 > 活跃会话数 > 20 - 告警:活跃会话数 < 20 |
| 活跃会话高 | 性能 | 活跃会话数大于三倍的数据库实例 CPU 规格 | 提示 |
| 高并发/压力请求 | 性能 | 产生高并发或者压力请求 | - 致命:CPU 利用率 > 80 - 严重:80 > CPU 利用率 > 60 - 告警:60 > CPU 利用率 > 40 |
| 预编译语句过多 | 性能 | 出现未关闭预编译语句个数过多(16382是 MySQL 默认允许的最大值) | - 致命:预编译语句个数 > 16382 - 严重:16382 > 预编译语句个数 > 14695 - 告警:14695 > 预编译语句个数 > 11505 - 提示:预编译语句个数< 11505 |
| 磁盘空间利用率 | 可靠性 | 磁盘利用率过高 | - 致命:磁盘利用率 > 95 - 严重:95 > 磁盘利用率 > 90 - 告警:90 > 预编译语句个数 > 85 - 提示:85 > 预编译语句个数 > 80 |
| CPU 利用率 | 性能 | CPU 利用率过高 | - 致命:CPU 利用率 > 80 - 严重:80 > CPU 利用率 > 60 - 告警:60 > CPU 利用率 > 40 |
| Table open cache 命中率低 | 性能 | Table open cache 命中率低 | 告警 |
| 高危账号 | 可维护性 | 存在匿名账户、无密码账户等情况 | 提示 |
| 大表 | 可维护性 | 单表大于10%的实例磁盘规格 | - 致命:单表所占空间 > 磁盘容量的40% - 严重:磁盘容量的40% > 单表所占空间 > 磁盘容量的30% - 告警:磁盘容量的30% > 单表所占空间 > 磁盘容量的20% - 提示:磁盘容量的20% > 单表所占空间 > 磁盘容量的10% |
| 复制 IO 线程中断 | 可靠性 | 主从中断,复制 IO 线程中断 | - 致命:非重启导致中断 - 提示:重启导致中断 |
| 复制 SQL 线程中断 | 可靠性 | 主从中断,复制 SQL 线程中断 | 致命:非重启导致中断 |
| DDL 导致复制延迟 | 可靠性 | DDL 导致的主从复制延迟(包括主-只读,主-备库延迟) |
- 致命:只读延迟 > 10min - 严重:只读延迟<10min 或备库延迟 > 10 min - 告警:备库<10min |
| 事务导致复制延迟 | 可靠性 | 事务导致的主从复制延迟(包括主-只读,主-备库延迟) | - 致命:只读延迟 > 10min - 严重:只读延迟<10min 或备库延迟 > 10 min - 告警:备库<10min |
| 全局只读锁导致复制延迟 | 可靠性 | 全局只读锁导致的主从复制延迟(包括主-只读,主-备库延迟) | - 致命:只读延迟 > 10min - 严重:只读延迟<10min 或备库延迟 > 10 min - 告警:备库<10min |
| 自增键耗尽 | 可用性 | 自增值超过自增主键最大值80% | 致命:自增值超过最大值80% |
| 复制延迟 | 可用性 | 主从复制延迟(包括主-只读,主-备库延迟) | - 致命:只读延迟 > 10min - 严重:只读延迟<10min 或备库延迟 > 10 min - 告警:备库<10min |



