TiDB-Server 常用 API
访问 tidb-server_ip:status_port
将呈现出各种 TiDB 服务器的 API,其中包含许多实用功能。本文将介绍这些 API 的功能和用法。
1.Status
显示 TiDB 连接数、版本和 git_hash 信息
tidb-server_ip:status_port/status
2. Metrics
显示 tidb 所有的监控指标信息
tidb-server_ip:status_port/metrics
3.StatsDump
获取指定表的统计信息
直接访问会返回表不存在,原因是他的语法为 /stats/dump/{db}/{table}
e.g: tidb-server_ip:status_port/stats/dump/tpcc/item
4.StatsHistoryDump
获取指定表的历史统计信息
直接访问返回
正确的语法为
/stats/dump/{db}/{table}/{yyyy-MM-dd HH:mm:ss}
/stats/dump/{db}/{table}/{yyyyMMddHHmmss}
e.g: tidb-server_ip:status_port/stats/dump/tpcc/item/2023-12-19 10:00:39
5.PlanReplayerDump
保存和恢复集群现场信息
PLAN REPLAYER DUMP EXPLAIN [ANALYZE] sql-statement;
TiDB 根据 sql-statement 整理出以下集群现场信息:
TiDB 版本信息
TiDB 配置信息
TiDB Session 系统变量
TiDB 执行计划绑定信息(SQL Binding)
sql-statement 中所包含的表结构
sql-statement 中所包含表的统计信息
EXPLAIN [ANALYZE] sql-statement 的结果
PLAN REPLAYER 不会导出表中数据
tidb_last_plan_replayer_token 这个会话变量可以获取上一次 PLAN REPLAYER dump 执行的结果。(v6.5 以上版本有此变量)
ZIP 文件最多会在 TiDB 集群中保存一个小时,超时后 TiDB 会将其删除。
plan replayer dump explain 'tidbsqls.txt';
多条 SQL 语句可以写在文件中以 ; 进行分隔。
通过 http 下载文件
http://${tidb-server-ip}:${tidb-server-status-port}/plan_replayer/dump/${file_token}
将导出的文件导入的另一个集群,导入完毕后,该 TiDB 集群就载入了所需要的表结构、统计信息等其他影响构造 Plan 所需要的信息。
PLAN REPLAYER LOAD 'plan_replayer.zip';
6.Settings
tidb-server 的所有配置信息
tidb-server_ip:status_port/settings
7.BinlogRecover
恢复 Pump 后恢复 binlog 写入。
返回值:
超时,返回状态码:400,消息:timeout
如果正常返回,状态码:200
默认情况下,API 将在等待所有跳过的二进制日志事务提交后返回。如果此值大于 0,则表示需要等到它们提交完毕。
消息示例:false 表示当前 binlog 不处于跳过状态,否则为跳过状态:表示当前处于跳过状态的事务数。
8.Schema
获取集群所有 databases 的详细信息
tidb-server_ip:status_port/schema
tidb-server_ip:status_port/schema/{db}
查看指定 database 的详细信息,如该 db 下所有的 table 详细信息。
通过 table_name 来获取 table 的详细信息
tidb-server_ip:status_port/schema/{db}/{table}
可以通过 tableID 获取 schema 信息(tableID 是 Table 在 TiDB 中的唯一标识符)
tidb-server_ip:status_port/schema?table_id={tableID}
通过 tableID 获取 db_info、table_info 和 tidb info schema version
tidb-server_ip:status_port/db-table/{tableID}
与上面的获取 table 的详细信息相比多了 db_info 和 schema version 信息。
9.Schema Storage
获取集群所有 table 的信息
tidb-server_ip:status_port/schema_storage
也可以指定获取指定 database 或者 table 的信息
获取 db 下所有 table 的信息
tidb-server_ip:status_port/schema_storage/{db}
获取指定 table 的信息
tidb-server_ip:status_port/schema_storage/{db}/{table}
10.DDL_History
获取所有 TiDB DDL 历史记录
tidb-server_ip:status_port/ddl/history
11.DDL_Owner_Resign
辞去 ddl owner 的职务,让 tidb 开始新的 ddl owner 选举
curl -X POST http://{TiDBIP}:10080/ddl/owner/resign
注意:如果你请求的 TiDB 不是 ddl owner,则响应为 This node is not a ddl owner, can’t be resigned.
12.Info
tidb-server_ip:status_port/info
获取 tidb-server 的相关信息
13.InfoALL
tidb-server_ip:status_port/info/all
获取 tidb 集群所有 tidb-server 的信息
14.RegionsMeta
tidb-server_ip:status_port/regions/meta
获取所有 region 的元数据信息
15.RegionHot
tidb-server_ip:status_port/regions/hot
获取热点 region 的表 / 索引信息
16.Trace Viewer
tidb-server_ip:status_port/web/trace
以图形界面的方式显示执行 sql 的详细信息,参考 TRACE | PingCAP 文档中心 使用。
这个我实验无法显示出图形信息 https://asktug.com/t/topic/1014681,尝试了 6.1、6.5、7.1 环境都无法显示出来。
17.Debug
tidb-server_ip:status_port/debug/pprof/
tidb debug 信息,例如 heap、goroutine、trace 等常用信息。
结尾
以上 API 在一些运维场景中仍然相当实用。通过在运维中灵活运用,可以使运维工作更加便捷,增强系统管理的灵活性。尤其是在运维开发的场景中熟练使用,有助于高效地进行开发工作。
作者介绍:Daniel-W, 来自神州数码钛合金战队,是一支致力于为企业提供分布式数据库 TiDB 整体解决方案的专业技术团队。团队成员拥有丰富的数据库从业背景,全部拥有 TiDB 高级资格证书,并活跃于 TiDB 开源社区,是官方认证合作伙伴。目前已为 10+ 客户提供了专业的 TiDB 交付服务,涵盖金融、证券、物流、电力、政府、零售等重点行业。
版权声明: 本文为 InfoQ 作者【TiDB 社区干货传送门】的原创文章。
原文链接:【http://xie.infoq.cn/article/0075996e81fa1f0f443195f87】。文章转载请联系作者。
评论