一、巡检与告警(1--27)
1. CN/DN SQL Digest 目录覆盖与更新时间------确认 CN、DN 两个来源是否有 SQL 摘要目录记录。
sql
SELECT schema_name, type AS source_type,
COUNT(*) AS digest_entries,
MAX(last_update_time) AS newest_catalog_update
FROM goldendb_insight.gdb_sql_schema_static
GROUP BY schema_name, type
ORDER BY digest_entries DESC, schema_name
LIMIT 100
2. CN 在线事务时长与状态------查看 CN 上报的在线事务状态、时长和 SQL 数量。
sql
SELECT cluster_id, cn_id, uuid, gtid, trans_state, trans_type, execute_time, start_time, executed_sql_num, executing_sql_num
FROM goldendb_statistic.insight_cn_trans_info
WHERE cluster_id = :cluster_id
ORDER BY execute_time DESC, cn_id LIMIT :row_limit
3. CN 消息状态采样------查看 CN 组件消息队列状态与线程描述。
sql
SELECT time_stamp, cluster_id, device_id, device_type, connect_port, cn_msg_queue_status, pname_info
FROM goldendb_insight.gdb_cn_thdmsg
WHERE cluster_id = :cluster_id AND time_stamp >= :begin_time AND time_stamp < :end_time
ORDER BY time_stamp DESC, device_id LIMIT :row_limit
4. DN 在线事务与等待锁线索------定位 DN 在线事务、等待锁和潜在阻塞者。
sql
SELECT cluster_id, group_id, dn_id, trans_id, uuid, gtid, trans_state, trans_type, execute_time, start_time, requested_lock_id, wait_start_time, block_trans_id, blk_trx_count
FROM goldendb_statistic.insight_dn_trans_info
WHERE cluster_id = :cluster_id
ORDER BY execute_time DESC, dn_id LIMIT :row_limit
5. DN 文件 I/O 等待历史采样排行------比较历史采样时点的文件 I/O 热点。
sql
SELECT device_id, Event_Name, time_stamp, Request_Read, Request_Write, Bytes_Read, Bytes_Write, Time_Read, Time_Write FROM goldendb_statistic.gdb_dn_iowait_orderedbytime_awr WHERE cluster_id = :cluster_id AND time_stamp >= :begin_time AND time_stamp < :end_time ORDER BY Time_Read + Time_Write DESC LIMIT 50
6. DN 等待事件历史采样排行------回看等待事件次数、总等待与平均等待。
sql
SELECT device_id, events, time_stamp, waits, `time`, avg_wait_time FROM goldendb_statistic.gdb_dn_wait_orderbytime_awr WHERE cluster_id = :cluster_id AND time_stamp >= :begin_time AND time_stamp < :end_time ORDER BY `time` DESC LIMIT 50
7. DN 等待会话及表刷新、元数据锁等待采样------分别展示等待表刷新和元数据锁的会话数。
sql
SELECT device_id, time_stamp, dn_session_waiting_for_count, dn_session_waiting_for_table_flush_count, dn_session_waiting_for_table_mdl_count FROM goldendb_insight.gdb_processlist WHERE cluster_id = :cluster_id AND time_stamp >= :begin_time AND time_stamp < :end_time ORDER BY time_stamp DESC LIMIT 50
8. DN 锁冲突、缓冲区与 Redo 压力采样------同节点趋势线索,覆盖锁冲突率、脏页、命中率、临时表、Binlog 与 Redo。
sql
SELECT device_id, device_type, group_id, db_role, time_stamp,
tablelock_conflictrate, rowlock_avgwaittime, buffer_dirtypagerate,
buffer_hitrate, filetemptable_usedrate, binlogdisk_usedstat, redolog_waitstat
FROM goldendb_insight.gdb_db_statistic
WHERE cluster_id = :cluster_id AND time_stamp >= :begin_time AND time_stamp < :end_time
ORDER BY time_stamp DESC LIMIT 50;
9. GTM 活跃 GTID 数与最大标识采样------观察全局事务标识变化。
sql
SELECT time_stamp, cluster_id, device_id, device_type, activegtid, maxgtid
FROM goldendb_insight.gdb_gtm_gtidinfo
WHERE cluster_id = :cluster_id AND time_stamp >= :begin_time AND time_stamp < :end_time
ORDER BY time_stamp DESC, device_id LIMIT :row_limit
10. GTM 申请、释放与增量同步 GTID 平均耗时------定位分布式事务协调阶段的时间波动。
sql
SELECT device_id, time_stamp, gtidapplycost, gtidreleasecost, gtidincrementcost FROM goldendb_insight.gdb_gtmgtid_timecost WHERE cluster_id = :cluster_id AND time_stamp >= :begin_time AND time_stamp < :end_time ORDER BY time_stamp DESC LIMIT 50
11. GTM 线程消息状态采样------查看 GTM 消息队列状态原值。
sql
SELECT time_stamp, cluster_id, device_id, device_type, gtm_msg_queue_status, pname_info
FROM goldendb_insight.gdb_gtm_thdmsg
WHERE cluster_id = :cluster_id AND time_stamp >= :begin_time AND time_stamp < :end_time
ORDER BY time_stamp DESC, device_id LIMIT :row_limit
12. Insight 参数比对任务状态与基线------定位参数比对未执行或失败的任务。
sql
SELECT task_id, cluster_id, task_type, device_type, status, create_time, template_id FROM goldendb_insight.insight_param_comparison_task ORDER BY task_id DESC LIMIT 50
13. Insight 参数配置或内存值不一致候选------找出配置值与内存值不一致的记录。
sql
SELECT task_id, param, type, consistency, memory_consistency, repeat_time, memory_repeat_time, create_time FROM goldendb_insight.insight_param_comparison_result WHERE consistency = 1 OR memory_consistency = 1 ORDER BY id DESC LIMIT 50
14. Insight 巡检任务类型、目标范围与状态------区分实时、定时、历史范围巡检及任务状态。
sql
SELECT id, task_name, patrol_type, patrol_object, status, start_time, patrol_interval FROM goldendb_insight.insight_patrol_task ORDER BY id DESC LIMIT 50
15. Insight 日志采集未完成与部分成功任务------对比计划节点数与成功/失败数。
sql
SELECT task_id, task_operate_status, collect_point_size, collect_success_size, collect_fail_size, create_time, end_time FROM goldendb_insight.insight_log_collect_task WHERE task_operate_status IN (1,2,3,4) LIMIT 50
16. Insight 管理账号登录失败与锁解事件------排查管理面无法登录或任务无法发起。
sql
SELECT user_id, update_date, mod_type, m_trigger FROM goldendb_insight.insight_credential_user_log WHERE mod_type IN (1,2,4) ORDER BY update_date DESC, id DESC LIMIT 50;
17. Insight 组件升级编排任务状态------区分待执行、运行、成功与失败任务。
sql
SELECT task_id, upgrade_create_time, upgrade_start_time, upgrade_end_time, upgrade_version, upgrade_servertype, task_type, task_status, upgrade_batch, upgrade_progress FROM goldendb_insight.insight_upgrade_task ORDER BY task_id DESC LIMIT 50
18. MDS 保存的表重分布容量参考------重分布前读取表在节点/组上的大小。
sql
SELECT cluster_id,group_id,ip,master,table_name,table_size,insert_time FROM goldendb_omm.gdb_data_redistribute_tablesize_info WHERE table_name=:table_name ORDER BY id DESC LIMIT :row_limit;
19. MDS 告警事件及字典解释 Top 50------关联告警码、类型、等级、状态字典。
sql
SELECT a.id,a.systype,ty.sysdesc AS alarm_type,a.alarm_code,cd.alarm_desc,a.alarm_level,lv.level_desc,a.alarm_status,st.status_desc,a.alarm_source,a.alarm_time,a.recovery_time FROM goldendb_insight.insight_alarm_info AS a LEFT JOIN goldendb_insight.insight_alarm_code AS cd ON cd.alarm_code=a.alarm_code LEFT JOIN goldendb_insight.insight_alarm_status AS st ON st.status_code=a.alarm_status LEFT JOIN goldendb_insight.insight_alarm_level AS lv ON lv.alarm_level=a.alarm_level LEFT JOIN goldendb_insight.insight_alarm_systype AS ty ON ty.systype=a.systype ORDER BY a.id DESC LIMIT 50
20. MDS 告警码、阈值与开关原值------盘点告警码目录及阈值、开关。
sql
SELECT c.systype,ty.sysdesc AS alarm_type,c.alarm_code,c.alarm_desc,c.alarm_level,lv.level_desc,c.threshold,c.isopen FROM goldendb_insight.insight_alarm_code AS c LEFT JOIN goldendb_insight.insight_alarm_level AS lv ON lv.alarm_level=c.alarm_level LEFT JOIN goldendb_insight.insight_alarm_systype AS ty ON ty.systype=c.systype ORDER BY c.systype,c.alarm_code LIMIT 100
21. MDS 告警记录时间线------按短时间窗查看告警代码、级别、资源及清除时间。
sql
SELECT alarmid, code, almlevel, resourcetype, resourceid,
createtime, updatetime, cleartime, maskflag
FROM goldendb_omm.gdb_alarming
WHERE createtime >= :begin_time AND createtime < :end_time
ORDER BY createtime DESC
LIMIT 50
22. MDS 备份恢复等任务的组件步骤、重试和进度------定位未完成或失败组件。
sql
SELECT stream_no, task_id, task_type, component_type, task_redo_times, task_state, task_step, task_sub_step_total, task_sub_step_current, task_start_time, task_end_time, task_progress_percentage, is_total_progress FROM goldendb_omm.gdb_task_progress_detail WHERE task_state IN (1,2,4) LIMIT 50
23. MDS 指定集群 DN 同步与 Relay 日志时延原值------定位复制追赶。
sql
SELECT time_stamp, cluster_id, group_id, device_id, device_type,
group_switching, db_role,
sync_log_delay_time, sync_log_gap,
relay_log_delay_time, relay_log_gap
FROM goldendb_insight.gdb_db_stat_delay_info
WHERE cluster_id = :cluster_id
AND time_stamp >= :begin_time AND time_stamp < :end_time
ORDER BY time_stamp DESC, group_id, device_id
LIMIT 200
24. MDS 指定集群状态与运行模式------读取集群模式、运行状态和最近元数据更新时间。
sql
SELECT CLUSTER_ID, CLUSTER_NAME, CLUSTER_MODE, CLUSTER_STATE, STATUS, WORK_MODEL, TIME_STAMP FROM mds.cluster_info WHERE CLUSTER_ID = :cluster_id;
25. MDS 按分片记录的 UNDO 日志使用量------发现持续升高的分片。
sql
SELECT device_id, group_id, time_stamp, undo_log_size FROM goldendb_insight.gdb_undolog_size WHERE cluster_id = :cluster_id AND time_stamp >= :begin_time AND time_stamp < :end_time ORDER BY time_stamp DESC LIMIT 50
26. MDS 按日聚合的告警状态与等级数量 Top 100------观察告警趋势。
sql
SELECT `aggretime`, `alarm_status`, `alarm_level`, `alarm_number`
FROM goldendb_insight.insight_alarm_info_day
ORDER BY `aggretime` DESC, `alarm_level`, `alarm_status`
LIMIT 100
27. MDS 登记的 Agent 与 OS 链路异常项------巡检连通性排查入口。
sql
SELECT device_type, device_ip_port, os_link_status, agent_link_status, create_time
FROM goldendb_insight.gdb_agent_link_info
WHERE os_link_status IS NULL OR agent_link_status IS NULL
OR os_link_status <> 1 OR agent_link_status <> 1
ORDER BY id LIMIT 50;
二、容量与资源(28--34、57、58、71、93、94、96)
28. MDS 登记的主机目录容量与选用状态------发现数据目录容量压力。
sql
SELECT h.id AS host_id, h.host_name, h.status AS host_status, h.is_managed,
d.dir_name, d.total_size AS total_mb, d.used_size AS used_mb,
d.total_size - d.used_size AS free_mb,
ROUND(100.0 * d.used_size / NULLIF(d.total_size, 0), 2) AS used_pct,
d.is_selected, d.is_selected_data
FROM goldendb_insight.host_used_dir AS d
JOIN goldendb_insight.host_info AS h ON h.id = d.host_id
ORDER BY used_pct DESC, h.id, d.id
LIMIT 100
29. MDS 租户 DB 计划资源与安装状态------核对租户部署配置。
sql
SELECT tenancy_id, db_name, db_role, cpu_count, memory_capacity, disk_space, db_status FROM goldendb_insight.insight_tenancy_db_resource ORDER BY tenancy_id, db_name LIMIT 100
30. MDS 聚合任务状态与最近执行时间------优先定位失败、停止中或长期运行的任务。
sql
SELECT id, task_id, cluster_id, task_name, task_name_type, task_type, task_status, task_source, oper_createtime, oper_last_executetime, oper_last_endtime FROM goldendb_omm.gdb_merge_task ORDER BY id DESC LIMIT 50
31. MDS 资源类型与登记状态分布------发现资源模型登记异常。
sql
SELECT d.entrid AS resource_type_id, t.type_name, d.entstatus, COUNT(*) AS resource_count FROM goldendb_omm.gdb_device_info_dbmanage d LEFT JOIN goldendb_omm.gdb_device_typeset t ON d.entrid = t.type_id GROUP BY d.entrid, t.type_name, d.entstatus ORDER BY resource_count DESC LIMIT 50
32. MDS 通用管理任务与错误码------查看指定集群最近全局任务状态与时间线。
sql
SELECT task_id, cluster_id, task_type, start_timestamp,
end_timestamp, err_code, oper_last_executetime
FROM (SELECT task_id, cluster_id, task_type, start_timestamp,
end_timestamp, err_code, oper_last_executetime
FROM goldendb_omm.gdb_common_task_info
ORDER BY task_id DESC LIMIT 200) AS recent
WHERE cluster_id = :cluster_id
ORDER BY task_id DESC LIMIT 50
33. MDS 集群与 Proxy 绑定状态及运行状态------定位异常绑定或待完成操作。
sql
SELECT b.cluster_id, c.cluster_name, c.cluster_state,
b.proxy_id, p.proxy_name, p.proxy_status, p.proxy_operation,
b.status AS bind_status, b.create_stamp
FROM mds.cluster_proxy_bind_info AS b
LEFT JOIN mds.cluster_info AS c ON c.cluster_id = b.cluster_id
LEFT JOIN mds.proxy_info AS p ON p.proxy_id = b.proxy_id
ORDER BY b.status DESC, b.cluster_id, b.proxy_id
LIMIT 100
34. MDS 集群分片目录日空间增长原值 Top 100------排查哪个分片或目录容量变化值得核对。
sql
SELECT `aggretime`, `clusterId`, `clusterName`, `groupName`, `name`, `type`, `dirType`,
`dataTotal`, `dataAvailable`, `dataUsed`, `dataIncreased`, `dayIncreased`
FROM goldendb_insight.insight_dbspace_increase_day
WHERE `clusterId` = :cluster_id
ORDER BY `aggretime` DESC
LIMIT 100
57. 分区和子分区定义、边界与估算容量------配合估算容量定位倾斜。
sql
SELECT TABLE_SCHEMA,TABLE_NAME,PARTITION_NAME,SUBPARTITION_NAME,PARTITION_ORDINAL_POSITION,SUBPARTITION_ORDINAL_POSITION,PARTITION_METHOD,SUBPARTITION_METHOD,PARTITION_EXPRESSION,SUBPARTITION_EXPRESSION,PARTITION_DESCRIPTION,TABLE_ROWS,DATA_LENGTH,INDEX_LENGTH FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA=:schema_name AND TABLE_NAME=:table_name ORDER BY PARTITION_ORDINAL_POSITION,SUBPARTITION_ORDINAL_POSITION;
58. 分片热点更新表的读写次数采样排行------定位写入集中对象。
sql
SELECT device_id, group_id, table_name, time_stamp, read_count, write_count, insert_count, update_count, delete_count FROM goldendb_insight.gdb_db_hotupdate_info WHERE cluster_id = :cluster_id AND time_stamp >= :begin_time AND time_stamp < :end_time ORDER BY write_count DESC LIMIT 50
71. 指定租户的临时表空间文件采样 Top 50------定位临时空间占用节点与分片。
sql
SELECT time_stamp, device_id, device_type, group_id, file_name, file_size FROM goldendb_insight.gdb_tmptablespace_size WHERE cluster_id = :cluster_id AND time_stamp >= :begin_time AND time_stamp < :end_time ORDER BY file_size DESC LIMIT 50
93. 数据库内统计估计行数 Top------以元数据估计行数排序大表,不扫描业务数据。
sql
SELECT TABLE_SCHEMA,TABLE_NAME,ENGINE,TABLE_ROWS,CREATE_TIME FROM information_schema.TABLES WHERE TABLE_SCHEMA=:schema_name AND TABLE_TYPE='BASE TABLE' AND TABLE_ROWS IS NOT NULL ORDER BY TABLE_ROWS DESC,TABLE_NAME LIMIT :top_n;
94. 数据库内表容量估计 Top------列出最大表及其表、索引大小。
sql
SELECT TABLE_SCHEMA,TABLE_NAME,ENGINE,TABLE_ROWS,DATA_LENGTH,INDEX_LENGTH,DATA_LENGTH+INDEX_LENGTH AS TOTAL_BYTES,DATA_FREE FROM information_schema.TABLES WHERE TABLE_SCHEMA=:schema_name AND TABLE_TYPE='BASE TABLE' ORDER BY TOTAL_BYTES DESC,TABLE_NAME LIMIT :top_n;
96. 新版 MDS DN 磁盘容量限额与满额策略------核对数据目录容量保护配置。
sql
SELECT id, resource_type, component_type, directory_type, capacity_quota_type, nominal_capacity_quota, capacity_full_policy, disk_desc, time_stamp FROM goldendb_insight.gdb_dn_disk_metadata ORDER BY time_stamp DESC, id DESC LIMIT 100
三、权限与安全(35--46、107)
35. MySQL/系统租户全局授权------检查高权限账号。
sql
SELECT GRANTEE, PRIVILEGE_TYPE, IS_GRANTABLE FROM information_schema.USER_PRIVILEGES ORDER BY GRANTEE, PRIVILEGE_TYPE;
36. MySQL/系统租户列级授权------补足表级授权核查。
sql
SELECT GRANTEE, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, PRIVILEGE_TYPE, IS_GRANTABLE FROM information_schema.COLUMN_PRIVILEGES ORDER BY GRANTEE, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, PRIVILEGE_TYPE;
37. MySQL/系统租户库级授权------排查访问不足或过宽授权。
sql
SELECT GRANTEE, TABLE_SCHEMA, PRIVILEGE_TYPE, IS_GRANTABLE FROM information_schema.SCHEMA_PRIVILEGES ORDER BY GRANTEE, TABLE_SCHEMA, PRIVILEGE_TYPE;
38. MySQL/系统租户表级授权------对象级授权核查。
sql
SELECT GRANTEE, TABLE_SCHEMA, TABLE_NAME, PRIVILEGE_TYPE, IS_GRANTABLE FROM information_schema.TABLE_PRIVILEGES ORDER BY GRANTEE, TABLE_SCHEMA, TABLE_NAME, PRIVILEGE_TYPE;
39. MySQL/系统租户角色授予关系------建立角色继承链入口。
sql
SELECT FROM_USER, FROM_HOST, TO_USER, TO_HOST, WITH_ADMIN_OPTION FROM mysql.role_edges ORDER BY TO_USER, TO_HOST, FROM_USER, FROM_HOST;
40. MySQL/系统租户账号及角色状态------定位登录及权限问题。
sql
SELECT User, Host, account_locked, password_expired, is_role, plugin, profile_name FROM mysql.user ORDER BY User, Host;
41. MySQL/系统租户默认角色------排查已授予但未默认启用的问题。
sql
SELECT USER, HOST, DEFAULT_ROLE_USER, DEFAULT_ROLE_HOST FROM mysql.default_roles ORDER BY USER, HOST, DEFAULT_ROLE_USER;
42. Oracle 兼容租户直接列级授权------定位细粒度访问。
sql
SELECT GRANTEE, OWNER, TABLE_NAME, COLUMN_NAME, PRIVILEGE, GRANTABLE FROM sys.DBA_COL_PRIVS ORDER BY GRANTEE, OWNER, TABLE_NAME, COLUMN_NAME, PRIVILEGE;
43. Oracle 兼容租户直接对象授权------核对对象级授权。
sql
SELECT GRANTEE, OWNER, TABLE_NAME, PRIVILEGE, GRANTABLE FROM sys.DBA_TAB_PRIVS ORDER BY GRANTEE, OWNER, TABLE_NAME, PRIVILEGE;
44. Oracle 兼容租户直接系统权限------检查过宽授权。
sql
SELECT GRANTEE, PRIVILEGE, ADMIN_OPTION FROM sys.DBA_SYS_PRIVS ORDER BY GRANTEE, PRIVILEGE;
45. Oracle 兼容租户直接角色授权------检查角色链。
sql
SELECT GRANTEE, GRANTED_ROLE, ADMIN_OPTION, DEFAULT_ROLE FROM sys.DBA_ROLE_PRIVS ORDER BY GRANTEE, GRANTED_ROLE;
46. Oracle 兼容租户账号状态------查看锁定、到期时间与认证方式。
sql
SELECT USERNAME, ACCOUNT_STATUS, LOCK_DATE, EXPIRY_DATE, CREATED, AUTHENTICATION_TYPE FROM sys.DBA_USERS ORDER BY USERNAME;
107. 近期修改的存储例程------发现近期创建或修改的过程/函数。
sql
SELECT ROUTINE_SCHEMA,ROUTINE_NAME,ROUTINE_TYPE,CREATED,LAST_ALTERED,SQL_DATA_ACCESS,SECURITY_TYPE FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA=:schema_name AND LAST_ALTERED>=:begin_time AND LAST_ALTERED<:end_time ORDER BY LAST_ALTERED DESC,ROUTINE_NAME LIMIT :top_n;
四、性能分析(47--56、59--63、67、68)
47. Proxy 至 DB 连接数采样时间线------区分客户端侧和后端 DB 侧连接压力。
sql
SELECT device_id, db_id, dbType, connect_port, start_time, end_time, dblink, alive_dblink FROM goldendb_omm.gdb_stat_proxy_db WHERE cluster_id = :cluster_id AND end_time >= :begin_time AND end_time < :end_time ORDER BY end_time DESC LIMIT 100
48. Proxy 至客户端连接数采样时间线------定位特定组件连接变化。
sql
SELECT device_id, device_type, connect_port, time_stamp, link, alive_drdc_link FROM goldendb_insight.gdb_stat_proxy_drdc WHERE cluster_id = :cluster_id AND time_stamp >= :begin_time AND time_stamp < :end_time ORDER BY time_stamp DESC LIMIT 100
49. Proxy 连接端口锁超时次数------与 DN 等待及业务错误对时。
sql
SELECT cluster_id, proxy_id, device_id, connect_port, start_time, end_time, lock_num
FROM goldendb_omm.gdb_stat_connport_lock
WHERE cluster_id = :cluster_id AND start_time >= :begin_time AND start_time < :end_time
ORDER BY start_time DESC, id DESC LIMIT :row_limit
50. 业务入口事务事件累计耗时------按事务事件汇总执行次数与耗时。
sql
SELECT EVENT_NAME, COUNT_STAR, COUNT_READ_WRITE, COUNT_READ_ONLY, ROUND(SUM_TIMER_WAIT/1000000000000,3) TOTAL_S, ROUND(AVG_TIMER_WAIT/1000000000000,6) AVG_S FROM performance_schema.events_transactions_summary_global_by_event_name ORDER BY SUM_TIMER_WAIT DESC
51. 业务入口当前内存分配热点 Top 20------定位内存占用热点。
sql
SELECT EVENT_NAME, CURRENT_NUMBER_OF_BYTES_USED, HIGH_NUMBER_OF_BYTES_USED, COUNT_ALLOC, COUNT_FREE FROM performance_schema.memory_summary_global_by_event_name WHERE CURRENT_NUMBER_OF_BYTES_USED > 0 ORDER BY CURRENT_NUMBER_OF_BYTES_USED DESC LIMIT 20
52. 业务入口待获取元数据锁------定位 DDL 或对象访问卡住的对象。
sql
SELECT OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME, LOCK_TYPE, LOCK_DURATION, LOCK_STATUS, OWNER_THREAD_ID FROM performance_schema.metadata_locks WHERE LOCK_STATUS = 'PENDING' LIMIT :top_n;
53. 业务入口慢 SQL 摘要累计统计------复核高开销 SQL。
sql
SELECT SCHEMA_NAME, DIGEST, DIGEST_TEXT, SUM_NUMS, SUM_QUERY_TIME, SUM_ROWS_EXAMINED, LAST_SEEN FROM performance_schema.events_slow_query_summary_by_digest WHERE DIGEST = :digest;
54. 业务入口数据锁等待双方------为后续锁对象回读提供键。
sql
SELECT ENGINE, REQUESTING_ENGINE_TRANSACTION_ID, REQUESTING_THREAD_ID, REQUESTING_ENGINE_LOCK_ID, BLOCKING_ENGINE_TRANSACTION_ID, BLOCKING_THREAD_ID, BLOCKING_ENGINE_LOCK_ID FROM performance_schema.data_lock_waits LIMIT :top_n;
55. 业务入口文件 I/O 等待与吞吐 Top 20------排查文件 I/O 热点。
sql
SELECT EVENT_NAME, COUNT_READ, ROUND(SUM_TIMER_READ/1000000000000,3) READ_WAIT_S, SUM_NUMBER_OF_BYTES_READ, COUNT_WRITE, ROUND(SUM_TIMER_WRITE/1000000000000,3) WRITE_WAIT_S, SUM_NUMBER_OF_BYTES_WRITE FROM performance_schema.file_summary_by_event_name ORDER BY SUM_TIMER_READ + SUM_TIMER_WRITE DESC LIMIT 20
56. 业务入口累计错误码 Top 20------定位高频错误。
sql
SELECT ERROR_NUMBER, ERROR_NAME, SQL_STATE, SUM_ERROR_RAISED, SUM_ERROR_HANDLED, FIRST_SEEN, LAST_SEEN FROM performance_schema.events_errors_summary_global_by_error WHERE SUM_ERROR_RAISED > 0 ORDER BY SUM_ERROR_RAISED DESC LIMIT 20
59. 可疑 SQL 采集规则启用状态与阈值配置------排查规则未启用或阈值不符预期。
sql
SELECT type_id, device_type, suspicioussql_type,
`level`, `threshold`, threshold_desc, is_collect
FROM goldendb_insight.insight_suspicioussql_threshold
ORDER BY `level` DESC, type_id
LIMIT 100
60. 已确认分片路由视图查询形态------核对表的分片路由结构。
sql
SELECT TABLE_NAME,
OWNER,
DIST_TYPE,
DIST_KEY,
DIST_GROUPS,
SHARDED,
PARTITIONED,
STATUS
FROM _gdb_sysdb._GDB_DBA_TABLES
WHERE OWNER = :owner
AND TABLE_NAME = :table_name
ORDER BY TABLE_NAME
LIMIT :top_n;
61. 当前 InnoDB 并发与长事务------取活动事务、等待状态及修改规模。
sql
SELECT trx_id,trx_state,trx_started,trx_wait_started,trx_mysql_thread_id,trx_tables_locked,trx_lock_structs,trx_rows_locked,trx_rows_modified FROM information_schema.innodb_trx WHERE trx_started<DATE_SUB(NOW(),INTERVAL :min_minutes MINUTE) ORDER BY trx_started;
62. 当前会话明细与维度计数------列出全部用户/工作会话及按维度计数。
sql
SELECT a.server_name, a.session_id, a.program_name, a.user_name,
a.session_state, a.wait_event,
COUNT(*) OVER () AS session_total,
COUNT(*) OVER (PARTITION BY a.server_name) AS server_session_count,
COUNT(*) OVER (PARTITION BY a.program_name) AS program_session_count,
COUNT(*) OVER (PARTITION BY a.user_name) AS user_session_count,
CASE WHEN a.wait_event IS NOT NULL THEN COUNT(*) OVER (PARTITION BY a.wait_event) ELSE 0 END AS wait_event_session_count
FROM (SELECT TO_CHAR(s.INST_ID) AS server_name,
s.SID AS session_id,
COALESCE(s.MODULE, s.PROGRAM) AS program_name,
s.USERNAME AS user_name,
s.STATUS AS session_state,
CASE WHEN s.STATE = 'WAITING' AND s.WAIT_CLASS <> 'Idle' THEN s.EVENT END AS wait_event
FROM sys.gv$session s
WHERE s.TYPE = 'USER') a
ORDER BY a.server_name, a.session_id
63. 当前活跃会话明细与维度计数------仅统计工作会话。
sql
SELECT a.server_name, a.session_id, a.program_name, a.user_name,
a.session_state, a.wait_event,
COUNT(*) OVER () AS active_session_total,
COUNT(*) OVER (PARTITION BY a.server_name) AS server_active_count,
COUNT(*) OVER (PARTITION BY a.program_name) AS program_active_count,
COUNT(*) OVER (PARTITION BY a.user_name) AS user_active_count,
CASE WHEN a.wait_event IS NOT NULL THEN COUNT(*) OVER (PARTITION BY a.wait_event) ELSE 0 END AS wait_event_session_count
FROM (SELECT TO_CHAR(s.INST_ID) AS server_name,
s.SID AS session_id,
COALESCE(s.MODULE, s.PROGRAM) AS program_name,
s.USERNAME AS user_name,
s.STATUS AS session_state,
CASE WHEN s.STATE = 'WAITING' AND s.WAIT_CLASS <> 'Idle' THEN s.EVENT END AS wait_event
FROM sys.gv$session s
WHERE s.TYPE = 'USER' AND s.STATUS = 'ACTIVE') a
ORDER BY a.server_name, a.session_id
67. 指定主机的 CPU、内存和 I/O 历史采样------定位主机资源瓶颈时段。
sql
SELECT time_stamp, cpu_used, cpu_time_rate, mem_used_percentage, mem_used_size, mem_total_size, io_util, io_wait, used_ratio, swap_used_percentage FROM goldendb_insight.hostdynamic_info WHERE ip = :host_ip AND time_stamp >= :begin_time AND time_stamp < :end_time ORDER BY time_stamp DESC LIMIT 50
68. 指定入口当前连接与 SQL 状态------按连接 ID 定位会话状态与当前 SQL。
sql
SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, DIGEST FROM information_schema.PROCESSLIST WHERE ID = :session_id;
五、备份恢复(64--66、69、81、85、86)
64. 指定 Binlog 备份任务的节点结果------定位局部失败或漏分片。
sql
SELECT task_id, cluster_id, group_id, db_id, db_role,
start_time, stop_time, binlog_file_nums,
binlog_file_size_total, result, result_desc
FROM backup_restore.binlog_backup_task_info_detail
WHERE task_id = :task_id
ORDER BY group_id, db_id
LIMIT 200
65. 指定 MDS 集群 Binlog 备份任务时间线------读取备份任务与结果码。
sql
SELECT schedule_number, task_id, cluster_id, task_type,
start_time, stop_time, backup_strategy, result
FROM backup_restore.binlog_backup_task_info
WHERE cluster_id = :cluster_id
AND start_time >= :begin_time AND start_time < :end_time
ORDER BY start_time DESC
LIMIT 50
66. 指定 MDS 集群定时备份计划------读取周期、重试、Binlog 选项和状态。
sql
SELECT cluster_id, backup_start_time, backup_week_strategy,
force_backup_master, backup_retry_interval, backup_retry_times,
time_stamp, status, validity, backup_binlog
FROM mds.timing_backup_task_info
WHERE cluster_id = :cluster_id
ORDER BY time_stamp DESC
LIMIT 50
69. 指定备份的节点明细与错误------核对各节点错误和文件大小。
sql
SELECT d.BACKUP_ID, d.GROUP_ID, d.DB_NAME, d.IS_MASTER, d.START_TIMESTAMP, d.END_TIMESTAMP, d.ERR_CODE, d.ERR_DESC, d.BACKUP_FILE_SIZE FROM goldendb_omm.gdb_cluster_backup_history h JOIN goldendb_omm.gdb_cluster_backup_history_detail d ON d.BACKUP_ID = h.BACKUP_ID WHERE h.CLUSTER_ID = :cluster_id ORDER BY d.BACKUP_ID DESC LIMIT :top_n;
81. 指定集群备份历史与结果------复核失败或遗漏的备份批次。
sql
SELECT BACKUP_ID, CLUSTER_ID, CLUSTER_NAME, BACKUP_TYPE, BACKUP_MODE, START_TIMESTAMP, END_TIMESTAMP, RESULT_CODE, RESULT_DESC FROM goldendb_omm.gdb_cluster_backup_history WHERE CLUSTER_ID = :cluster_id ORDER BY BACKUP_ID DESC LIMIT :top_n;
85. 指定集群快照任务与操作结果------定位快照阶段的失败或积压。
sql
SELECT CLUSTER_ID, TASK_ID, SNAPSHOT_ID, SNAPSHOT_OPER, SNAPSHOT_OPER_TIME, SNAPSHOT_OPER_RESULT, SNAPSHOT_OPER_RESULT_DESC FROM backup_restore.snapshot_task_info WHERE CLUSTER_ID = :cluster_id ORDER BY SNAPSHOT_OPER_TIME DESC LIMIT :top_n;
86. 指定集群最近恢复任务与错误码------回查恢复任务阶段时间和错误码。
sql
SELECT id, restore_type, backup_cluster_id, restore_cluster_id,
is_check_binlog, is_active_rollback, restore_time,
start_time, end_time, err_code, restore_mode
FROM (SELECT id, restore_type, backup_cluster_id, restore_cluster_id,
is_check_binlog, is_active_rollback, restore_time,
start_time, end_time, err_code, restore_mode
FROM goldendb_omm.gdb_cluster_restore_task_info
ORDER BY id DESC LIMIT 200) AS recent
WHERE restore_cluster_id = :cluster_id
ORDER BY id DESC LIMIT 50
六、故障处理与事务(72--80、82--84、87--92、95、97--108)
70. 指定对象字段校验------返回字段名、类型、可空性。
sql
SELECT table_schema,
table_name,
ordinal_position,
column_name,
data_type,
is_nullable
FROM information_schema.columns
WHERE table_schema = :schema_name
AND table_name = :table_name
ORDER BY ordinal_position;
72. 指定表分布方式与分片键------核对多分片表的路由结构。
sql
SELECT OWNER,
TABLE_OWNER,
TABLE_NAME,
OBJECT_TYPE,
DIST_TYPE,
DIST_KEY,
DIST_GROUPS
FROM _gdb_sysdb._gdb_dictionary_systb_info
WHERE OBJECT_TYPE = 'TABLE'
AND TABLE_OWNER = UPPER(:database_name)
AND TABLE_NAME = UPPER(:table_name)
ORDER BY TABLE_OWNER, TABLE_NAME
LIMIT :top_n;
73. 指定表基础属性与完整列类型------核对字符集、默认值、自增或生成列。
sql
SELECT t.TABLE_SCHEMA,t.TABLE_NAME,t.ENGINE,t.TABLE_COLLATION,t.CREATE_OPTIONS,c.ORDINAL_POSITION,c.COLUMN_NAME,c.COLUMN_TYPE,c.IS_NULLABLE,c.COLUMN_DEFAULT,c.EXTRA,c.COLUMN_COMMENT FROM information_schema.TABLES t JOIN information_schema.COLUMNS c ON c.TABLE_SCHEMA=t.TABLE_SCHEMA AND c.TABLE_NAME=t.TABLE_NAME WHERE t.TABLE_SCHEMA=:schema_name AND t.TABLE_NAME=:table_name ORDER BY c.ORDINAL_POSITION;
74. 指定表字段结构------返回字段、类型、键、默认值与注释。
sql
SELECT ordinal_position,
column_name,
column_type,
is_nullable,
column_default,
column_key,
extra,
column_comment
FROM information_schema.columns
WHERE table_schema = :database_name
AND table_name = :table_name
ORDER BY ordinal_position;
75. 指定表索引与基数------核对索引可用性与基数。
sql
SELECT index_name,
non_unique,
seq_in_index,
column_name,
cardinality,
index_type
FROM information_schema.statistics
WHERE table_schema = :database_name
AND table_name = :table_name
ORDER BY index_name, seq_in_index;
76. 指定表约束------核对约束类型。
sql
SELECT constraint_name,
constraint_type
FROM information_schema.table_constraints
WHERE table_schema = :database_name
AND table_name = :table_name
ORDER BY constraint_type, constraint_name;
77. 指定重分布任务的分区阶段------核对分区级源组、目标组、阶段与状态。
sql
SELECT ID, taskid, clusterid, origin_table_name, partition_name,
src_group_id, dst_group_id, stage, status, file_row_number
FROM mds.redistribution_partition_info
WHERE taskid = :task_id
ORDER BY ID DESC LIMIT 100
78. 指定集群 GTID 回滚状态与重试次数------查看回滚记录与重试情况。
sql
SELECT cluster_id, gtid, proxy_id, flag, rollback_count, first_report_time, last_rollback_time, update_time
FROM goldendb_omm.gdb_gtid_rollback_info
WHERE cluster_id = :cluster_id
ORDER BY rollback_count DESC, gtid LIMIT :row_limit
79. 指定集群 Proxy 连接实例当前连接数------定位连接负载异常候选入口。
sql
SELECT c.cluster_id, c.conn_instance_id, c.conn_instance_name,
c.proxy_port, c.max_conn, c.status AS instance_status,
p.proxy_id, p.pool_num, p.connect_num,
p.curr_connections, p.status AS proxy_binding_status,
p.time_stamp
FROM mds.conn_instance_info AS c
JOIN mds.proxy_instance_info AS p
ON p.conn_instance_id = c.conn_instance_id
WHERE c.cluster_id = :cluster_id
ORDER BY p.curr_connections DESC, c.conn_instance_id, p.proxy_id
LIMIT 100
80. 指定集群作业执行结果时间线------追踪作业失败。
sql
SELECT cluster_id, job_id, job_name, job_type,
start_time, end_time, result_code
FROM mds.gdb_job_result
WHERE cluster_id = :cluster_id
AND start_time >= :begin_time AND start_time < :end_time
ORDER BY start_time DESC, job_id DESC
LIMIT 100
82. 指定集群字典对象删除历史------追查近期对象消失或 DDL 后异常。
sql
SELECT cluster_id, id, dict_version, name, type,
`timestamp` AS drop_time
FROM mds.drop_dict_obj_history
WHERE cluster_id = :cluster_id
AND `timestamp` >= :begin_time AND `timestamp` < :end_time
ORDER BY `timestamp` DESC, id DESC
LIMIT 100
83. 指定集群定时作业配置及失败计数------发现停调度或持续失败的作业。
sql
SELECT cluster_id, job_id, job_name, job_type, job_schema,
sched_enable, job_broken, activated, failures,
last_date, this_date, next_date, exec_timeout
FROM mds.gdb_jobs
WHERE cluster_id = :cluster_id
ORDER BY failures DESC, job_id DESC
LIMIT 100
84. 指定集群巡检规则启用与配置表达式------定位监测范围和禁用规则。
sql
SELECT c.clusterId AS cluster_id, c.device_type, c.patrol_id,
p.chinese_desc AS rule_name, p.patrol_object,
p.patrol_apply AS template_enabled,
c.patrol_apply AS cluster_enabled,
c.patrol_relation AS cluster_rule_expression,
p.support_range, p.display_type
FROM goldendb_insight.insight_cluster_patrolconfig AS c
JOIN goldendb_insight.insight_patrol_config AS p
ON p.patrol_id = c.patrol_id AND p.device_type = c.device_type
WHERE c.clusterId = :cluster_id
ORDER BY c.device_type, c.patrol_id
LIMIT 100
87. 指定集群滚动升级任务状态------定位中断步骤。
sql
SELECT task_id, cluster_name, dbgroup, upgrade_type,
progress, status, result_desc
FROM goldendb_omm.gdb_serversupgrade_task
WHERE cluster_name = :cluster_name
ORDER BY task_id DESC
LIMIT 50
88. 指定集群管理操作时间线------回看 MDS 可见的管理操作。
sql
SELECT cluster_id, id, request_type, req_source,
proxy_id, request_time, resp_time, status
FROM mds.opera_record
WHERE cluster_id = :cluster_id
AND request_time >= :begin_time AND request_time < :end_time
ORDER BY request_time DESC, id DESC
LIMIT 100
89. 指定集群近期分布式死锁------关联请求和阻塞 GTID。
sql
SELECT CLUSTER_ID, GROUP_ID, TIME_STAMP, REQ_GTID, BLK_GTID, BLK_TRX_ID, AUTO_UNLOCK FROM goldendb_statistic.gdb_distributed_deadlock_info WHERE CLUSTER_ID = :cluster_id AND TIME_STAMP >= :begin_time AND TIME_STAMP < :end_time ORDER BY TIME_STAMP DESC LIMIT :top_n;
90. 指定集群配置变更时间线------定位故障前后的配置变更记录。
sql
SELECT cluster_id, id, cfg_name, cfg_type, cfg_level,
group_id, team_id, node_id, module_type, service_type,
cfg_flag, update_time
FROM mds.cluster_config_history_info
WHERE cluster_id = :cluster_id
AND update_time >= :begin_time AND update_time < :end_time
ORDER BY update_time DESC, id DESC
LIMIT 100
91. 指定集群高可用切换任务时间线------串联切换事件。
sql
SELECT cluster_id, group_id, task_id, task_type,
start_time, room_id, result_code, result_desc
FROM goldendb_insight.gdb_high_availability_task_info
WHERE cluster_id = :cluster_id
AND start_time >= :begin_time AND start_time < :end_time
ORDER BY start_time DESC, task_id
LIMIT 100
92. 数据库一键修复任务历史------查看分片节点一键修复任务与结果。
sql
SELECT cluster_name, dbgroup, db_ip, db_port, status, progress, start_time_stamp, end_time_stamp, description
FROM goldendb_omm.gdb_autorecovery_history
WHERE cluster_name = :cluster_name
ORDER BY id DESC LIMIT :row_limit
95. 新版 Insight AWR 报告维度与指标计算目录------解释报告指标与旧版字段差异。
sql
SELECT id, dimension_id, `head` AS metric_head,
param_groupId AS metric_group_id,
param_key, `calc` AS calc_method
FROM goldendb_insight.insight_awrreport_info
ORDER BY id
LIMIT 1000
97. 旧版 Insight AWR 报告指标与计算方法目录------核对报告口径和字段映射。
sql
SELECT id, report_id AS report_topic_id,
param_groupid AS snapshot_topic_id,
`head` AS metric_head, `method` AS calc_method
FROM goldendb_insight.insight_awrreport_info
ORDER BY id
LIMIT 1000
98. 旧版 MDS 指定主机磁盘 I/O 与时延采样------定位节点 I/O 瓶颈时间段。
sql
SELECT time_stamp, ip AS host_ip, disk_name,
delay AS avg_latency_ms, delay_max AS max_latency_ms,
r_await AS read_await_raw, w_await AS write_await_raw,
readCount AS reads_per_sec, writeCount AS writes_per_sec,
readKbSize AS read_kb_per_sec, writeKbSize AS write_kb_per_sec,
usedRatio AS sampled_utilization
FROM goldendb_statistic.host_diskinfo
WHERE ip = :host_ip AND time_stamp >= :begin_time AND time_stamp < :end_time
ORDER BY time_stamp DESC
LIMIT 100
99. 旧版 MDS 指定集群备机 I/O 与 SQL 线程状态------回看备机线程状态和复制延迟。
sql
SELECT time_stamp, cluster_id, group_id, device_id, device_type,
seconds_behind_master, slave_io_running, slave_sql_running
FROM goldendb_insight.gdb_slave_status
WHERE cluster_id = :cluster_id
AND time_stamp >= :begin_time AND time_stamp < :end_time
ORDER BY time_stamp DESC, group_id, device_id
LIMIT 200
100. 旧版 MDS 的 CN XA 与分布式事务异常采样------定位事务风险发生的节点与采样时间。
sql
SELECT time_stamp, cluster_id, device_id, device_type,
xa_trans_num, xa_fail_num, xa_pending_num,
distrans, distransabcommit, failtrans,
crossnodediswtrans
FROM goldendb_insight.gdb_cn_sqlstat
WHERE cluster_id = :cluster_id
AND time_stamp >= :begin_time AND time_stamp < :end_time
ORDER BY time_stamp DESC
LIMIT 100
101. 旧版 MDS 的 Proxy 周期事务量与失败量------定位失败量或事务负载变化。
sql
SELECT cluster_id, device_id, device_type, connect_port,
time_stamp, trans_num, trans_failed_num, trans_total_exectime
FROM goldendb_insight.gdb_stat_proxy_trans
WHERE cluster_id = :cluster_id
AND time_stamp >= :begin_time AND time_stamp < :end_time
ORDER BY time_stamp DESC, device_id
LIMIT 200
102. 旧版 MDS 采集的 DN 会话历史------定位错误或等待集中时段。
sql
SELECT CLUSTER_ID, GROUP_ID, DEVICE_ID, CONNECT_PORT, TIME_STAMP, THREAD_ID, EVENT_ID, DIGEST, MYSQL_ERRNO, TIMER_WAIT, LOCK_TIME, ROWS_EXAMINED FROM goldendb_statistic.gdb_dn_sessionhistory_awr WHERE CLUSTER_ID = :cluster_id AND TIME_STAMP >= :begin_time AND TIME_STAMP < :end_time ORDER BY TIME_STAMP DESC LIMIT :top_n;
103. 旧版 MDS 采集的 DN 复制延迟------按组、设备与源节点定位链路。
sql
SELECT CLUSTER_ID, GROUP_ID, DEVICE_ID, DEVICE_TYPE, CONNECT_PORT, ORIGINIPPORT, REPLICATIONDELAY, TIME_STAMP FROM goldendb_statistic.gdb_replication_delay WHERE CLUSTER_ID = :cluster_id AND TIME_STAMP >= :begin_time AND TIME_STAMP < :end_time ORDER BY TIME_STAMP DESC LIMIT :top_n;
104. 旧版 MDS 采集的 DN 锁等待数量------定位锁等待热点节点。
sql
SELECT CLUSTER_ID, GROUP_ID, DEVICE_ID, DEVICE_TYPE, CONNECT_PORT, LOCK_WAIT_NUM, TIME_STAMP FROM goldendb_statistic.gdb_lock_wait WHERE CLUSTER_ID = :cluster_id AND TIME_STAMP >= :begin_time AND TIME_STAMP < :end_time ORDER BY TIME_STAMP DESC LIMIT :top_n;
105. 最近参数下发、重启与回切任务状态------排查配置未生效和任务失败。
sql
SELECT cluster_id, task_id, task_type, strategy, issue_status, restart_status, switch_status, create_time, last_update_time FROM goldendb_insight.insight_paramissue_detail ORDER BY last_update_time DESC, id DESC LIMIT 50;
106. 终止在线事务操作历史------回看终止事务操作、会话、GTID 与操作员。
sql
SELECT cluster_name, proxy_name, dialog_id, gt_id, kill_time, exec_result, operator
FROM goldendb_omm.gdb_kill_transaction_history
WHERE cluster_name = :cluster_name
ORDER BY id DESC LIMIT :row_limit
108. 重分布任务最新状态------查看指定集群最近重分布任务状态与时间线。
sql
SELECT task_id, cluster_id, task_state, state_description,
task_create_time, task_end_time, type, time_stamp
FROM (SELECT task_id, cluster_id, task_state, state_description,
task_create_time, task_end_time, type, time_stamp
FROM mds.redistribution_task_info
ORDER BY task_id DESC LIMIT 200) AS recent
WHERE cluster_id = :cluster_id
ORDER BY task_id DESC LIMIT 50