From 8b32418e5d85f31561b25a3b4d9edd9774eff9a6 Mon Sep 17 00:00:00 2001 From: tangenta Date: Fri, 15 Nov 2024 11:19:22 +0800 Subject: [PATCH 01/11] docs: add documentation for ADMIN ALTER DDL JOBS command --- .../sql-statement-admin-alter-ddl.md | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 sql-statements/sql-statement-admin-alter-ddl.md diff --git a/sql-statements/sql-statement-admin-alter-ddl.md b/sql-statements/sql-statement-admin-alter-ddl.md new file mode 100644 index 000000000000..fb5da47fdb2b --- /dev/null +++ b/sql-statements/sql-statement-admin-alter-ddl.md @@ -0,0 +1,75 @@ +--- +title: ADMIN ALTER DDL JOBS +summary: TiDB 数据库中 ADMIN ALTER DDL JOBS 的使用概况。 +--- + +# ADMIN ALTER DDL JOBS + +`ADMIN ALTER DDL JOBS` 语句可用于修改单个当前正在运行的 DDL 作业相关的参数。例如: + +```sql +ADMIN ALTER DDL JOBS 101 THREAD = 8; +``` + +其中 `101` 表示 DDL 作业 ID,该 ID 可以通过查询 [`ADMIN SHOW DDL JOBS`](/sql-statements/sql-statement-admin-show-ddl.md) 获得。`THREAD` 表示当前 DDL 作业的并发度,其初始值由系统变量 [`tidb_ddl_reorg_worker_cnt`](/system-variables.md#tidb_ddl_reorg_worker_cnt) 设置。 + +目前支持 `ADMIN ALTER DDL JOBS` 的 DDL 作业类型包括:`ADD INDEX`、`MODIFY COLUMN` 和 `REORGANIZE PARTITION`。对于其他 DDL 作业类型,执行 `ADMIN ALTER DDL JOBS` 会报 `unsupported admin alter ddl jobs config` 的错误。 + +以下是不同 DDL 作业类型支持的各项参数,以及它们对应的系统变量: +- `ADD INDEX`: + - `THREAD`: 并发度,初始值由系统变量 `tidb_ddl_reorg_worker_cnt` 设置。 + - `BATCH_SIZE`: 批大小,初始值由系统变量 [`tidb_ddl_reorg_batch_size`](/system-variables.md#tidb_ddl_reorg_batch_size) 设置。 + - `MAX_WRITE_SPEED`: 向每个 TiKV 导入索引记录时的最大带宽限制,初始值由系统变量 [`tidb_ddl_reorg_max_write_speed`](/system-variables.md#tidb_ddl_reorg_max_write_speed) 设置。 +- `MODIFY COLUMN`: + - `THREAD`: 并发度,初始值由系统变量 `tidb_ddl_reorg_worker_cnt` 设置。 + - `BATCH_SIZE`: 批大小,初始值由系统变量 `tidb_ddl_reorg_batch_size` 设置。 +- `REORGANIZE PARTITION`: + - `THREAD`: 并发度,初始值由系统变量 `tidb_ddl_reorg_worker_cnt` 设置。 + - `BATCH_SIZE`: 批大小,初始值由系统变量 `tidb_ddl_reorg_batch_size` 设置。 + +`ADMIN ALTER DDL JOBS` 仅对正在运行的 DDL 作业生效。如果 DDL 作业不存在或者已经结束,执行该语句会报 `ddl job ? is not running` 的错误。 + +以下是部分语句示例: + +```sql +ADMIN ALTER DDL JOBS 101 THREAD = 8; +ADMIN ALTER DDL JOBS 101 BATCH_SIZE = 256; +ADMIN ALTER DDL JOBS 101 MAX_WRITE_SPEED = '200Mi'; +ADMIN ALTER DDL JOBS 101 THREAD = 8, BATCH_SIZE = 256; +``` + +要查看某个 DDL 作业当前的参数值,可以执行 `ADMIN SHOW DDL JOBS`,结果显示在 `COMMENTS` 列: + +```sql +mysql> admin show ddl jobs 1; ++--------+---------+------------+-----------+--------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+--------+-----------------------+ +| JOB_ID | DB_NAME | TABLE_NAME | JOB_TYPE | SCHEMA_STATE | SCHEMA_ID | TABLE_ID | ROW_COUNT | CREATE_TIME | START_TIME | END_TIME | STATE | COMMENTS | ++--------+---------+------------+-----------+--------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+--------+-----------------------+ +| 124 | test | t | add index | public | 2 | 122 | 3 | 2024-11-15 11:17:06.213000 | 2024-11-15 11:17:06.213000 | 2024-11-15 11:17:08.363000 | synced | ingest, DXF, thread=8 | ++--------+---------+------------+-----------+--------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+--------+-----------------------+ +1 row in set (0.01 sec) +``` + +## 语法图 + +```ebnf+diagram +AdminPauseDDLStmt ::= + 'ADMIN' 'ALTER' 'DDL' 'JOBS' Int64Num AlterJobOptionList + +AlterJobOptionList ::= + AlterJobOption ( ',' AlterJobOption )* + +AlterJobOption ::= + identifier "=" SignedLiteral +``` + +## MySQL 兼容性 + +`ADMIN ALTER DDL JOBS` 语句是 TiDB 对 MySQL 语法的扩展。 + +## 另请参阅 + +* [`ADMIN SHOW DDL [JOBS|QUERIES]`](/sql-statements/sql-statement-admin-show-ddl.md) +* [`ADMIN CANCEL DDL`](/sql-statements/sql-statement-admin-cancel-ddl.md) +* [`ADMIN PAUSE DDL`](/sql-statements/sql-statement-admin-pause-ddl.md) +* [`ADMIN RESUME DDL`](/sql-statements/sql-statement-admin-resume-ddl.md) From db58424e5e67f5bf13bd66ca040da5b67f2a1038 Mon Sep 17 00:00:00 2001 From: houfaxin Date: Fri, 15 Nov 2024 14:26:55 +0800 Subject: [PATCH 02/11] Update sql-statement-admin-alter-ddl.md --- .../sql-statement-admin-alter-ddl.md | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/sql-statements/sql-statement-admin-alter-ddl.md b/sql-statements/sql-statement-admin-alter-ddl.md index fb5da47fdb2b..6ba60128a8a1 100644 --- a/sql-statements/sql-statement-admin-alter-ddl.md +++ b/sql-statements/sql-statement-admin-alter-ddl.md @@ -1,31 +1,34 @@ --- title: ADMIN ALTER DDL JOBS -summary: TiDB 数据库中 ADMIN ALTER DDL JOBS 的使用概况。 +summary: TiDB 数据库中 `ADMIN ALTER DDL JOBS` 的使用概况。 --- # ADMIN ALTER DDL JOBS -`ADMIN ALTER DDL JOBS` 语句可用于修改单个当前正在运行的 DDL 作业相关的参数。例如: +`ADMIN ALTER DDL JOBS` 语句可用于修改单个正在运行的 DDL 作业相关的参数。例如: ```sql ADMIN ALTER DDL JOBS 101 THREAD = 8; ``` -其中 `101` 表示 DDL 作业 ID,该 ID 可以通过查询 [`ADMIN SHOW DDL JOBS`](/sql-statements/sql-statement-admin-show-ddl.md) 获得。`THREAD` 表示当前 DDL 作业的并发度,其初始值由系统变量 [`tidb_ddl_reorg_worker_cnt`](/system-variables.md#tidb_ddl_reorg_worker_cnt) 设置。 +其中 `101` 表示 DDL 作业的 ID,该 ID 可以通过查询 [`ADMIN SHOW DDL JOBS`](/sql-statements/sql-statement-admin-show-ddl.md) 获得。`THREAD` 表示当前 DDL 作业的并发度,其初始值由系统变量 [`tidb_ddl_reorg_worker_cnt`](/system-variables.md#tidb_ddl_reorg_worker_cnt) 设置。 目前支持 `ADMIN ALTER DDL JOBS` 的 DDL 作业类型包括:`ADD INDEX`、`MODIFY COLUMN` 和 `REORGANIZE PARTITION`。对于其他 DDL 作业类型,执行 `ADMIN ALTER DDL JOBS` 会报 `unsupported admin alter ddl jobs config` 的错误。 以下是不同 DDL 作业类型支持的各项参数,以及它们对应的系统变量: + - `ADD INDEX`: - - `THREAD`: 并发度,初始值由系统变量 `tidb_ddl_reorg_worker_cnt` 设置。 - - `BATCH_SIZE`: 批大小,初始值由系统变量 [`tidb_ddl_reorg_batch_size`](/system-variables.md#tidb_ddl_reorg_batch_size) 设置。 - - `MAX_WRITE_SPEED`: 向每个 TiKV 导入索引记录时的最大带宽限制,初始值由系统变量 [`tidb_ddl_reorg_max_write_speed`](/system-variables.md#tidb_ddl_reorg_max_write_speed) 设置。 + - `THREAD`: 并发度,初始值由系统变量 `tidb_ddl_reorg_worker_cnt` 设置。 + - `BATCH_SIZE`: 批大小,初始值由系统变量 [`tidb_ddl_reorg_batch_size`](/system-variables.md#tidb_ddl_reorg_batch_size) 设置。 + - `MAX_WRITE_SPEED`: 向每个 TiKV 导入索引记录时的最大带宽限制,初始值由系统变量 [`tidb_ddl_reorg_max_write_speed`](/system-variables.md#tidb_ddl_reorg_max_write_speed) 设置。 + - `MODIFY COLUMN`: - - `THREAD`: 并发度,初始值由系统变量 `tidb_ddl_reorg_worker_cnt` 设置。 - - `BATCH_SIZE`: 批大小,初始值由系统变量 `tidb_ddl_reorg_batch_size` 设置。 + - `THREAD`: 并发度,初始值由系统变量 `tidb_ddl_reorg_worker_cnt` 设置。 + - `BATCH_SIZE`: 批大小,初始值由系统变量 `tidb_ddl_reorg_batch_size` 设置。 + - `REORGANIZE PARTITION`: - - `THREAD`: 并发度,初始值由系统变量 `tidb_ddl_reorg_worker_cnt` 设置。 - - `BATCH_SIZE`: 批大小,初始值由系统变量 `tidb_ddl_reorg_batch_size` 设置。 + - `THREAD`: 并发度,初始值由系统变量 `tidb_ddl_reorg_worker_cnt` 设置。 + - `BATCH_SIZE`: 批大小,初始值由系统变量 `tidb_ddl_reorg_batch_size` 设置。 `ADMIN ALTER DDL JOBS` 仅对正在运行的 DDL 作业生效。如果 DDL 作业不存在或者已经结束,执行该语句会报 `ddl job ? is not running` 的错误。 From 8ba0b7e9e10d20289fdb856ec96cd6cb7548678a Mon Sep 17 00:00:00 2001 From: tangenta Date: Fri, 15 Nov 2024 14:28:37 +0800 Subject: [PATCH 03/11] Update sql-statements/sql-statement-admin-alter-ddl.md Co-authored-by: fzzf678 <108643977+fzzf678@users.noreply.github.com> --- sql-statements/sql-statement-admin-alter-ddl.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql-statements/sql-statement-admin-alter-ddl.md b/sql-statements/sql-statement-admin-alter-ddl.md index 6ba60128a8a1..01e59a0b7b16 100644 --- a/sql-statements/sql-statement-admin-alter-ddl.md +++ b/sql-statements/sql-statement-admin-alter-ddl.md @@ -13,7 +13,7 @@ ADMIN ALTER DDL JOBS 101 THREAD = 8; 其中 `101` 表示 DDL 作业的 ID,该 ID 可以通过查询 [`ADMIN SHOW DDL JOBS`](/sql-statements/sql-statement-admin-show-ddl.md) 获得。`THREAD` 表示当前 DDL 作业的并发度,其初始值由系统变量 [`tidb_ddl_reorg_worker_cnt`](/system-variables.md#tidb_ddl_reorg_worker_cnt) 设置。 -目前支持 `ADMIN ALTER DDL JOBS` 的 DDL 作业类型包括:`ADD INDEX`、`MODIFY COLUMN` 和 `REORGANIZE PARTITION`。对于其他 DDL 作业类型,执行 `ADMIN ALTER DDL JOBS` 会报 `unsupported admin alter ddl jobs config` 的错误。 +目前支持 `ADMIN ALTER DDL JOBS` 的 DDL 作业类型包括:`ADD INDEX`、`MODIFY COLUMN` 和 `REORGANIZE PARTITION`。对于其他 DDL 作业类型,执行 `ADMIN ALTER DDL JOBS` 会报 `unsupported DDL operation` 的错误。 以下是不同 DDL 作业类型支持的各项参数,以及它们对应的系统变量: From ee663319af163f92ebb96e772a8250ec110e94db Mon Sep 17 00:00:00 2001 From: tangenta Date: Fri, 15 Nov 2024 14:28:43 +0800 Subject: [PATCH 04/11] Update sql-statements/sql-statement-admin-alter-ddl.md Co-authored-by: fzzf678 <108643977+fzzf678@users.noreply.github.com> --- sql-statements/sql-statement-admin-alter-ddl.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql-statements/sql-statement-admin-alter-ddl.md b/sql-statements/sql-statement-admin-alter-ddl.md index 01e59a0b7b16..b77e7af9e153 100644 --- a/sql-statements/sql-statement-admin-alter-ddl.md +++ b/sql-statements/sql-statement-admin-alter-ddl.md @@ -37,7 +37,7 @@ ADMIN ALTER DDL JOBS 101 THREAD = 8; ```sql ADMIN ALTER DDL JOBS 101 THREAD = 8; ADMIN ALTER DDL JOBS 101 BATCH_SIZE = 256; -ADMIN ALTER DDL JOBS 101 MAX_WRITE_SPEED = '200Mi'; +ADMIN ALTER DDL JOBS 101 MAX_WRITE_SPEED = '200MiB'; ADMIN ALTER DDL JOBS 101 THREAD = 8, BATCH_SIZE = 256; ``` From 3187695717100212c319133366cb29fb5d809958 Mon Sep 17 00:00:00 2001 From: tangenta Date: Fri, 15 Nov 2024 14:33:50 +0800 Subject: [PATCH 05/11] docs: clarify parameter value range consistency with system variables in ADMIN ALTER DDL JOBS documentation --- sql-statements/sql-statement-admin-alter-ddl.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sql-statements/sql-statement-admin-alter-ddl.md b/sql-statements/sql-statement-admin-alter-ddl.md index b77e7af9e153..28b9d7104249 100644 --- a/sql-statements/sql-statement-admin-alter-ddl.md +++ b/sql-statements/sql-statement-admin-alter-ddl.md @@ -30,6 +30,8 @@ ADMIN ALTER DDL JOBS 101 THREAD = 8; - `THREAD`: 并发度,初始值由系统变量 `tidb_ddl_reorg_worker_cnt` 设置。 - `BATCH_SIZE`: 批大小,初始值由系统变量 `tidb_ddl_reorg_batch_size` 设置。 +参数的取值范围和系统变量的保持一致。 + `ADMIN ALTER DDL JOBS` 仅对正在运行的 DDL 作业生效。如果 DDL 作业不存在或者已经结束,执行该语句会报 `ddl job ? is not running` 的错误。 以下是部分语句示例: From c91a9da35f56c5583252c403453c09f9e70b1541 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 18 Nov 2024 15:55:54 +0800 Subject: [PATCH 06/11] Update sql-statements/sql-statement-admin-alter-ddl.md --- sql-statements/sql-statement-admin-alter-ddl.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql-statements/sql-statement-admin-alter-ddl.md b/sql-statements/sql-statement-admin-alter-ddl.md index 28b9d7104249..214e7998bf39 100644 --- a/sql-statements/sql-statement-admin-alter-ddl.md +++ b/sql-statements/sql-statement-admin-alter-ddl.md @@ -20,7 +20,7 @@ ADMIN ALTER DDL JOBS 101 THREAD = 8; - `ADD INDEX`: - `THREAD`: 并发度,初始值由系统变量 `tidb_ddl_reorg_worker_cnt` 设置。 - `BATCH_SIZE`: 批大小,初始值由系统变量 [`tidb_ddl_reorg_batch_size`](/system-variables.md#tidb_ddl_reorg_batch_size) 设置。 - - `MAX_WRITE_SPEED`: 向每个 TiKV 导入索引记录时的最大带宽限制,初始值由系统变量 [`tidb_ddl_reorg_max_write_speed`](/system-variables.md#tidb_ddl_reorg_max_write_speed) 设置。 + - `MAX_WRITE_SPEED`: 向每个 TiKV 导入索引记录时的最大带宽限制,初始值由系统变量 [`tidb_ddl_reorg_max_write_speed`](/system-variables.md#tidb_ddl_reorg_max_write_speed-从-v850-版本开始引入) 设置。 - `MODIFY COLUMN`: - `THREAD`: 并发度,初始值由系统变量 `tidb_ddl_reorg_worker_cnt` 设置。 From 540be02bdda6a7b6dfb9945ed4f2b73bc4e14e4f Mon Sep 17 00:00:00 2001 From: tangenta Date: Wed, 20 Nov 2024 15:37:42 +0800 Subject: [PATCH 07/11] Update sql-statements/sql-statement-admin-alter-ddl.md Co-authored-by: fzzf678 <108643977+fzzf678@users.noreply.github.com> --- sql-statements/sql-statement-admin-alter-ddl.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sql-statements/sql-statement-admin-alter-ddl.md b/sql-statements/sql-statement-admin-alter-ddl.md index 214e7998bf39..5f5468d74127 100644 --- a/sql-statements/sql-statement-admin-alter-ddl.md +++ b/sql-statements/sql-statement-admin-alter-ddl.md @@ -15,6 +15,7 @@ ADMIN ALTER DDL JOBS 101 THREAD = 8; 目前支持 `ADMIN ALTER DDL JOBS` 的 DDL 作业类型包括:`ADD INDEX`、`MODIFY COLUMN` 和 `REORGANIZE PARTITION`。对于其他 DDL 作业类型,执行 `ADMIN ALTER DDL JOBS` 会报 `unsupported DDL operation` 的错误。 +目前在一条 `ADMIN ALTER DDL JOBS` 中仅支持对单个 DDL 作业的参数进行调整,不支持同时调整多个 ID 对应的参数。 以下是不同 DDL 作业类型支持的各项参数,以及它们对应的系统变量: - `ADD INDEX`: From 32ad9c181769dc4d543ae42d9ae65a769ec0dfa7 Mon Sep 17 00:00:00 2001 From: tangenta Date: Fri, 22 Nov 2024 14:32:26 +0800 Subject: [PATCH 08/11] update admin show ddl jobs doc --- .../sql-statement-admin-show-ddl.md | 55 +++++++++++-------- 1 file changed, 32 insertions(+), 23 deletions(-) diff --git a/sql-statements/sql-statement-admin-show-ddl.md b/sql-statements/sql-statement-admin-show-ddl.md index 83c1fcdca0f5..fe6967031529 100644 --- a/sql-statements/sql-statement-admin-show-ddl.md +++ b/sql-statements/sql-statement-admin-show-ddl.md @@ -55,7 +55,7 @@ OWNER_ADDRESS: 0.0.0.0:4000 ### `ADMIN SHOW DDL JOBS` -`ADMIN SHOW DDL JOBS` 语句用于查看当前 DDL 作业队列中的所有结果(包括正在运行以及等待运行的任务)以及已执行完成的 DDL 作业队列中的最近十条结果。该语句的返回结果字段描述如下: +`ADMIN SHOW DDL JOBS` 语句用于查看当前 DDL 作业队列中的所有结果(包括正在运行以及等待运行的任务)以及已执行完成的 DDL 作业队列中的最近的结果。该语句的返回结果字段描述如下: - `JOB_ID`:每个 DDL 操作对应一个 DDL 任务,`JOB_ID` 全局唯一。 - `DB_NAME`:执行 DDL 操作的数据库的名称。 @@ -64,9 +64,7 @@ OWNER_ADDRESS: 0.0.0.0:4000 - `create schema`:[`CREATE SCHEMA`](/sql-statements/sql-statement-create-database.md) 操作。 - `create table`:[`CREATE TABLE`](/sql-statements/sql-statement-create-table.md) 操作。 - `create view`:[`CREATE VIEW`](/sql-statements/sql-statement-create-view.md) 操作。 - - `ingest`:通过 [`tidb_ddl_enable_fast_reorg`](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 配置的加速索引回填的 ingest 任务。 - - `txn`:基本的事务性回填。 - - `add index /* txn-merge */`:在回填完成时,将临时索引与原始索引合并的事务性回填。 + - `add index`: [`ADD INDEX`](/sql-statements/sql-statement-add-index.md) 操作。 - `SCHEMA_STATE`:DDL 所操作的 schema 对象的当前状态。如果 `JOB_TYPE` 是 `ADD INDEX`,则为索引的状态;如果是 `ADD COLUMN`,则为列的状态;如果是 `CREATE TABLE`,则为表的状态。常见的状态有以下几种: - `none`:表示不存在。一般 `DROP` 操作或者 `CREATE` 操作失败回滚后,会变为 `none` 状态。 - `delete only`、`write only`、`delete reorganization`、`write reorganization`:这四种状态是中间状态,具体含义请参考 [TiDB 中在线 DDL 异步变更的原理](/ddl-introduction.md#tidb-在线-ddl-异步变更的原理)。由于中间状态转换很快,一般操作中看不到这几种状态,只有执行 `ADD INDEX` 操作时能看到处于 `write reorganization` 状态,表示正在添加索引数据。 @@ -89,6 +87,15 @@ OWNER_ADDRESS: 0.0.0.0:4000 - `pausing`:表示正在暂停该操作。 - `paused`:表示 DDL 已被暂停运行。这个状态只有在用 [`ADMIN PAUSED DDL JOBS`](/sql-statements/sql-statement-admin-pause-ddl.md) 命令暂停 DDL 任务时才会出现。可以通过 [`ADMIN RESUME DDL JOBS`](/sql-statements/sql-statement-admin-resume-ddl.md) 命令进行恢复运行。 - `done`:表示该操作在 TiDB owner 节点已经执行成功,但其他 TiDB 节点还没有同步该 DDL 任务所执行的变更。 +- `COMMENTS`:包含其他辅助诊断用的信息。 + - `ingest`:通过 [`tidb_ddl_enable_fast_reorg`](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 配置的加速索引回填的 ingest 任务。 + - `txn`:基本的事务性回填。 + - `txn-merge`:在回填完成时,将临时索引与原始索引合并的事务性回填。 + - `DXF`:通过 [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) 配置的用分布式框架执行的任务。 + - `service_scope`:通过 [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) 配置的 TiDB 节点的服务范围。 + - `thread`:回填型任务的并发度,可通过 `tidb_ddl_reorg_worker_cnt` 设置初始值。支持 `ADMIN ALTER DDL JOBS` 动态修改。 + - `batch_size`:回填性任务的批大小,可通过 `tidb_ddl_reorg_batch_size` 设置初始值。支持 `ADMIN ALTER DDL JOBS` 动态修改。 + - `max_write_speed`:ingest 任务导入过程中的流量控制,可通过 `tidb_ddl_reorg_max_write_speed` 设置初始值。支持 `ADMIN ALTER DDL JOBS` 动态修改。 示例如下: @@ -97,30 +104,32 @@ ADMIN SHOW DDL JOBS; ``` ```sql -+--------+---------+--------------------+--------------+----------------------+-----------+----------+-----------+-----------------------------------------------------------------+---------+ -| JOB_ID | DB_NAME | TABLE_NAME | JOB_TYPE | SCHEMA_STATE | SCHEMA_ID | TABLE_ID | ROW_COUNT | CREATE_TIME | START_TIME | END_TIME | STATE | -+--------+---------+--------------------+--------------+----------------------+-----------+----------+-----------+---------------------+-------------------------------------------+---------+ -| 59 | test | t1 | add index | write reorganization | 1 | 55 | 88576 | 2020-08-17 07:51:58 | 2020-08-17 07:51:58 | NULL | running | -| 60 | test | t2 | add index | none | 1 | 57 | 0 | 2020-08-17 07:51:59 | 2020-08-17 07:51:59 | NULL | none | -| 58 | test | t2 | create table | public | 1 | 57 | 0 | 2020-08-17 07:41:28 | 2020-08-17 07:41:28 | 2020-08-17 07:41:28 | synced | -| 56 | test | t1 | create table | public | 1 | 55 | 0 | 2020-08-17 07:41:02 | 2020-08-17 07:41:02 | 2020-08-17 07:41:02 | synced | -| 54 | test | t1 | drop table | none | 1 | 50 | 0 | 2020-08-17 07:41:02 | 2020-08-17 07:41:02 | 2020-08-17 07:41:02 | synced | -| 53 | test | t1 | drop index | none | 1 | 50 | 0 | 2020-08-17 07:35:44 | 2020-08-17 07:35:44 | 2020-08-17 07:35:44 | synced | -| 52 | test | t1 | add index | public | 1 | 50 | 451010 | 2020-08-17 07:34:43 | 2020-08-17 07:34:43 | 2020-08-17 07:35:16 | synced | -| 51 | test | t1 | create table | public | 1 | 50 | 0 | 2020-08-17 07:34:02 | 2020-08-17 07:34:02 | 2020-08-17 07:34:02 | synced | -| 49 | test | t1 | drop table | none | 1 | 47 | 0 | 2020-08-17 07:34:02 | 2020-08-17 07:34:02 | 2020-08-17 07:34:02 | synced | -| 48 | test | t1 | create table | public | 1 | 47 | 0 | 2020-08-17 07:33:37 | 2020-08-17 07:33:37 | 2020-08-17 07:33:37 | synced | -| 46 | mysql | stats_extended | create table | public | 3 | 45 | 0 | 2020-08-17 06:42:38 | 2020-08-17 06:42:38 | 2020-08-17 06:42:38 | synced | -| 44 | mysql | opt_rule_blacklist | create table | public | 3 | 43 | 0 | 2020-08-17 06:42:38 | 2020-08-17 06:42:38 | 2020-08-17 06:42:38 | synced | -+--------+---------+--------------------+--------------+----------------------+-----------+----------+-----------+---------------------+---------------------+-------------------------------+ -12 rows in set (0.00 sec) ++--------+---------+------------+---------------------------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+----------+-------------+ +| JOB_ID | DB_NAME | TABLE_NAME | JOB_TYPE | SCHEMA_STATE | SCHEMA_ID | TABLE_ID | ROW_COUNT | CREATE_TIME | START_TIME | END_TIME | STATE | COMMENTS | ++--------+---------+------------+---------------------------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+----------+-------------+ +| 565 | test | sbtest1 | add index | write reorganization | 554 | 556 | 0 | 2024-11-22 12:39:25.475000 | 2024-11-22 12:39:25.524000 | NULL | running | ingest, DXF | +| 566 | test | sbtest1 | add index | none | 554 | 556 | 0 | 2024-11-22 12:39:26.425000 | NULL | NULL | queueing | | +| 564 | test | sbtest1 | alter table multi-schema change | none | 554 | 556 | 0 | 2024-11-22 12:39:02.925000 | 2024-11-22 12:39:02.925000 | 2024-11-22 12:39:03.275000 | synced | | +| 564 | test | sbtest1 | drop index /* subjob */ | none | 554 | 556 | 0 | 2024-11-22 12:39:02.925000 | 2024-11-22 12:39:02.925000 | 2024-11-22 12:39:03.275000 | done | | +| 564 | test | sbtest1 | drop index /* subjob */ | none | 554 | 556 | 0 | 2024-11-22 12:39:02.925000 | 2024-11-22 12:39:02.975000 | 2024-11-22 12:39:03.275000 | done | | +| 563 | test | sbtest1 | modify column | public | 554 | 556 | 0 | 2024-11-22 12:38:35.624000 | 2024-11-22 12:38:35.624000 | 2024-11-22 12:38:35.674000 | synced | | +| 562 | test | sbtest1 | add index | public | 554 | 556 | 1580334 | 2024-11-22 12:36:58.471000 | 2024-11-22 12:37:05.271000 | 2024-11-22 12:37:13.374000 | synced | ingest, DXF | +| 561 | test | sbtest1 | add index | public | 554 | 556 | 1580334 | 2024-11-22 12:36:57.771000 | 2024-11-22 12:36:57.771000 | 2024-11-22 12:37:04.671000 | synced | ingest, DXF | +| 560 | test | sbtest1 | add index | public | 554 | 556 | 1580334 | 2024-11-22 12:34:53.314000 | 2024-11-22 12:34:53.314000 | 2024-11-22 12:34:57.114000 | synced | ingest | +| 559 | test | sbtest1 | drop index | none | 554 | 556 | 0 | 2024-11-22 12:34:43.565000 | 2024-11-22 12:34:43.565000 | 2024-11-22 12:34:43.764000 | synced | | +| 558 | test | sbtest1 | add index | public | 554 | 556 | 1580334 | 2024-11-22 12:34:06.215000 | 2024-11-22 12:34:06.215000 | 2024-11-22 12:34:14.314000 | synced | ingest, DXF | +| 557 | test | sbtest1 | create table | public | 554 | 556 | 0 | 2024-11-22 12:32:09.515000 | 2024-11-22 12:32:09.915000 | 2024-11-22 12:32:10.015000 | synced | | +| 555 | test | | create schema | public | 554 | 0 | 0 | 2024-11-22 12:31:51.215000 | 2024-11-22 12:31:51.264000 | 2024-11-22 12:31:51.264000 | synced | | +| 553 | test | | drop schema | none | 2 | 0 | 0 | 2024-11-22 12:31:48.615000 | 2024-11-22 12:31:48.615000 | 2024-11-22 12:31:48.865000 | synced | | ++--------+---------+------------+---------------------------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+----------+-------------+ +14 rows in set (0.00 sec) ``` 由上述 `ADMIN` 查询结果可知: -- `job_id` 为 59 的 DDL 作业当前正在进行中(`STATE` 列显示为 `running`)。`SCHEMA_STATE` 列显示了表当前处于 `write reorganization` 状态,一旦任务完成,将更改为 `public`,以便用户会话可以公开观察到状态变更。`end_time` 列显示为 `NULL`,表明当前作业的完成时间未知。 +- `job_id` 为 565 的 DDL 作业当前正在进行中(`STATE` 列显示为 `running`)。`SCHEMA_STATE` 列显示了表当前处于 `write reorganization` 状态,一旦任务完成,将更改为 `public`,以便用户会话可以公开观察到状态变更。`end_time` 列显示为 `NULL`,表明当前作业的完成时间未知。 -- `job_id` 为 60 的 `JOB_TYPE` 显示为 `add index`,表明正在排队等待 `job_id` 为 59 的作业完成。当作业 59 完成时,作业 60 的 `STATE` 将更改为 `running`。 +- `job_id` 为 566 的 `STATE` 显示为 `queueing`,表明它正在排队等待。当作业 565 完成后,作业 566 开始执行时,作业 566 的 `STATE` 将更改为 `running`。 - 对于破坏性的更改(例如删除索引或删除表),当作业完成时,`SCHEMA_STATE` 将变为 `none`。对于附加更改,`SCHEMA_STATE` 将变为 `public`。 From 6d99637c850a2ba52ccb6d92708873786ad58a3d Mon Sep 17 00:00:00 2001 From: houfaxin Date: Fri, 22 Nov 2024 14:59:07 +0800 Subject: [PATCH 09/11] Update TOC.md --- TOC.md | 1 + 1 file changed, 1 insertion(+) diff --git a/TOC.md b/TOC.md index f68d31a486b9..96f4d57c7381 100644 --- a/TOC.md +++ b/TOC.md @@ -736,6 +736,7 @@ - SQL 语句 - [概览](/sql-statements/sql-statement-overview.md) - [`ADMIN`](/sql-statements/sql-statement-admin.md) + - [`ADMIN ALTER DDL JOBS`](sql-statements/sql-statement-admin-alter-ddl.md) - [`ADMIN CANCEL DDL`](/sql-statements/sql-statement-admin-cancel-ddl.md) - [`ADMIN CHECKSUM TABLE`](/sql-statements/sql-statement-admin-checksum-table.md) - [`ADMIN CHECK [TABLE|INDEX]`](/sql-statements/sql-statement-admin-check-table-index.md) From 42d1e0539e66c5055a3c6412575911aac17c2ec2 Mon Sep 17 00:00:00 2001 From: tangenta Date: Mon, 25 Nov 2024 10:54:41 +0800 Subject: [PATCH 10/11] address comments --- sql-statements/sql-statement-admin-alter-ddl.md | 3 ++- sql-statements/sql-statement-admin-show-ddl.md | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/sql-statements/sql-statement-admin-alter-ddl.md b/sql-statements/sql-statement-admin-alter-ddl.md index 5f5468d74127..eba9d5728220 100644 --- a/sql-statements/sql-statement-admin-alter-ddl.md +++ b/sql-statements/sql-statement-admin-alter-ddl.md @@ -16,6 +16,7 @@ ADMIN ALTER DDL JOBS 101 THREAD = 8; 目前支持 `ADMIN ALTER DDL JOBS` 的 DDL 作业类型包括:`ADD INDEX`、`MODIFY COLUMN` 和 `REORGANIZE PARTITION`。对于其他 DDL 作业类型,执行 `ADMIN ALTER DDL JOBS` 会报 `unsupported DDL operation` 的错误。 目前在一条 `ADMIN ALTER DDL JOBS` 中仅支持对单个 DDL 作业的参数进行调整,不支持同时调整多个 ID 对应的参数。 + 以下是不同 DDL 作业类型支持的各项参数,以及它们对应的系统变量: - `ADD INDEX`: @@ -33,7 +34,7 @@ ADMIN ALTER DDL JOBS 101 THREAD = 8; 参数的取值范围和系统变量的保持一致。 -`ADMIN ALTER DDL JOBS` 仅对正在运行的 DDL 作业生效。如果 DDL 作业不存在或者已经结束,执行该语句会报 `ddl job ? is not running` 的错误。 +`ADMIN ALTER DDL JOBS` 仅对正在运行的 DDL 作业生效。如果 DDL 作业不存在或者已经结束,执行该语句会报 `ddl job is not running` 的错误。 以下是部分语句示例: diff --git a/sql-statements/sql-statement-admin-show-ddl.md b/sql-statements/sql-statement-admin-show-ddl.md index fe6967031529..d18120a80e18 100644 --- a/sql-statements/sql-statement-admin-show-ddl.md +++ b/sql-statements/sql-statement-admin-show-ddl.md @@ -93,8 +93,8 @@ OWNER_ADDRESS: 0.0.0.0:4000 - `txn-merge`:在回填完成时,将临时索引与原始索引合并的事务性回填。 - `DXF`:通过 [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) 配置的用分布式框架执行的任务。 - `service_scope`:通过 [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) 配置的 TiDB 节点的服务范围。 - - `thread`:回填型任务的并发度,可通过 `tidb_ddl_reorg_worker_cnt` 设置初始值。支持 `ADMIN ALTER DDL JOBS` 动态修改。 - - `batch_size`:回填性任务的批大小,可通过 `tidb_ddl_reorg_batch_size` 设置初始值。支持 `ADMIN ALTER DDL JOBS` 动态修改。 + - `thread`:回填任务的并发度,可通过 `tidb_ddl_reorg_worker_cnt` 设置初始值。支持 [`ADMIN ALTER DDL JOBS`](sql-statements/sql-statement-admin-alter-ddl.md) 动态修改。 + - `batch_size`:回填任务的批大小,可通过 `tidb_ddl_reorg_batch_size` 设置初始值。支持 `ADMIN ALTER DDL JOBS` 动态修改。 - `max_write_speed`:ingest 任务导入过程中的流量控制,可通过 `tidb_ddl_reorg_max_write_speed` 设置初始值。支持 `ADMIN ALTER DDL JOBS` 动态修改。 示例如下: From c0f548f0675d01fac4ff405c93dfb892ab649b8a Mon Sep 17 00:00:00 2001 From: tangenta Date: Mon, 25 Nov 2024 10:55:31 +0800 Subject: [PATCH 11/11] Update sql-statements/sql-statement-admin-alter-ddl.md Co-authored-by: xixirangrang --- sql-statements/sql-statement-admin-alter-ddl.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sql-statements/sql-statement-admin-alter-ddl.md b/sql-statements/sql-statement-admin-alter-ddl.md index eba9d5728220..649b33db13f2 100644 --- a/sql-statements/sql-statement-admin-alter-ddl.md +++ b/sql-statements/sql-statement-admin-alter-ddl.md @@ -11,7 +11,10 @@ summary: TiDB 数据库中 `ADMIN ALTER DDL JOBS` 的使用概况。 ADMIN ALTER DDL JOBS 101 THREAD = 8; ``` -其中 `101` 表示 DDL 作业的 ID,该 ID 可以通过查询 [`ADMIN SHOW DDL JOBS`](/sql-statements/sql-statement-admin-show-ddl.md) 获得。`THREAD` 表示当前 DDL 作业的并发度,其初始值由系统变量 [`tidb_ddl_reorg_worker_cnt`](/system-variables.md#tidb_ddl_reorg_worker_cnt) 设置。 +其中: + + - `101`:表示 DDL 作业的 ID,该 ID 可以通过查询 [`ADMIN SHOW DDL JOBS`](/sql-statements/sql-statement-admin-show-ddl.md) 获得。 + - `THREAD`:表示当前 DDL 作业的并发度,其初始值由系统变量 [`tidb_ddl_reorg_worker_cnt`](/system-variables.md#tidb_ddl_reorg_worker_cnt) 设置。 目前支持 `ADMIN ALTER DDL JOBS` 的 DDL 作业类型包括:`ADD INDEX`、`MODIFY COLUMN` 和 `REORGANIZE PARTITION`。对于其他 DDL 作业类型,执行 `ADMIN ALTER DDL JOBS` 会报 `unsupported DDL operation` 的错误。