Skip to main content

ops-diagnostics

PolarDB-X 运维诊断视图完整参考。覆盖事务/锁、慢SQL、DDL、执行计划、分区拓扑、存储资源、列存、内存等八大场景的 information_schema 视图用法与示例 SQL。 Use when diagnosing performance issues, checking cluster health, analyzing slow queries, monitoring DDL progress, investigating locks/transactions, or inspecting data distribution on PolarDB-X. Triggers: "诊断", "运维", "巡检", "慢SQL", "长事务", "锁等待", "DDL进度", "数据倾斜", "存储节点", "DN状态", "连接数", "内存", "计划缓存", "SPM", "死锁", "information_schema", "STATEMENTS_SUMMARY", "POLARDBX_TRX", "TABLE_DETAIL", "STORAGE", "DDL_PROGRESS", "METADATA_LOCK", "DEADLOCKS", "PLAN_CACHE", "OPTIMIZER_ALERT", "diagnostics", "health check"

跳到安装

来源信息

仓库
polardb/polardbx-sql
最近来源活动
2026年9月20日 04:37
检测到的 SKILL.md 语言
中文
星标
1,686
分支
337

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
ops-diagnostics
description
PolarDB-X 运维诊断视图完整参考。覆盖事务/锁、慢SQL、DDL、执行计划、分区拓扑、存储资源、列存、内存等八大场景的 information_schema 视图用法与示例 SQL。 Use when diagnosing performance issues, checking cluster health, analyzing slow queries, monitoring DDL progress, investigating locks/transactions, or inspecting data distribution on PolarDB-X. Triggers: "诊断", "运维", "巡检", "慢SQL", "长事务", "锁等待", "DDL进度", "数据倾斜", "存储节点", "DN状态", "连接数", "内存", "计划缓存", "SPM", "死锁", "information_schema", "STATEMENTS_SUMMARY", "POLARDBX_TRX", "TABLE_DETAIL", "STORAGE", "DDL_PROGRESS", "METADATA_LOCK", "DEADLOCKS", "PLAN_CACHE", "OPTIMIZER_ALERT", "diagnostics", "health check"
metadata
{"version":"0.1.0"}
# PolarDB-X 运维诊断视图参考 本技能提供 PolarDB-X 独有 information_schema 视图的完整使用指南。当用户提出运维诊断类问题时,优先使用这些视图获取信息。 ## Scope **适用于:** - 慢 SQL 排查、QPS/RT 分析 - 分布式事务排查(长事务、锁等待、死锁) - DDL 执行监控 - 集群/存储节点健康检查 - 数据分布与倾斜分析 - 执行计划缓存与 SPM 管理 - 内存/连接池/线程池监控 - 列存/冷存状态检查 **不适用于:** - MySQL 标准 information_schema 视图的基本用法(如 TABLES, COLUMNS, SCHEMATA 等) - DN 内部 InnoDB 状态(使用 SHOW ENGINE INNODB STATUS) --- ## Core Workflow 1. 识别用户问题所属场景(事务/慢SQL/DDL/拓扑/存储/内存等) 2. 选择对应的诊断视图并构造查询 3. 解读结果,给出诊断结论和建议 --- ## 诊断视图速查表 ### 1. 事务与锁 | 视图 | 用途 | 示例 SQL | |------|------|----------| | `POLARDBX_TRX` | 查看当前所有分布式事务(含 duration、状态、SQL) | `SELECT * FROM information_schema.polardbx_trx ORDER BY DURATION_TIME DESC LIMIT 20` | | `DEADLOCKS` | 查看最近发生的死锁记录 | `SELECT * FROM information_schema.deadlocks ORDER BY GMT_CREATED DESC LIMIT 10` | | `METADATA_LOCK` | 查看 MDL 锁持有者和等待者 | `SELECT * FROM information_schema.metadata_lock` | | `INNODB_TRX` | DN 级别 InnoDB 事务列表 | `SELECT * FROM information_schema.innodb_trx` | | `INNODB_LOCKS` | DN 级别行锁信息 | `SELECT * FROM information_schema.innodb_locks` | | `INNODB_LOCK_WAITS` | DN 级别锁等待关系 | `SELECT * FROM information_schema.innodb_lock_waits` | | `PREPARED_TRX_BRANCH` | 悬挂的 XA 预备事务分支 | `SELECT * FROM information_schema.prepared_trx_branch` | **典型诊断流程 — 长事务排查:** ```sql -- 1. 找到超过 60 秒的事务 SELECT TRX_ID, DURATION_TIME, SQL, PROCESS_ID FROM information_schema.polardbx_trx WHERE DURATION_TIME > 60; -- 2. 如果需要 kill KILL <PROCESS_ID>; ``` ### 2. 慢 SQL 分析 | 视图 | 用途 | 示例 SQL | |------|------|----------| | `STATEMENTS_SUMMARY` | SQL 摘要统计(累计执行次数、总耗时、平均RT等) | `SELECT SCHEMA, SQL_TEMPLATE, COUNT, AVG_RESPONSE_TIME_MS, SUM_RESPONSE_TIME_MS FROM information_schema.statements_summary ORDER BY SUM_RESPONSE_TIME_MS DESC LIMIT 20` | | `STATEMENTS_SUMMARY_HISTORY` | 历史 SQL 摘要(与上类似,保留更长时间窗口) | `SELECT * FROM information_schema.statements_summary_history WHERE SCHEMA='xxx' ORDER BY SUM_RESPONSE_TIME_MS DESC LIMIT 10` | | `PHYSICAL_PROCESSLIST` | DN 上正在执行的物理 SQL | `SELECT * FROM information_schema.physical_processlist WHERE TIME > 5` | | `PROCESSLIST` | CN 逻辑连接列表 | `SELECT * FROM information_schema.processlist WHERE COMMAND != 'Sleep'` | | `WORKLOAD` | 实时负载指标(QPS、连接数等) | `SELECT * FROM information_schema.workload` | **典型诊断流程 — TOP 慢 SQL:** ```sql -- 找出平均 RT 最高的 SQL 模板 SELECT SQL_TEMPLATE, COUNT, AVG_RESPONSE_TIME_MS, SUM_AFFECTED_ROWS, SUM_RESPONSE_TIME_MS FROM information_schema.statements_summary WHERE SCHEMA = 'your_db' ORDER BY AVG_RESPONSE_TIME_MS DESC LIMIT 10; ``` ### 3. DDL 监控 | 视图 | 用途 | 示例 SQL | |------|------|----------| | `DDL_PROGRESS` | DDL 执行进度(百分比) | `SELECT * FROM information_schema.ddl_progress` | | `DDL_PLAN` | DDL 计划详情(步骤列表) | `SELECT * FROM information_schema.ddl_plan WHERE JOB_ID=xxx` | | `DDL_INFO` | DDL 任务概览 | `SELECT * FROM information_schema.ddl_info` | | `DDL_SCHEDULER` | DDL 调度器状态 | `SELECT * FROM information_schema.ddl_scheduler` | | `DDL_ENGINE_RESOURCE` | DDL 引擎资源占用 | `SELECT * FROM information_schema.ddl_engine_resource` | | `DDL_PHYSICAL_LOCK_STAT` | DDL 物理锁持有统计 | `SELECT * FROM information_schema.ddl_physical_lock_stat` | | `OMC_PROGRESS` | Online Modify Column 进度 | `SELECT * FROM information_schema.omc_progress` | | `REBALANCE_PROGRESS` | Rebalance 进度 | `SELECT * FROM information_schema.rebalance_progress` | ### 4. 执行计划与优化器 | 视图 | 用途 | 示例 SQL | |------|------|----------| | `PLAN_CACHE` | 执行计划缓存内容 | `SELECT * FROM information_schema.plan_cache WHERE SCHEMA_NAME='xxx' LIMIT 20` | | `PLAN_CACHE_CAPACITY` | 计划缓存容量 | `SELECT * FROM information_schema.plan_cache_capacity` | | `SPM` | SQL Plan Management 绑定的基线 | `SELECT * FROM information_schema.spm WHERE SCHEMA_NAME='xxx'` | | `OPTIMIZER_ALERT` | 优化器告警(全表扫描、走错计划等) | `SELECT * FROM information_schema.optimizer_alert WHERE ALERT_COUNT > 0 ORDER BY ALERT_COUNT DESC` | | `STATISTIC_TASK` | 统计信息采集任务 | `SELECT * FROM information_schema.statistic_task` | | `STATISTICS_DATA` | 统计信息详情 | `SELECT * FROM information_schema.statistics_data WHERE SCHEMA_NAME='xxx' AND TABLE_NAME='yyy'` | ### 5. 分区与拓扑 | 视图 | 用途 | 示例 SQL | |------|------|----------| | `TABLE_DETAIL` | 每个分区的行数、大小分布 | `SELECT TABLE_SCHEMA, TABLE_NAME, PARTITION_NAME, TABLE_ROWS, DATA_LENGTH FROM information_schema.table_detail WHERE TABLE_SCHEMA='xxx' ORDER BY TABLE_ROWS DESC` | | `TABLE_GROUP` | 表组信息(共置关系) | `SELECT * FROM information_schema.table_group WHERE TABLE_SCHEMA='xxx'` | | `FULL_TABLE_GROUP` | 表组详情含成员表 | `SELECT * FROM information_schema.full_table_group WHERE TABLE_SCHEMA='xxx'` | | `GLOBAL_INDEXES` | 全局二级索引(GSI)列表 | `SELECT * FROM information_schema.global_indexes WHERE SCHEMA='xxx'` | | `PARTITIONS_META` | 分区元数据 | `SELECT * FROM information_schema.partitions_meta WHERE TABLE_SCHEMA='xxx' AND TABLE_NAME='yyy'` | | `LOCALITY_INFO` | 数据局部性配置 | `SELECT * FROM information_schema.locality_info` | | `MOVE_DATABASE` | 搬库任务进度 | `SELECT * FROM information_schema.move_database` | **典型诊断流程 — 数据倾斜:** ```sql -- 查看各分区行数分布 SELECT PARTITION_NAME, TABLE_ROWS, DATA_LENGTH FROM information_schema.table_detail WHERE TABLE_SCHEMA='your_db' AND TABLE_NAME='your_table' ORDER BY TABLE_ROWS DESC; -- 对比最大/最小分区行数判断倾斜程度 ``` ### 6. 存储节点 | 视图 | 用途 | 示例 SQL | |------|------|----------| | `STORAGE` | DN 节点概览(角色、IP、端口、状态) | `SELECT * FROM information_schema.storage` | | `STORAGE_STATUS` | DN 连接池、线程状态 | `SELECT * FROM information_schema.storage_status` | | `STORAGE_REPLICAS` | DN 副本信息 | `SELECT * FROM information_schema.storage_replicas` | | `FULL_STORAGE` | 完整 DN 信息(含只读节点) | `SELECT * FROM information_schema.full_storage` | | `STORAGE_PROPERTIES` | DN 配置属性 | `SELECT * FROM information_schema.storage_properties` | | `DN_PERF` | DN 性能指标 | `SELECT * FROM information_schema.dn_perf` | | `NODE_STATS` | CN 节点统计 | `SELECT * FROM information_schema.node_stats` | ### 7. 内存与连接池 | 视图 | 用途 | 示例 SQL | |------|------|----------| | `CN_MEMORYPOOL` | CN 内存池使用情况 | `SELECT * FROM information_schema.cn_memorypool` | | `QUERY_MEMORY` | 当前查询的内存使用 | `SELECT * FROM information_schema.query_memory ORDER BY QUERY_USED DESC LIMIT 10` | | `TOTAL_MEMORY` | CN 总内存统计 | `SELECT * FROM information_schema.total_memory` | | `EXECUTOR_MEMORY` | 执行器内存 | `SELECT * FROM information_schema.executor_memory` | | `CN_THREADPOOL` | CN 线程池状态 | `SELECT * FROM information_schema.cn_threadpool` | | `CN_DBSTATS` | CN 各库统计 | `SELECT * FROM information_schema.cn_dbstats` | | `CN_STATUS` | CN 节点状态 | `SELECT * FROM information_schema.cn_status` | ### 8. 列存与冷存 | 视图 | 用途 | 示例 SQL | |------|------|----------| | `COLUMNAR_INDEX_STATUS` | 列存索引物理空间占用 | `SELECT * FROM information_schema.columnar_index_status` | | `COLUMNAR_STATUS` | 列存索引有效数据统计 | `SELECT * FROM information_schema.columnar_status` | | `FILE_STORAGE` | 冷存文件存储概览 | `SELECT * FROM information_schema.file_storage` | | `FILE_STORAGE_FILES_META` | 冷存文件明细 | `SELECT * FROM information_schema.file_storage_files_meta` | ### 9. 其他 | 视图 | 用途 | 示例 SQL | |------|------|----------| | `CCL_RULE` | 并发控制规则 | `SELECT * FROM information_schema.ccl_rule` | | `SEQUENCES` | 序列信息 | `SELECT * FROM information_schema.sequences WHERE SCHEMA_NAME='xxx'` | | `REACTOR_PERF` | NIO Reactor 性能 | `SELECT * FROM information_schema.reactor_perf` | | `SESSION_PERF` | 会话级性能 | `SELECT * FROM information_schema.session_perf` | | `REPLICA_STAT` | 复制统计 | `SELECT * FROM information_schema.replica_stat` | | `SCHEDULE_JOBS` | 定时任务列表 | `SELECT * FROM information_schema.schedule_jobs WHERE TABLE_SCHEMA='xxx'` | | `TTL_INFO` | TTL 配置信息 | `SELECT * FROM information_schema.ttl_info WHERE TABLE_SCHEMA='xxx'` | | `MODULE` | CN 各模块运行状态 | `SELECT * FROM information_schema.module` | --- ## Best Practices 1. **先窄后宽**:先用 WHERE 条件限定 schema/table,避免全量扫描 2. **关注关键列**:STATEMENTS_SUMMARY 重点看 SUM_RESPONSE_TIME_MS, COUNT, AVG_RESPONSE_TIME_MS, SUM_AFFECTED_ROWS 3. **对比基线**:诊断时对比历史数据(STATEMENTS_SUMMARY_HISTORY)判断是否异常 4. **组合使用**:长事务 + MDL 锁 + 物理连接 三个视图联合排查阻塞链 5. **避免高频查询**:部分视图(如 PHYSICAL_PROCESSLIST)涉及跨 DN 收集,在高负载时谨慎使用
在 GitHub 查看