单点:
show full processlist
集群:
select * from information_schema.cluster_processlist
KILL TIDB 2;
- 按照设计,
KILL TIDB
语句默认与 MySQL 不兼容。负载均衡器后面通常放有多个 TiDB 服务器,这种默认不兼容有助于防止在错误的 TiDB 服务器上终止连接,kill tidb要去到对应的tidb服务器上操作,kill tidb query和kill tidb connection来指定杀掉查询还是杀掉链接 KILL TIDB
语句是 TiDB 的扩展语法。如果正尝试终止的会话位于同一个 TiDB 服务器上,可在配置文件里设置 compatible-kill-query = true。
当前正在运行的 DDL 作业:
ADMIN SHOW DDL;
查看当前 DDL 作业队列中的所有结果(包括正在运行以及等待运行的任务)以及已执行完成的 DDL 作业队列中的最近十条结果
ADMIN SHOW DDL JOBS;
若要限制表中显示的行数,可以指定 NUM
和 WHERE
条件:
ADMIN SHOW DDL JOBS [NUM] [WHERE where_condition];
NUM
:用于查看已经执行完成的 DDL 作业队列中最近NUM
条结果;未指定时,默认值为 10。WHERE
:WHERE
子句,用于添加过滤条件
ADMIN SHOW DDL JOB QUERIES
语句用于查看 job_id
对应的 DDL 任务的原始 SQL 语句
ADMIN SHOW DDL JOBS;
ADMIN SHOW DDL JOB QUERIES 51;
JOB_ID
:每个 DDL 操作对应一个 DDL 作业,JOB_ID
全局唯一。DB_NAME
:执行 DDL 操作的数据库的名称。TABLE_NAME
:执行 DDL 操作的表的名称。JOB_TYPE
:DDL 操作的类型。SCHEMA_STATE
:schema 的当前状态。如果JOB_TYPE
是add index
,则为 index 的状态;如果是add column
,则为 column 的状态,如果是create table
,则为 table 的状态。常见的状态有以下几种:none
:表示不存在。一般drop
操作或者create
操作失败回滚后,会变为none
状态。delete only
、write only
、delete reorganization
、write reorganization
:这四种状态是中间状态。由于中间状态转换很快,一般操作中看不到这几种状态,只有执行add index
操作时能看到处于write reorganization
状态,表示正在添加索引数据。public
:表示存在且可用。一般create table
和add index/column
等操作完成后,会变为public
状态,表示新建的 table/column/index 可以正常读写了。
SCHEMA_ID
:执行 DDL 操作的数据库的 ID。TABLE_ID
:执行 DDL 操作的表的 ID。ROW_COUNT
:执行add index
操作时,当前已经添加完成的数据行数。START_TIME
:DDL 操作的开始时间。END_TIME
:DDL 操作的结束时间。STATE
:DDL 操作的状态。常见的状态有以下几种:none
:表示该操作任务已经进入 DDL 作业队列中,但尚未执行,因为还在排队等待前面的 DDL 作业完成。另一种原因可能是执行drop
操作后,会变为none
状态,但是很快会更新为synced
状态,表示所有 TiDB 实例都已经同步到该状态。running
:表示该操作正在执行。synced
:表示该操作已经执行成功,且所有 TiDB 实例都已经同步该状态。rollback done
:表示该操作执行失败,回滚完成。rollingback
:表示该操作执行失败,正在回滚。cancelling
:表示正在取消该操作。这个状态只有在用ADMIN CANCEL DDL JOBS
命令取消 DDL 作业时才会出现。
取消正在执行的DDL操作
ADMIN CANCEL DDL JOBS job_id [, job_id] ...;