From 9f6808a1adde3b238dc5020af1d20e01fad54612 Mon Sep 17 00:00:00 2001 From: tangenta Date: Fri, 15 Nov 2024 11:19:22 +0800 Subject: [PATCH 01/22] 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 467c683b4b6256de70f31a3aab7bd80416992ab8 Mon Sep 17 00:00:00 2001 From: houfaxin Date: Fri, 15 Nov 2024 14:26:55 +0800 Subject: [PATCH 02/22] 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 8b0a66eb070586abe5ddc730e8af3aa63f9f14f1 Mon Sep 17 00:00:00 2001 From: tangenta Date: Fri, 15 Nov 2024 14:28:37 +0800 Subject: [PATCH 03/22] 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 25d36f54e1594461df71337e5ace7ccfb14c413f Mon Sep 17 00:00:00 2001 From: tangenta Date: Fri, 15 Nov 2024 14:28:43 +0800 Subject: [PATCH 04/22] 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 3f48950a9f1b6d0373015920fa4ee456922a0698 Mon Sep 17 00:00:00 2001 From: tangenta Date: Fri, 15 Nov 2024 14:33:50 +0800 Subject: [PATCH 05/22] 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 607586967e24d976d2b76930c558ebe466ce1d40 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 18 Nov 2024 15:55:54 +0800 Subject: [PATCH 06/22] 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 f131a6cda206b1a74b8bd7293df1145237607a9a Mon Sep 17 00:00:00 2001 From: tangenta Date: Wed, 20 Nov 2024 15:37:42 +0800 Subject: [PATCH 07/22] 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 7fc9c1e942def06e6621ed42101eabdd61b768ff Mon Sep 17 00:00:00 2001 From: tangenta Date: Fri, 22 Nov 2024 14:32:26 +0800 Subject: [PATCH 08/22] 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 76c7e6b33a496f6d15ed85f02c90d79fbee1fcae Mon Sep 17 00:00:00 2001 From: houfaxin Date: Fri, 22 Nov 2024 14:59:07 +0800 Subject: [PATCH 09/22] Update TOC.md --- TOC.md | 1 + 1 file changed, 1 insertion(+) diff --git a/TOC.md b/TOC.md index 9e288abf7d06..1208d346301b 100644 --- a/TOC.md +++ b/TOC.md @@ -735,6 +735,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 ffc20216e04b1c1d330cfbcb66913e9636eb47f8 Mon Sep 17 00:00:00 2001 From: tangenta Date: Mon, 25 Nov 2024 10:54:41 +0800 Subject: [PATCH 10/22] 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 b61baceb32cfbc3465ab76fd265193b0db27412d Mon Sep 17 00:00:00 2001 From: tangenta Date: Mon, 25 Nov 2024 10:55:31 +0800 Subject: [PATCH 11/22] 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` 的错误。 From 9ad40348466e78b6fe4b0bf46b037401b098b255 Mon Sep 17 00:00:00 2001 From: tangenta Date: Mon, 25 Nov 2024 14:11:59 +0800 Subject: [PATCH 12/22] 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 649b33db13f2..2cfe0a16a9b3 100644 --- a/sql-statements/sql-statement-admin-alter-ddl.md +++ b/sql-statements/sql-statement-admin-alter-ddl.md @@ -63,7 +63,7 @@ mysql> admin show ddl jobs 1; ## 语法图 ```ebnf+diagram -AdminPauseDDLStmt ::= +AdminAlterDDLStmt ::= 'ADMIN' 'ALTER' 'DDL' 'JOBS' Int64Num AlterJobOptionList AlterJobOptionList ::= From 75174f01df911c170b468e14c1bf2bceac0bd5bb Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 28 Nov 2024 22:00:06 +0800 Subject: [PATCH 13/22] Apply suggestions from code review --- TOC.md | 2 +- sql-statements/sql-statement-admin-show-ddl.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/TOC.md b/TOC.md index 1208d346301b..ed58f67f1945 100644 --- a/TOC.md +++ b/TOC.md @@ -735,7 +735,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 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) diff --git a/sql-statements/sql-statement-admin-show-ddl.md b/sql-statements/sql-statement-admin-show-ddl.md index d18120a80e18..61aa94715e87 100644 --- a/sql-statements/sql-statement-admin-show-ddl.md +++ b/sql-statements/sql-statement-admin-show-ddl.md @@ -93,7 +93,7 @@ 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`](sql-statements/sql-statement-admin-alter-ddl.md) 动态修改。 + - `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 56e4da7d46ac4f8f746849ba833b7bc8d06fecc5 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 28 Nov 2024 22:03:41 +0800 Subject: [PATCH 14/22] Update sql-statements/sql-statement-admin-alter-ddl.md --- sql-statements/sql-statement-admin-alter-ddl.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql-statements/sql-statement-admin-alter-ddl.md b/sql-statements/sql-statement-admin-alter-ddl.md index 2cfe0a16a9b3..03cdd234ee8f 100644 --- a/sql-statements/sql-statement-admin-alter-ddl.md +++ b/sql-statements/sql-statement-admin-alter-ddl.md @@ -13,8 +13,8 @@ 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` 的错误。 From 5ca29fa1cc05a290511f5b1a8321c8129d9777c6 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 29 Nov 2024 10:24:53 +0800 Subject: [PATCH 15/22] Apply suggestions from code review --- sql-statements/sql-statement-admin-show-ddl.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql-statements/sql-statement-admin-show-ddl.md b/sql-statements/sql-statement-admin-show-ddl.md index 61aa94715e87..a78c95848394 100644 --- a/sql-statements/sql-statement-admin-show-ddl.md +++ b/sql-statements/sql-statement-admin-show-ddl.md @@ -91,7 +91,7 @@ OWNER_ADDRESS: 0.0.0.0:4000 - `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-版本开始引入) 配置的用分布式框架执行的任务。 + - `DXF`:通过 [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) 配置的用分布式执行框架 (Distributed eXecution Framework, DXF) 执行的任务。 - `service_scope`:通过 [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) 配置的 TiDB 节点的服务范围。 - `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` 动态修改。 From b15a9ad26657ab6d82b7f9f86c79f565a4a7c5b5 Mon Sep 17 00:00:00 2001 From: tangenta Date: Sat, 30 Nov 2024 12:35:12 +0800 Subject: [PATCH 16/22] Update sql-statements/sql-statement-admin-show-ddl.md Co-authored-by: Frank945946 <108602632+Frank945946@users.noreply.github.com> --- sql-statements/sql-statement-admin-show-ddl.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql-statements/sql-statement-admin-show-ddl.md b/sql-statements/sql-statement-admin-show-ddl.md index a78c95848394..f7ac1c03d4db 100644 --- a/sql-statements/sql-statement-admin-show-ddl.md +++ b/sql-statements/sql-statement-admin-show-ddl.md @@ -89,7 +89,7 @@ OWNER_ADDRESS: 0.0.0.0:4000 - `done`:表示该操作在 TiDB owner 节点已经执行成功,但其他 TiDB 节点还没有同步该 DDL 任务所执行的变更。 - `COMMENTS`:包含其他辅助诊断用的信息。 - `ingest`:通过 [`tidb_ddl_enable_fast_reorg`](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 配置的加速索引回填的 ingest 任务。 - - `txn`:基本的事务性回填。 + - `txn`:关闭[`tidb_ddl_enable_fast_reorg`](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 后,基于事务方式的索引回填。 - `txn-merge`:在回填完成时,将临时索引与原始索引合并的事务性回填。 - `DXF`:通过 [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) 配置的用分布式执行框架 (Distributed eXecution Framework, DXF) 执行的任务。 - `service_scope`:通过 [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) 配置的 TiDB 节点的服务范围。 From e0c55050810f4aa8c75bbede52a6bb3fc8c4fb65 Mon Sep 17 00:00:00 2001 From: tangenta Date: Sat, 30 Nov 2024 12:37:41 +0800 Subject: [PATCH 17/22] 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 03cdd234ee8f..18a2f0bab1e4 100644 --- a/sql-statements/sql-statement-admin-alter-ddl.md +++ b/sql-statements/sql-statement-admin-alter-ddl.md @@ -25,7 +25,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-从-v850-版本开始引入) 设置。 + - `MAX_WRITE_SPEED`: 向每个 TiKV 导入索引记录时的最大带宽限制,初始值由系统变量 [`tidb_ddl_reorg_max_write_speed`](/system-variables.md#tidb_ddl_reorg_max_write_speed-从-v850-版本开始引入) 设置。当前仅对关闭 [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) 后,提交并运行中的 `ADD INDEX` 的作业生效。 - `MODIFY COLUMN`: - `THREAD`: 并发度,初始值由系统变量 `tidb_ddl_reorg_worker_cnt` 设置。 From 627be132a66184eff9e642d82ec8c40735dc0b84 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 2 Dec 2024 10:04:28 +0800 Subject: [PATCH 18/22] Apply suggestions from code review --- sql-statements/sql-statement-admin-show-ddl.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql-statements/sql-statement-admin-show-ddl.md b/sql-statements/sql-statement-admin-show-ddl.md index f7ac1c03d4db..df818bc6d096 100644 --- a/sql-statements/sql-statement-admin-show-ddl.md +++ b/sql-statements/sql-statement-admin-show-ddl.md @@ -89,7 +89,7 @@ OWNER_ADDRESS: 0.0.0.0:4000 - `done`:表示该操作在 TiDB owner 节点已经执行成功,但其他 TiDB 节点还没有同步该 DDL 任务所执行的变更。 - `COMMENTS`:包含其他辅助诊断用的信息。 - `ingest`:通过 [`tidb_ddl_enable_fast_reorg`](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 配置的加速索引回填的 ingest 任务。 - - `txn`:关闭[`tidb_ddl_enable_fast_reorg`](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 后,基于事务方式的索引回填。 + - `txn`:关闭 [`tidb_ddl_enable_fast_reorg`](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 后,基于事务方式的索引回填。 - `txn-merge`:在回填完成时,将临时索引与原始索引合并的事务性回填。 - `DXF`:通过 [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) 配置的用分布式执行框架 (Distributed eXecution Framework, DXF) 执行的任务。 - `service_scope`:通过 [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) 配置的 TiDB 节点的服务范围。 From e33976caee123f27f37d2f5137f266d296f05195 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 2 Dec 2024 10:48:58 +0800 Subject: [PATCH 19/22] Apply suggestions from code review Co-authored-by: Frank945946 <108602632+Frank945946@users.noreply.github.com> --- sql-statements/sql-statement-admin-alter-ddl.md | 3 ++- sql-statements/sql-statement-admin-show-ddl.md | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/sql-statements/sql-statement-admin-alter-ddl.md b/sql-statements/sql-statement-admin-alter-ddl.md index 18a2f0bab1e4..82e2fe2482c7 100644 --- a/sql-statements/sql-statement-admin-alter-ddl.md +++ b/sql-statements/sql-statement-admin-alter-ddl.md @@ -25,7 +25,8 @@ 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-从-v850-版本开始引入) 设置。当前仅对关闭 [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) 后,提交并运行中的 `ADD INDEX` 的作业生效。 + - `MAX_WRITE_SPEED`: 向每个 TiKV 导入索引记录时的最大带宽限制,初始值由系统变量 [`tidb_ddl_reorg_max_write_speed`](/system-variables.md#tidb_ddl_reorg_max_write_speed-从-v850-版本开始引入) 设置。 + 以上设置,当前仅对关闭 [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) 后,提交并运行中的 `ADD INDEX` 的作业生效。 - `MODIFY COLUMN`: - `THREAD`: 并发度,初始值由系统变量 `tidb_ddl_reorg_worker_cnt` 设置。 diff --git a/sql-statements/sql-statement-admin-show-ddl.md b/sql-statements/sql-statement-admin-show-ddl.md index df818bc6d096..61604776e8a0 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 作业队列中的 10 个任务,包括正在运行和等待执行的任务(如果有的话),以及已执行完成的 DDL 作业队列中的最近 10 个任务(如果有的话)。该语句的返回结果字段描述如下: - `JOB_ID`:每个 DDL 操作对应一个 DDL 任务,`JOB_ID` 全局唯一。 - `DB_NAME`:执行 DDL 操作的数据库的名称。 From a507f3478ff9f16c10c4c0aad532c45e45afb4c8 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Mon, 2 Dec 2024 13:45:23 +0800 Subject: [PATCH 20/22] Apply suggestions from code review --- .../sql-statement-admin-alter-ddl.md | 26 +++++++++---------- .../sql-statement-admin-show-ddl.md | 4 +-- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/sql-statements/sql-statement-admin-alter-ddl.md b/sql-statements/sql-statement-admin-alter-ddl.md index 82e2fe2482c7..531d5b973f68 100644 --- a/sql-statements/sql-statement-admin-alter-ddl.md +++ b/sql-statements/sql-statement-admin-alter-ddl.md @@ -5,7 +5,7 @@ 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; @@ -20,23 +20,23 @@ ADMIN ALTER DDL JOBS 101 THREAD = 8; 目前在一条 `ADMIN ALTER DDL JOBS` 中仅支持对单个 DDL 作业的参数进行调整,不支持同时调整多个 ID 对应的参数。 -以下是不同 DDL 作业类型支持的各项参数,以及它们对应的系统变量: +以下是不同 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-从-v850-版本开始引入) 设置。 +- `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-从-v850-版本开始引入) 设置。 以上设置,当前仅对关闭 [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) 后,提交并运行中的 `ADD INDEX` 的作业生效。 -- `MODIFY COLUMN`: - - `THREAD`: 并发度,初始值由系统变量 `tidb_ddl_reorg_worker_cnt` 设置。 - - `BATCH_SIZE`: 批大小,初始值由系统变量 `tidb_ddl_reorg_batch_size` 设置。 +- `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` 设置。 +- `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` 的错误。 diff --git a/sql-statements/sql-statement-admin-show-ddl.md b/sql-statements/sql-statement-admin-show-ddl.md index 61604776e8a0..7e8c0679b0e2 100644 --- a/sql-statements/sql-statement-admin-show-ddl.md +++ b/sql-statements/sql-statement-admin-show-ddl.md @@ -64,7 +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) 操作。 - - `add index`: [`ADD INDEX`](/sql-statements/sql-statement-add-index.md) 操作。 + - `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` 状态,表示正在添加索引数据。 @@ -95,7 +95,7 @@ OWNER_ADDRESS: 0.0.0.0:4000 - `service_scope`:通过 [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) 配置的 TiDB 节点的服务范围。 - `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` 动态修改。 + - `max_write_speed`:ingest 任务导入过程中的流量控制,可通过 `tidb_ddl_reorg_max_write_speed` 设置初始值。支持使用 `ADMIN ALTER DDL JOBS` 动态修改。 示例如下: From b219a94d354eea71c4246b2164c85e0ca90eb655 Mon Sep 17 00:00:00 2001 From: lilin90 Date: Mon, 2 Dec 2024 13:58:37 +0800 Subject: [PATCH 21/22] Update format --- .../sql-statement-admin-alter-ddl.md | 7 +++-- .../sql-statement-admin-show-ddl.md | 28 +++++++++---------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/sql-statements/sql-statement-admin-alter-ddl.md b/sql-statements/sql-statement-admin-alter-ddl.md index 531d5b973f68..daf2cfcbdfd0 100644 --- a/sql-statements/sql-statement-admin-alter-ddl.md +++ b/sql-statements/sql-statement-admin-alter-ddl.md @@ -26,7 +26,7 @@ ADMIN ALTER DDL JOBS 101 THREAD = 8; - `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-从-v850-版本开始引入) 设置。 - 以上设置,当前仅对关闭 [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) 后,提交并运行中的 `ADD INDEX` 的作业生效。 + 以上设置,当前仅对关闭 [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) 后,提交并运行中的 `ADD INDEX` 的作业生效。 - `MODIFY COLUMN`: - `THREAD`:并发度,初始值由系统变量 `tidb_ddl_reorg_worker_cnt` 设置。 @@ -52,7 +52,10 @@ ADMIN ALTER DDL JOBS 101 THREAD = 8, BATCH_SIZE = 256; 要查看某个 DDL 作业当前的参数值,可以执行 `ADMIN SHOW DDL JOBS`,结果显示在 `COMMENTS` 列: ```sql -mysql> admin show ddl jobs 1; +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 | +--------+---------+------------+-----------+--------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+--------+-----------------------+ diff --git a/sql-statements/sql-statement-admin-show-ddl.md b/sql-statements/sql-statement-admin-show-ddl.md index 7e8c0679b0e2..2ee3667aa745 100644 --- a/sql-statements/sql-statement-admin-show-ddl.md +++ b/sql-statements/sql-statement-admin-show-ddl.md @@ -12,9 +12,9 @@ summary: TiDB 数据库中 ADMIN SHOW DDL [JOBS|JOB QUERIES] 的使用概况。 ```ebnf+diagram AdminShowDDLStmt ::= 'ADMIN' 'SHOW' 'DDL' - ( - 'JOBS' Int64Num? WhereClauseOptional - | 'JOB' 'QUERIES' NumList + ( + 'JOBS' Int64Num? WhereClauseOptional + | 'JOB' 'QUERIES' NumList | 'JOB' 'QUERIES' 'LIMIT' m ( ('OFFSET' | ',') n )? )? @@ -47,9 +47,9 @@ ADMIN SHOW DDL\G; SCHEMA_VER: 26 OWNER_ID: 2d1982af-fa63-43ad-a3d5-73710683cc63 OWNER_ADDRESS: 0.0.0.0:4000 - RUNNING_JOBS: + RUNNING_JOBS: SELF_ID: 2d1982af-fa63-43ad-a3d5-73710683cc63 - QUERY: + QUERY: 1 row in set (0.00 sec) ``` @@ -178,11 +178,11 @@ ADMIN SHOW DDL JOB QUERIES LIMIT m OFFSET n; # -- 取出第 n+1 到 n+m 行 ```sql ADMIN SHOW DDL JOB QUERIES LIMIT 3; # Retrieve first 3 rows +--------+--------------------------------------------------------------+ -| JOB_ID | QUERY | +| JOB_ID | QUERY | +--------+--------------------------------------------------------------+ -| 59 | ALTER TABLE t1 ADD INDEX index2 (col2) | -| 60 | ALTER TABLE t2 ADD INDEX index1 (col1) | -| 58 | CREATE TABLE t2 (id INT NOT NULL PRIMARY KEY auto_increment) | +| 59 | ALTER TABLE t1 ADD INDEX index2 (col2) | +| 60 | ALTER TABLE t2 ADD INDEX index1 (col1) | +| 58 | CREATE TABLE t2 (id INT NOT NULL PRIMARY KEY auto_increment) | +--------+--------------------------------------------------------------+ 3 rows in set (0.00 sec) ``` @@ -190,10 +190,10 @@ ADMIN SHOW DDL JOB QUERIES LIMIT 3; # Retrieve first 3 rows ```sql ADMIN SHOW DDL JOB QUERIES LIMIT 6, 2; # Retrieve rows 7-8 +--------+----------------------------------------------------------------------------+ -| JOB_ID | QUERY | +| JOB_ID | QUERY | +--------+----------------------------------------------------------------------------+ -| 52 | ALTER TABLE t1 ADD INDEX index1 (col1) | -| 51 | CREATE TABLE IF NOT EXISTS t1 (id INT NOT NULL PRIMARY KEY auto_increment) | +| 52 | ALTER TABLE t1 ADD INDEX index1 (col1) | +| 51 | CREATE TABLE IF NOT EXISTS t1 (id INT NOT NULL PRIMARY KEY auto_increment) | +--------+----------------------------------------------------------------------------+ 3 rows in set (0.00 sec) ``` @@ -201,11 +201,11 @@ ADMIN SHOW DDL JOB QUERIES LIMIT 6, 2; # Retrieve rows 7-8 ```sql ADMIN SHOW DDL JOB QUERIES LIMIT 3 OFFSET 4; # Retrieve rows 5-7 +--------+----------------------------------------+ -| JOB_ID | QUERY | +| JOB_ID | QUERY | +--------+----------------------------------------+ | 54 | DROP TABLE IF EXISTS t3 | | 53 | ALTER TABLE t1 DROP INDEX index1 | -| 52 | ALTER TABLE t1 ADD INDEX index1 (col1) | +| 52 | ALTER TABLE t1 ADD INDEX index1 (col1) | +--------+----------------------------------------+ 3 rows in set (0.00 sec) ``` From 2a16975d7d2f139a0f95c347e189d320012ad068 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 2 Dec 2024 14:54:21 +0800 Subject: [PATCH 22/22] Update sql-statements/sql-statement-admin-alter-ddl.md --- 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 daf2cfcbdfd0..55bfc485b9e2 100644 --- a/sql-statements/sql-statement-admin-alter-ddl.md +++ b/sql-statements/sql-statement-admin-alter-ddl.md @@ -26,6 +26,7 @@ ADMIN ALTER DDL JOBS 101 THREAD = 8; - `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-从-v850-版本开始引入) 设置。 + 以上设置,当前仅对关闭 [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) 后,提交并运行中的 `ADD INDEX` 的作业生效。 - `MODIFY COLUMN`: