From 37e708ed707c0d5cc68e762d4e3ceed723d8cca1 Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Thu, 21 May 2020 16:48:51 +0800 Subject: [PATCH 01/32] add task manage for special week --- zh/create_task.md | 69 +++++++++ zh/manage_source.md | 85 +++++++++++ zh/pause_task.md | 78 +++++++++++ zh/precheck.md | 1 + zh/query-status.md | 107 ++++++-------- zh/query_error.md | 132 ++++++++++++++++++ zh/query_task.md | 98 +++++++++++++ zh/resume_task.md | 70 ++++++++++ zh/skip-or-replace-abnormal-sql-statements.md | 123 +++++----------- zh/stop_task.md | 71 ++++++++++ 10 files changed, 678 insertions(+), 156 deletions(-) create mode 100644 zh/create_task.md create mode 100644 zh/manage_source.md create mode 100644 zh/pause_task.md create mode 100644 zh/query_error.md create mode 100644 zh/query_task.md create mode 100644 zh/resume_task.md create mode 100644 zh/stop_task.md diff --git a/zh/create_task.md b/zh/create_task.md new file mode 100644 index 000000000..58d981a2d --- /dev/null +++ b/zh/create_task.md @@ -0,0 +1,69 @@ +--- +title: 创建数据同步任务 +summary: 了解 TiDB Data Migration 如何创建数据同步任务。 +category: reference +--- + +# 创建数据同步任务 + +`start-task` 命令用于创建数据同步任务。 当数据同步任务启动时,DM 将[自动对相应权限和配置进行前置检查](precheck.md)。 + +{{< copyable "" >}} + +```bash +help start-task +``` + +``` +start a task as defined in the config file + +Usage: + dmctl start-task [-s source ...] [flags] + +Flags: + -h, --help help for start-task + +Global Flags: + -s, --source strings MySQL Source ID +``` + +## 命令用法示例 + +{{< copyable "" >}} + +```bash +start-task [ -s "mysql-replica-01"] ./task.yaml +``` + +## 参数解释 + ++ `-s`: + - 可选 + - 指定在特定的一个 MySQL 源上执行 `task.yaml` + - 如果设置,则只启动指定任务在该 MySQL 源上的子任务 ++ `config-file`: + - 必选 + - 指定 `task.yaml` 的文件路径 + +## 返回结果示例 + +{{< copyable "" >}} + +```bash +start-task task.yaml +``` + +``` +{ + "result": true, + "msg": "", + "sources": [ + { + "result": true, + "msg": "", + "source": "mysql-replica-01", + "worker": "worker1" + } + ] +} +``` diff --git a/zh/manage_source.md b/zh/manage_source.md new file mode 100644 index 000000000..196e60054 --- /dev/null +++ b/zh/manage_source.md @@ -0,0 +1,85 @@ +--- +title: 管理上游 MySQL 实例 +summary: 了解如何管理上游 MySQL 实例。 +category: reference +--- + +# 加密数据库密码 + +在 DM 相关配置文件中,如果上游 MySQL 密码不为空,要求必须使用经 dmctl 加密后的密码,否则会报错。对于同一个原始密码,每次加密后密码不同。 + +{{< copyable "shell-regular" >}} + +```bash +./dmctl -encrypt 123456 +``` + +``` +VjX8cEeTX+qcvZ3bPaO4h0C80pe/1aU= +``` + +# 加载数据源配置 + +`operate-source` 命令用于将数据源配置加载到 DM 集群中。 + +{{< copyable "" >}} + +```bash +help operate-source +``` + +``` +create/update/stop upstream MySQL/MariaDB source + +Usage: + dmctl operate-source [flags] + +Flags: + -h, --help help for operate-source + +Global Flags: + -s, --source strings MySQL Source ID +``` + +## 命令用法示例 + +{{< copyable "" >}} + +```bash +operate-source create ./source.toml +``` + +## 参数解释 + ++ `create`:创建一个上游的数据库源 + ++ `update`:更新一个上游的数据库源 + ++ `stop`:停止一个上游的数据库源 + ++ `config-file`: + - 必选 + - 指定 `source.toml` 的文件路径 + +## 返回结果示例 + +{{< copyable "" >}} + +```bash +operate-source create ./source.toml +``` + +``` +{ + "result": true, + "msg": "", + "sources": [ + { + "result": true, + "msg": "", + "source": "mysql-replica-01", + "worker": "dm-worker-1" + } + ] +} +``` diff --git a/zh/pause_task.md b/zh/pause_task.md new file mode 100644 index 000000000..521976b39 --- /dev/null +++ b/zh/pause_task.md @@ -0,0 +1,78 @@ +--- +title: 暂停数据同步任务 +summary: 了解 TiDB Data Migration 如何暂停数据同步任务。 +category: reference +--- + +# 暂停数据同步任务 + +`pause-task` 命令用于暂停数据同步任务。 + +> **注意:** +> +> 有关 `pause-task` 与 `stop-task` 的区别如下: +> +> - 使用 `pause-task` 仅暂停同步任务的执行,但仍然会在内存中保留任务的状态信息等,且可通过 `query-status` 进行查询;使用 `stop-task` 会停止同步任务的执行,并移除内存中与该任务相关的信息,且不可再通过 `query-status` 进行查询,但不会移除已经写入到下游数据库中的数据以及其中的 checkpoint 等 `dm_meta` 信息。 +> - 使用 `pause-task` 暂停同步任务期间,由于任务本身仍然存在,因此不能再启动同名的新任务,且会阻止对该任务所需 relay log 的清理;使用 `stop-task` 停止任务后,由于任务不再存在,因此可以再启动同名的新任务,且不会阻止对 relay log 的清理。 +> - `pause-task` 一般用于临时暂停同步任务以排查问题等;`stop-task` 一般用于永久删除同步任务或通过与 `start-task` 配合以更新配置信息。 + +{{< copyable "" >}} + +```bash +help pause-task +``` + +``` +pause a specified running task + +Usage: + dmctl pause-task [-s source ...] [flags] + +Flags: + -h, --help help for pause-task + +Global Flags: + -s, --source strings MySQL Source ID +``` + +## 命令用法示例 + +{{< copyable "" >}} + +```bash +pause-task [-s "mysql-replica-01"] task-name +``` + +## 参数解释 + +- `-s`: + - 可选 + - 指定在特定的一个 MySQL 源上暂停数据同步任务的子任务 + - 如果设置,则只暂停该任务在指定 MySQL 源上的子任务 +- `task-name`: + - 必选 + - 指定任务名称 + +## 返回结果示例 + +{{< copyable "" >}} + +```bash +pause-task test +``` + +``` +{ + "op": "Pause", + "result": true, + "msg": "", + "sources": [ + { + "result": true, + "msg": "", + "source": "mysql-replica-01", + "worker": "worker1" + } + ] +} +``` diff --git a/zh/precheck.md b/zh/precheck.md index 352619d64..f1bb9ff33 100644 --- a/zh/precheck.md +++ b/zh/precheck.md @@ -1,5 +1,6 @@ --- title: 上游 MySQL 实例配置前置检查 +summary: 了解上游 MySQL 实例配置前置检查。 category: reference --- diff --git a/zh/query-status.md b/zh/query-status.md index 14118059f..a321d6eae 100644 --- a/zh/query-status.md +++ b/zh/query-status.md @@ -1,9 +1,10 @@ --- -title: DM 查询状态 +title: TiDB Data Migration 查询状态 +summary: 深入了解 TiDB Data Migration 如何查询数据同步任务状态 category: reference --- -# DM 查询状态 +# TiDB Data Migration 查询状态 本文介绍 DM(Data Migration)`query-status` 命令的查询结果、任务状态与子任务状态。 @@ -17,30 +18,23 @@ category: reference ``` { - "result": true, # 查询是否成功。 - "msg": "", # 查询失败原因描述。 - "tasks": [ # 迁移 task 列表 + "result": true, # 查询是否成功 + "msg": "", # 查询失败原因描述 + "tasks": [ # 迁移 task 列表 { - "taskName": "test-1", # 任务名称 - "taskStatus": "Running", # 任务运行状态,包括 “New”,“Running”,“Paused”,“Stopped”,“Finished” 以及 “Error”。 - "workers": [ # 该任务所使用的 DM-workers 列表 - "127.0.0.1:8262" + "taskName": "test", # 任务名称 + "taskStatus": "Running", # 任务运行状态 + "sources": [ # 该任务的上游 MySQL 列表 + "mysql-replica-01", + "mysql-replica-02" ] }, { - "taskName": "test-2", - "taskStatus": "Error - Some error occurred in subtask", # 该任务的子任务存在运行错误并暂停的现象 - "workers": [ - "127.0.0.1:8262", - "127.0.0.1:8263" - ] - }, - { - "taskName": "test-3", - "taskStatus": "Error - Relay status is Error", # 该任务的某个处于 Sync 阶段的子任务对应的 Relay 处理单元出错 - "workers": [ - "127.0.0.1:8263", - "127.0.0.1:8264" + "taskName": "test2", + "taskStatus": "Paused", + "sources": [ + "mysql-replica-01", + "mysql-replica-02" ] } ] @@ -80,12 +74,17 @@ DM 的迁移任务状态取决于其分配到 DM-worker 上的[子任务状态]( { "result": true, # 查询是否成功。 "msg": "", # 查询失败原因描述。 - "workers": [ # DM-worker 列表。 + "sources": [ # DM-worker 列表。 { "result": true, - "worker": "172.17.0.2:8262", # DM-worker ID。 "msg": "", - "subTaskStatus": [ # DM-worker 所有子任务的信息。 + "sourceStatus": { # 上游 MySQL 的信息 + "source": "mysql-replica-01", + "worker": "worker1", + "result": null, + "relayStatus": null + }, + "subTaskStatus": [ # 上游 MySQL 所有子任务的信息。 { "name": "test", # 子任务名称。 "stage": "Running", # 子任务运行状态,包括 “New”,“Running”,“Paused”,“Stopped” 以及 “Finished”。 @@ -122,23 +121,17 @@ DM 的迁移任务状态取决于其分配到 DM-worker 上的[子任务状态]( "synced": false # 增量同步是否已追上上游。由于后台 `Sync` 单元并不会实时刷新保存点,当前值为 “false“ 并不一定代表发生了同步延迟。 } } - ], - "relayStatus": { # relay 单元的同步状态. - "masterBinlog": "(bin.000001, 3234)", # 上游数据库的 binlog position。 - "masterBinlogGtid": "c0149e17-dff1-11e8-b6a8-0242ac110004:1-14", # 上游数据库的 binlog GTID 信息。 - "relaySubDir": "c0149e17-dff1-11e8-b6a8-0242ac110004.000001", # 当前使用的 relay log 子目录。 - "relayBinlog": "(bin.000001, 3234)", # 已被拉取至本地存储的 binlog position。 - "relayBinlogGtid": "c0149e17-dff1-11e8-b6a8-0242ac110004:1-14", # 已被拉取至本地存储的 binlog GTID 信息。 - "relayCatchUpMaster": true, # 本地 relay log 同步进度是否与上游一致。 - "stage": "Running", # relay 处理单元状态 - "result": null - }, - "sourceID": "172.17.0.2:3306" # 上游实例或者复制组 ID + ] }, { "result": true, - "worker": "172.17.0.3:8262", "msg": "", + "sourceStatus": { + "source": "mysql-replica-02", + "worker": "worker2", + "result": null, + "relayStatus": null + }, "subTaskStatus": [ { "name": "test", @@ -152,23 +145,16 @@ DM 的迁移任务状态取决于其分配到 DM-worker 上的[子任务状态]( "progress": "25.44 %" # 全量导入进度。 } } - ], - "relayStatus": { - "masterBinlog": "(bin.000001, 28507)", - "masterBinlogGtid": "c0149e17-dff1-11e8-b6a8-0242ac110004:1-96", - "relaySubDir": "c0149e17-dff1-11e8-b6a8-0242ac110004.000001", - "relayBinlog": "(bin.000001, 28507)", - "relayBinlogGtid": "c0149e17-dff1-11e8-b6a8-0242ac110004:1-96", - "relayCatchUpMaster": true, - "stage": "Running", - "result": null - }, - "sourceID": "172.17.0.3:3306" + ] }, { "result": true, - "worker": "172.17.0.6:8262", - "msg": "", + "sourceStatus": { + "source": "mysql-replica-03", + "worker": "worker3", + "result": null, + "relayStatus": null + }, "subTaskStatus": [ { "name": "test", @@ -191,26 +177,15 @@ DM 的迁移任务状态取决于其分配到 DM-worker 上的[子任务状态]( "progress": "0.00 %" } } - ], - "relayStatus": { - "masterBinlog": "(bin.000001, 1691)", - "masterBinlogGtid": "97b5142f-e19c-11e8-808c-0242ac110005:1-9", - "relaySubDir": "97b5142f-e19c-11e8-808c-0242ac110005.000001", - "relayBinlog": "(bin.000001, 1691)", - "relayBinlogGtid": "97b5142f-e19c-11e8-808c-0242ac110005:1-9", - "relayCatchUpMaster": true, - "stage": "Running", - "result": null - }, - "sourceID": "172.17.0.6:3306" + ] } ] } ``` -关于 `workers` 下 `subTaskStatus` 中 `stage` 状态和状态转换关系的详细信息,请参阅[子任务状态](#子任务状态)。 +关于 `sources` 下 `subTaskStatus` 中 `stage` 状态和状态转换关系的详细信息,请参阅[子任务状态](#子任务状态)。 -关于 `workers` 下 `subTaskStatus` 中 `unresolvedDDLLockID`的操作细节,请参阅[手动处理 Sharding DDL Lock](feature-manually-handling-sharding-ddl-locks.md)。 +关于 `sources` 下 `subTaskStatus` 中 `unresolvedDDLLockID`的操作细节,请参阅[手动处理 Sharding DDL Lock](feature-manually-handling-sharding-ddl-locks.md)。 ## 子任务状态 diff --git a/zh/query_error.md b/zh/query_error.md new file mode 100644 index 000000000..b3ca424ad --- /dev/null +++ b/zh/query_error.md @@ -0,0 +1,132 @@ +--- +title: TiDB Data Migration 查询运行错误 +summary: 深入了解 TiDB Data Migration 如何查询数据同步任务运行错误 +category: reference +--- + +# TiDB Data Migration 查询运行错误 + +本文介绍 DM(Data Migration)`query-error` 命令的查询错误与子任务错误。 + +## 查询结果 + +{{< copyable "" >}} + +```bash +» query-error +``` + +``` +{ + "result": true, # query-error 操作本身是否成功 + "msg": "", # query-error 操作失败的说明信息 + "sources": [ # source 信息列表 + { + "result": true, # 该 source 上 query-error 操作是否成功 + "msg": "", # 该 source 上 query-error 操作失败的说明信息 + "SourceError": { # 该 source 信息 + "source": "mysql-replica-01", + "worker": "worker1", + "SourceError": "", + "RelayError": null + }, + "subTaskError": [ # 该 source 上运行的所有子任务的错误信息 + { + "name": "test", + "stage": "Running", + "unit": "Sync", + "sync": { + "errors": [ + ] + } + }, + { + "name": "test2", + "stage": "Paused", + "unit": "Sync", + "sync": { + "errors": [ + ] + } + } + ] + }, + { + "result": true, + "msg": "", + "SourceError": { + "source": "mysql-replica-02", + "worker": "worker2", + "SourceError": "", + "RelayError": null + }, + "subTaskError": [ + { + "name": "test", + "stage": "Running", + "unit": "Sync", + "sync": { + "errors": [ + ] + } + }, + { + "name": "test2", + "stage": "Paused", + "unit": "Sync", + "sync": { + "errors": [ + ] + } + } + ] + } + ] +} +``` + +## 查询子任务错误 + +{{< copyable "" >}} + +```bash +» query-status test +``` + +``` +{ + "result": true, # query-error 操作本身是否成功 + "msg": "", # query-error 操作失败的说明信息 + "sources": [ # source 信息列表 + { + "result": true, # 该 source 上 query-error 操作是否成功 + "msg": "", # 该 source 上 query-error 操作失败的说明信息 + "SourceError": { # 该 source 信息 + "source": "mysql-replica-01", + "worker": "worker1", + "SourceError": "", + "RelayError": null + }, + "subTaskError": [ # 该 source 上运行子任务的错误信息 + { + "name": "test", # 任务名 + "stage": "Paused", # 当前任务的状态 + "unit": "Sync", # 当前正在处理任务的处理单元 + "sync": { # binlog 同步单元(sync)的错误信息 + "errors": [ # 当前处理单元的错误信息列表 + { + // 错误信息描述 + "msg": "exec sqls[[USE `db1`; ALTER TABLE `db1`.`tbl1` CHANGE COLUMN `c2` `c2` decimal(10,3);]] failed, err:Error 1105: unsupported modify column length 10 is less than origin 11", + // 发生错误的 binlog event 的 position + "failedBinlogPosition": "mysql-bin|000001.000003:34642", + // 发生错误的 SQL 语句 + "errorSQL": "[USE `db1`; ALTER TABLE `db1`.`tbl1` CHANGE COLUMN `c2` `c2` decimal(10,3);]" + } + ] + } + } + ] + } + ] +} +``` diff --git a/zh/query_task.md b/zh/query_task.md new file mode 100644 index 000000000..1ce51cb34 --- /dev/null +++ b/zh/query_task.md @@ -0,0 +1,98 @@ +--- +title: 查询数据同步任务信息 +summary: 了解 TiDB Data Migration 如何查询数据同步任务信息。 +category: reference +--- + +# 查询数据同步任务状态 + +`query-status` 命令用于查询数据同步任务状态。有关查询结果及子任务状态,详见[查询状态](query-status.md)。 + +{{< copyable "" >}} + +```bash +help query-status +``` + +``` +query task status + +Usage: + dmctl query-status [-s source ...] [task-name] [--more] [flags] + +Flags: + -h, --help help for query-status + --more whether to print the detailed task information + +Global Flags: + -s, --source strings MySQL Source ID +``` + +## 命令用法示例 + +{{< copyable "" >}} + +```bash +query-status +``` + +## 参数解释 + +- `-s`: + - 可选 + - 查询在指定的一个 MySQL 源上运行的数据同步任务的子任务 +- `task-name`: + - 可选 + - 指定任务名称 + - 如果未设置,则返回全部数据同步任务的查询结果 + +## 返回结果示例 + +有关查询结果中各参数的意义,详见[查询状态结果](query-status.md#查询结果)。 + +# 查询数据同步任务错误 + +`query-error` 可用于查询数据同步任务与 relay 处理单元的错误信息。相比于 `query-status`,`query-error` 一般不用于获取除错误信息之外的其他信息。有关查询结果及子任务状态,详见[查询错误](query-error.md)。 + +`query-error` 常用于获取 `sql-skip`/`sql-replace` 所需的 binlog position 信息,有关 `query-error` 的参数与结果解释,请参考 [“跳过或替代执行异常的 SQL 语句”文档中的 query-error](skip-or-replace-abnormal-sql-statements.md#query-error)。 + +{{< copyable "" >}} + +```bash +help query-error +``` + +``` +query task error + +Usage: + dmctl query-error [-s source ...] [task-name] [flags] + +Flags: + -h, --help help for query-error + +Global Flags: + -s, --source strings MySQL Source ID +``` + +## 命令用法示例 + +{{< copyable "" >}} + +```bash +query-error +``` + +## 参数解释 + +- `-s`: + - 可选 + - 查询在指定的一个 MySQL 源上运行的数据同步任务的子任务 +- `task-name`: + - 可选 + - 指定任务名称 + - 如果未设置,则返回全部数据同步任务错误的查询结果 + +## 返回结果示例 + +有关查询错误结果中各参数的意义,详见[查询错误结果](query-error.md#查询结果)。 diff --git a/zh/resume_task.md b/zh/resume_task.md new file mode 100644 index 000000000..7102c1311 --- /dev/null +++ b/zh/resume_task.md @@ -0,0 +1,70 @@ +--- +title: 恢复数据同步任务 +summary: 了解 TiDB Data Migration 如何恢复数据同步任务。 +category: reference +--- + +# 恢复数据同步任务 + +`resume-task` 命令用于恢复处于 `Paused` 状态的数据同步任务,通常用于在人为处理完造成同步任务暂停的故障后手动恢复同步任务。 + +{{< copyable "" >}} + +```bash +help resume-task +``` + +``` +resume a specified paused task + +Usage: + dmctl resume-task [-s source ...] [flags] + +Flags: + -h, --help help for resume-task + +Global Flags: + -s, --source strings MySQL Source ID +``` + +## 命令用法示例 + +{{< copyable "" >}} + +```bash +resume-task [-s "mysql-replica-01"] task-name +``` + +## 参数解释 + +- `-s`: + - 可选 + - 指定在特定的一个 MySQL 源上恢复数据同步任务的子任务 + - 如果设置,则只恢复该任务在指定 MySQL 源上的子任务 +- `task-name`: + - 必选 + - 指定任务名称 + +## 返回结果示例 + +{{< copyable "" >}} + +```bash +resume-task test +``` + +``` +{ + "op": "Resume", + "result": true, + "msg": "", + "sources": [ + { + "result": true, + "msg": "", + "source": "mysql-replica-01", + "worker": "worker1" + } + ] +} +``` \ No newline at end of file diff --git a/zh/skip-or-replace-abnormal-sql-statements.md b/zh/skip-or-replace-abnormal-sql-statements.md index b47f5b93b..36174564b 100644 --- a/zh/skip-or-replace-abnormal-sql-statements.md +++ b/zh/skip-or-replace-abnormal-sql-statements.md @@ -1,5 +1,6 @@ --- title: 跳过或替代执行异常的 SQL 语句 +summary: 了解 Tidb Data Migration 如何跳过或替代执行异常的 SQL 语句。 category: reference --- @@ -136,67 +137,7 @@ DM 在进行增量数据同步时,简化后的流程大致为: #### query-error -`query-error` 命令用于查询 DM-worker 内子任务及 relay 单元当前在运行中存在的错误。 - -##### 命令用法 - -```bash -query-error [--worker=127.0.0.1:8262] [task-name] -``` - -##### 参数解释 - -+ `worker`: - - flag 参数,string,`--worker`,可选; - - 不指定时查询所有 DM-worker 上的错误,指定时仅查询特定一组 DM-worker 上的错误。 - -+ `task-name`: - - 非 flag 参数,string,可选; - - 不指定时查询所有任务内的错误,指定时仅查询特定任务内的错误。 - -##### 结果示例 - -{{< copyable "" >}} - -```bash -» query-error test -``` - -``` -{ - "result": true, # query-error 操作本身是否成功 - "msg": "", # query-error 操作失败的说明信息 - "workers": [ # DM-worker 信息列表 - { - "result": true, # 该 DM-worker 上 query-error 操作是否成功 - "worker": "127.0.0.1:8262", # 该 DM-worker 的 IP:port(worker-id) - "msg": "", # 该 DM-worker 上 query-error 操作失败的说明信息 - "subTaskError": [ # 该 DM-worker 上运行子任务的错误信息 - { - "name": "test", # 任务名 - "stage": "Paused", # 当前任务的状态 - "unit": "Sync", # 当前正在处理任务的处理单元 - "sync": { # binlog 同步单元(sync)的错误信息 - "errors": [ # 当前处理单元的错误信息列表 - { - // 错误信息描述 - "msg": "exec sqls[[USE `db1`; ALTER TABLE `db1`.`tbl1` CHANGE COLUMN `c2` `c2` decimal(10,3);]] failed, err:Error 1105: unsupported modify column length 10 is less than origin 11", - // 发生错误的 binlog event 的 position - "failedBinlogPosition": "mysql-bin|000001.000003:34642", - // 发生错误的 SQL 语句 - "errorSQL": "[USE `db1`; ALTER TABLE `db1`.`tbl1` CHANGE COLUMN `c2` `c2` decimal(10,3);]" - } - ] - } - } - ], - "RelayError": { # 该 DM-worker 上 relay 处理单元的错误信息 - "msg": "" # 错误信息描述 - } - } - ] -} -``` +`query-error` 命令用于查询 MySQL 实例子任务在运行中存在的错误,详见[查询错误](query-error.md)。 #### sql-skip @@ -205,15 +146,15 @@ query-error [--worker=127.0.0.1:8262] [task-name] ##### 命令用法 ```bash -sql-skip <--worker=127.0.0.1:8262> [--binlog-pos=mysql-bin|000001.000003:3270] [--sql-pattern=~(?i)ALTER\s+TABLE\s+`db1`.`tbl1`\s+ADD\s+COLUMN\s+col1\s+INT] [--sharding] +sql-skip <--source mysql-replica-01> [--binlog-pos=mysql-bin|000001.000003:3270] [--sql-pattern=~(?i)ALTER\s+TABLE\s+`db1`.`tbl1`\s+ADD\s+COLUMN\s+col1\s+INT] [--sharding] ``` ##### 参数解释 -+ `worker`: - - flag 参数,string,`--worker`; ++ `source`: + - flag 参数,string,`--source`; - 未指定 `--sharding` 时必选,指定 `--sharding` 时禁止使用; - - `worker` 指定预设操作将生效的 DM-worker。 + - `source` 指定预设操作将生效的 MySQL 实例。 + `binlog-pos`: - flag 参数,string,`--binlog-pos`; @@ -246,13 +187,13 @@ sql-skip <--worker=127.0.0.1:8262> [--binlog-pos=mysql-bin|000001.000003:3270] [ ##### 命令用法 ```bash -sql-replace <--worker=127.0.0.1:8262> [--binlog-pos=mysql-bin|000001.000003:3270] [--sql-pattern=~(?i)ALTER\s+TABLE\s+`db1`.`tbl1`\s+ADD\s+COLUMN\s+col1\s+INT] [--sharding] +sql-replace <--source mysql-replica-01> [--binlog-pos=mysql-bin|000001.000003:3270] [--sql-pattern=~(?i)ALTER\s+TABLE\s+`db1`.`tbl1`\s+ADD\s+COLUMN\s+col1\s+INT] [--sharding] ``` ##### 参数解释 -+ `worker`: - - 与 `sql-skip` 命令的 `--worker` 参数解释一致。 ++ `source`: + - 与 `sql-skip` 命令的 `--source` 参数解释一致。 + `binlog-pos`: - 与 `sql-skip` 命令的 `--binlog-pos` 参数解释一致。 @@ -328,24 +269,25 @@ err:Error 1105: unsupported modify column length 10 is less than origin 11 {{< copyable "" >}} ```bash - » sql-skip --worker=127.0.0.1:8262 --binlog-pos=mysql-bin|000001.000003:34642 test + » sql-skip --source=mysql-replica-01 --binlog-pos=mysql-bin|000001.000003:34642 test ``` ``` { "result": true, "msg": "", - "workers": [ + "sources": [ { "result": true, - "worker": "", - "msg": "" + "msg": "", + "source": "", + "worker": "" } ] } ``` - 对应 DM-worker 节点中也可以看到类似如下日志: + source 对应的 DM-worker 节点中也可以看到类似如下日志: ``` 2018/12/28 11:17:51 operator.go:121: [info] [sql-operator] set a new operator @@ -358,7 +300,7 @@ err:Error 1105: unsupported modify column length 10 is less than origin 11 {{< copyable "" >}} ```bash - » resume-task --worker=127.0.0.1:8262 test + » resume-task --source=mysql-replica-01 test ``` ``` @@ -366,18 +308,18 @@ err:Error 1105: unsupported modify column length 10 is less than origin 11 "op": "Resume", "result": true, "msg": "", - "workers": [ + "sources": [ { - "op": "Resume", "result": true, - "worker": "127.0.0.1:8262", - "msg": "" + "msg": "", + "source": "mysql-replica-01", + "worker": "worker1" } ] } ``` - 对应 DM-worker 节点中也可以看到类似如下日志: + source 对应的 DM-worker 节点中也可以看到类似如下日志: ``` 2018/12/28 11:27:46 operator.go:158: [info] [sql-operator] binlog-pos (mysql-bin|000001.000003, 34642) matched, @@ -455,24 +397,25 @@ err:Error 1105: can't drop column c2 with index covered now {{< copyable "" >}} ```bash - » sql-replace --worker=127.0.0.1:8262 --sql-pattern=~(?i)ALTER\s+TABLE\s+`db2`.`tbl2`\s+DROP\s+COLUMN\s+`c2` test ALTER TABLE `db2`.`tbl2` DROP INDEX idx_c2;ALTER TABLE `db2`.`tbl2` DROP COLUMN `c2` + » sql-replace --source=mysql-replica-01 --sql-pattern=~(?i)ALTER\s+TABLE\s+`db2`.`tbl2`\s+DROP\s+COLUMN\s+`c2` test ALTER TABLE `db2`.`tbl2` DROP INDEX idx_c2;ALTER TABLE `db2`.`tbl2` DROP COLUMN `c2` ``` ``` { "result": true, "msg": "", - "workers": [ + "sources": [ { "result": true, - "worker": "", - "msg": "" + "msg": "", + "source": "", + "worker": "" } ] } ``` - 对应 DM-worker 节点中也可以看到类似如下日志: + source 对应的 DM-worker 节点中也可以看到类似如下日志: ``` 2018/12/28 15:33:13 operator.go:121: [info] [sql-operator] set a new operator @@ -594,12 +537,12 @@ err:Error 1105: can't drop column c2 with index covered now ``` ``` - { - "result": true, - "msg": "request with --sharding saved and will be sent to DDL lock's owner when resolving DDL lock", - "workers": [ - ] - } + { + "result": true, + "msg": "request with --sharding saved and will be sent to DDL lock's owner when resolving DDL lock", + "sources": [ + ] + } ``` **DM-master** 节点中也可以看到类似如下日志: diff --git a/zh/stop_task.md b/zh/stop_task.md new file mode 100644 index 000000000..46c52cae5 --- /dev/null +++ b/zh/stop_task.md @@ -0,0 +1,71 @@ +--- +title: 停止数据同步任务 +summary: 了解 TiDB Data Migration 如何停止数据同步任务。 +category: reference +--- + + +# 停止数据同步任务 + +`stop-task` 命令用于停止数据同步任务。有关 `stop-task` 与 `pause-task` 的区别,请参考[暂停数据同步任务](pause_task.md)中的相关说明。 + +{{< copyable "" >}} + +```bash +help stop-task +``` + +``` +stop a specified task + +Usage: + dmctl stop-task [-s source ...] [flags] + +Flags: + -h, --help help for stop-task + +Global Flags: + -s, --source strings MySQL Source ID +``` + +## 命令用法示例 + +{{< copyable "" >}} + +```bash +stop-task [-s "mysql-replica-01"] task-name +``` + +## 参数解释 + +- `-s`: + - 可选 + - 指定在特定的一个 MySQL 源上停止数据同步任务的子任务 + - 如果设置,则只停止该任务在指定 MySQL 源上的子任务 +- `task-name`: + - 必选 + - 指定任务名称 + +## 返回结果示例 + +{{< copyable "" >}} + +```bash +stop-task test +``` + +``` +{ + "op": "Stop", + "result": true, + "msg": "", + "sources": [ + { + "result": true, + "msg": "", + "source": "mysql-replica-01", + "worker": "worker1" + } + ] +} +``` \ No newline at end of file From 53efd1ac64a048041f5065ede5ec6ed600e0b65e Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Thu, 21 May 2020 16:53:29 +0800 Subject: [PATCH 02/32] minor change --- zh/query_task.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh/query_task.md b/zh/query_task.md index 1ce51cb34..35d659b13 100644 --- a/zh/query_task.md +++ b/zh/query_task.md @@ -4,7 +4,7 @@ summary: 了解 TiDB Data Migration 如何查询数据同步任务信息。 category: reference --- -# 查询数据同步任务状态 +# 查询数据同步任务信息 `query-status` 命令用于查询数据同步任务状态。有关查询结果及子任务状态,详见[查询状态](query-status.md)。 From ffb8a4a2c7c9cf719f15780fd1d1d88e1f6e566b Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Thu, 21 May 2020 16:59:03 +0800 Subject: [PATCH 03/32] rename file --- zh/{create_task.md => create-task.md} | 0 zh/{manage_source.md => manage-source.md} | 0 zh/{pause_task.md => pause-task.md} | 0 zh/{query_error.md => query-error.md} | 0 zh/{query_task.md => query-task.md} | 0 zh/{stop_task.md => stop-task.md} | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename zh/{create_task.md => create-task.md} (100%) rename zh/{manage_source.md => manage-source.md} (100%) rename zh/{pause_task.md => pause-task.md} (100%) rename zh/{query_error.md => query-error.md} (100%) rename zh/{query_task.md => query-task.md} (100%) rename zh/{stop_task.md => stop-task.md} (100%) diff --git a/zh/create_task.md b/zh/create-task.md similarity index 100% rename from zh/create_task.md rename to zh/create-task.md diff --git a/zh/manage_source.md b/zh/manage-source.md similarity index 100% rename from zh/manage_source.md rename to zh/manage-source.md diff --git a/zh/pause_task.md b/zh/pause-task.md similarity index 100% rename from zh/pause_task.md rename to zh/pause-task.md diff --git a/zh/query_error.md b/zh/query-error.md similarity index 100% rename from zh/query_error.md rename to zh/query-error.md diff --git a/zh/query_task.md b/zh/query-task.md similarity index 100% rename from zh/query_task.md rename to zh/query-task.md diff --git a/zh/stop_task.md b/zh/stop-task.md similarity index 100% rename from zh/stop_task.md rename to zh/stop-task.md From f07bc3246f869b7ba4e35280b10259741659d2a0 Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Thu, 21 May 2020 17:02:54 +0800 Subject: [PATCH 04/32] rename file --- zh/{resume_task.md => resume-task.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename zh/{resume_task.md => resume-task.md} (100%) diff --git a/zh/resume_task.md b/zh/resume-task.md similarity index 100% rename from zh/resume_task.md rename to zh/resume-task.md From 59064ee593a36eef0b05c85831547f71fc8f2d6b Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Thu, 21 May 2020 17:07:35 +0800 Subject: [PATCH 05/32] minor change --- zh/query-task.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh/query-task.md b/zh/query-task.md index 35d659b13..d7c04a9a2 100644 --- a/zh/query-task.md +++ b/zh/query-task.md @@ -54,7 +54,7 @@ query-status `query-error` 可用于查询数据同步任务与 relay 处理单元的错误信息。相比于 `query-status`,`query-error` 一般不用于获取除错误信息之外的其他信息。有关查询结果及子任务状态,详见[查询错误](query-error.md)。 -`query-error` 常用于获取 `sql-skip`/`sql-replace` 所需的 binlog position 信息,有关 `query-error` 的参数与结果解释,请参考 [“跳过或替代执行异常的 SQL 语句”文档中的 query-error](skip-or-replace-abnormal-sql-statements.md#query-error)。 +`query-error` 常用于获取 `sql-skip`/`sql-replace` 所需的 binlog position 信息,有关 `sql-skip` 和 `sql-replace` 的介绍,请参考 [跳过或替代执行异常的 SQL 语句](skip-or-replace-abnormal-sql-statements.md#query-error)。 {{< copyable "" >}} From 1fbf68b9fbf050a7135cbddcfc04de135ad7e923 Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Thu, 21 May 2020 17:16:21 +0800 Subject: [PATCH 06/32] minor change --- zh/query-error.md | 2 +- zh/query-status.md | 56 +++++++++++++++++++++++----------------------- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/zh/query-error.md b/zh/query-error.md index b3ca424ad..1c17093e9 100644 --- a/zh/query-error.md +++ b/zh/query-error.md @@ -1,6 +1,6 @@ --- title: TiDB Data Migration 查询运行错误 -summary: 深入了解 TiDB Data Migration 如何查询数据同步任务运行错误 +summary: 深入了解 TiDB Data Migration 如何查询数据同步任务运行错误。 category: reference --- diff --git a/zh/query-status.md b/zh/query-status.md index a321d6eae..2c88b817e 100644 --- a/zh/query-status.md +++ b/zh/query-status.md @@ -72,9 +72,9 @@ DM 的迁移任务状态取决于其分配到 DM-worker 上的[子任务状态]( ``` { - "result": true, # 查询是否成功。 - "msg": "", # 查询失败原因描述。 - "sources": [ # DM-worker 列表。 + "result": true, # 查询是否成功 + "msg": "", # 查询失败原因描述 + "sources": [ # DM-worker 列表 { "result": true, "msg": "", @@ -84,41 +84,41 @@ DM 的迁移任务状态取决于其分配到 DM-worker 上的[子任务状态]( "result": null, "relayStatus": null }, - "subTaskStatus": [ # 上游 MySQL 所有子任务的信息。 + "subTaskStatus": [ # 上游 MySQL 所有子任务的信息 { - "name": "test", # 子任务名称。 - "stage": "Running", # 子任务运行状态,包括 “New”,“Running”,“Paused”,“Stopped” 以及 “Finished”。 - "unit": "Sync", # DM 的处理单元,包括 “Check”,“Dump“,“Load” 以及 “Sync”。 - "result": null, # 子任务失败时显示错误信息。 - "unresolvedDDLLockID": "test-`test`.`t_target`", # sharding DDL lock ID,可用于异常情况下手动处理 sharding DDL lock。 - "sync": { # 当前 `Sync` 处理单元的同步信息。 - "totalEvents": "12", # 该子任务中同步的 binlog event 总数。 - "totalTps": "1", # 该子任务中每秒同步的 binlog event 数量。 - "recentTps": "1", # 该子任务中最后一秒同步的 binlog event 数量。 - "masterBinlog": "(bin.000001, 3234)", # 上游数据库当前的 binlog position。 - "masterBinlogGtid": "c0149e17-dff1-11e8-b6a8-0242ac110004:1-14", # 上游数据库当前的 GTID 信息。 - "syncerBinlog": "(bin.000001, 2525)", # 已被 `Sync` 处理单元同步的 binlog position。 - "syncerBinlogGtid": "", # 当前版本总是为空(因为 `Sync` 处理单元暂不使用 GTID 同步数据)。 - "blockingDDLs": [ # 当前被阻塞的 DDL 列表。该项仅在当前 DM-worker 所有上游表都处于 “synced“ 状态时才有数值,此时该列表包含的是待执行或待跳过的 sharding DDL 语句. + "name": "test", # 子任务名称 + "stage": "Running", # 子任务运行状态,包括 “New”,“Running”,“Paused”,“Stopped” 以及 “Finished” + "unit": "Sync", # DM 的处理单元,包括 “Check”,“Dump“,“Load” 以及 “Sync” + "result": null, # 子任务失败时显示错误信息 + "unresolvedDDLLockID": "test-`test`.`t_target`", # sharding DDL lock ID,可用于异常情况下手动处理 sharding DDL lock + "sync": { # 当前 `Sync` 处理单元的同步信息 + "totalEvents": "12", # 该子任务中同步的 binlog event 总数 + "totalTps": "1", # 该子任务中每秒同步的 binlog event 数量 + "recentTps": "1", # 该子任务中最后一秒同步的 binlog event 数量 + "masterBinlog": "(bin.000001, 3234)", # 上游数据库当前的 binlog position + "masterBinlogGtid": "c0149e17-dff1-11e8-b6a8-0242ac110004:1-14", # 上游数据库当前的 GTID 信息 + "syncerBinlog": "(bin.000001, 2525)", # 已被 `Sync` 处理单元同步的 binlog position + "syncerBinlogGtid": "", # 当前版本总是为空(因为 `Sync` 处理单元暂不使用 GTID 同步数据) + "blockingDDLs": [ # 当前被阻塞的 DDL 列表。该项仅在当前 DM-worker 所有上游表都处于 “synced“ 状态时才有数值,此时该列表包含的是待执行或待跳过的 sharding DDL 语句 "USE `test`; ALTER TABLE `test`.`t_target` DROP COLUMN `age`;" ], - "unresolvedGroups": [ # 没有被解决的 sharding group 信息。 + "unresolvedGroups": [ # 没有被解决的 sharding group 信息 { - "target": "`test`.`t_target`", # 待同步的下游表。 + "target": "`test`.`t_target`", # 待同步的下游表 "DDLs": [ "USE `test`; ALTER TABLE `test`.`t_target` DROP COLUMN `age`;" ], - "firstPos": "(bin|000001.000001, 3130)", # sharding DDL 语句起始 binlog position。 - "synced": [ # `Sync` 处理单元已经读到该 sharding DDL 的上游分表。 + "firstPos": "(bin|000001.000001, 3130)", # sharding DDL 语句起始 binlog position + "synced": [ # `Sync` 处理单元已经读到该 sharding DDL 的上游分表 "`test`.`t2`" "`test`.`t3`" "`test`.`t1`" ], - "unsynced": [ # `Sync` 处理单元未读到该 sharding DDL 的上游分表。如有上游分表未完成同步,`blockingDDLs` 为空。 + "unsynced": [ # `Sync` 处理单元未读到该 sharding DDL 的上游分表。如有上游分表未完成同步,`blockingDDLs` 为空 ] } ], - "synced": false # 增量同步是否已追上上游。由于后台 `Sync` 单元并不会实时刷新保存点,当前值为 “false“ 并不一定代表发生了同步延迟。 + "synced": false # 增量同步是否已追上上游。由于后台 `Sync` 单元并不会实时刷新保存点,当前值为 “false“ 并不一定代表发生了同步延迟 } } ] @@ -139,10 +139,10 @@ DM 的迁移任务状态取决于其分配到 DM-worker 上的[子任务状态]( "unit": "Load", "result": null, "unresolvedDDLLockID": "", - "load": { # `Load` 处理单元的同步信息。 - "finishedBytes": "115", # 已全量导入字节数。 - "totalBytes": "452", # 总计需要导入的字节数。 - "progress": "25.44 %" # 全量导入进度。 + "load": { # `Load` 处理单元的同步信息 + "finishedBytes": "115", # 已全量导入字节数 + "totalBytes": "452", # 总计需要导入的字节数 + "progress": "25.44 %" # 全量导入进度 } } ] From 9afdd2d66d10f357aec9d0b1b09f3330be5c8a31 Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Thu, 21 May 2020 17:25:52 +0800 Subject: [PATCH 07/32] fix CI --- zh/stop-task.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh/stop-task.md b/zh/stop-task.md index 46c52cae5..74fccba28 100644 --- a/zh/stop-task.md +++ b/zh/stop-task.md @@ -7,7 +7,7 @@ category: reference # 停止数据同步任务 -`stop-task` 命令用于停止数据同步任务。有关 `stop-task` 与 `pause-task` 的区别,请参考[暂停数据同步任务](pause_task.md)中的相关说明。 +`stop-task` 命令用于停止数据同步任务。有关 `stop-task` 与 `pause-task` 的区别,请参考[暂停数据同步任务](pause-task.md)中的相关说明。 {{< copyable "" >}} From e0643fdd4f10cf35f278acc5575c6117953ac3bb Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Thu, 21 May 2020 17:44:51 +0800 Subject: [PATCH 08/32] fix CI --- zh/manage-source.md | 7 +++++-- zh/query-task.md | 6 +++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/zh/manage-source.md b/zh/manage-source.md index 196e60054..8da938ea0 100644 --- a/zh/manage-source.md +++ b/zh/manage-source.md @@ -4,7 +4,10 @@ summary: 了解如何管理上游 MySQL 实例。 category: reference --- -# 加密数据库密码 +# 管理上游 MySQL 实例 +本文介绍了如何使用 [dmctl](overview.md#dmctl) 组件来加密数据库密码和管理数据源配置。 + +## 加密数据库密码 在 DM 相关配置文件中,如果上游 MySQL 密码不为空,要求必须使用经 dmctl 加密后的密码,否则会报错。对于同一个原始密码,每次加密后密码不同。 @@ -18,7 +21,7 @@ category: reference VjX8cEeTX+qcvZ3bPaO4h0C80pe/1aU= ``` -# 加载数据源配置 +## 加载数据源配置 `operate-source` 命令用于将数据源配置加载到 DM 集群中。 diff --git a/zh/query-task.md b/zh/query-task.md index d7c04a9a2..22494e230 100644 --- a/zh/query-task.md +++ b/zh/query-task.md @@ -6,6 +6,10 @@ category: reference # 查询数据同步任务信息 +本文介绍了如何使用 [dmctl](overview.md#dmctl) 组件来查询任务状态和任务错误。 + +## 查询数据同步任务状态 + `query-status` 命令用于查询数据同步任务状态。有关查询结果及子任务状态,详见[查询状态](query-status.md)。 {{< copyable "" >}} @@ -50,7 +54,7 @@ query-status 有关查询结果中各参数的意义,详见[查询状态结果](query-status.md#查询结果)。 -# 查询数据同步任务错误 +## 查询数据同步任务错误 `query-error` 可用于查询数据同步任务与 relay 处理单元的错误信息。相比于 `query-status`,`query-error` 一般不用于获取除错误信息之外的其他信息。有关查询结果及子任务状态,详见[查询错误](query-error.md)。 From fa3a3582fe5f0b4cf9305739451e49a3bea42c28 Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Thu, 21 May 2020 19:43:02 +0800 Subject: [PATCH 09/32] address comment --- zh/manage-source.md | 1 + 1 file changed, 1 insertion(+) diff --git a/zh/manage-source.md b/zh/manage-source.md index 8da938ea0..e62723072 100644 --- a/zh/manage-source.md +++ b/zh/manage-source.md @@ -5,6 +5,7 @@ category: reference --- # 管理上游 MySQL 实例 + 本文介绍了如何使用 [dmctl](overview.md#dmctl) 组件来加密数据库密码和管理数据源配置。 ## 加密数据库密码 From 2991fc62701f8d626d3eec415d52c5b24774741e Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Thu, 21 May 2020 19:55:30 +0800 Subject: [PATCH 10/32] minor change --- zh/query-task.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/zh/query-task.md b/zh/query-task.md index 22494e230..ebbc076d5 100644 --- a/zh/query-task.md +++ b/zh/query-task.md @@ -32,7 +32,7 @@ Global Flags: -s, --source strings MySQL Source ID ``` -## 命令用法示例 +### 命令用法示例 {{< copyable "" >}} @@ -40,7 +40,7 @@ Global Flags: query-status ``` -## 参数解释 +### 参数解释 - `-s`: - 可选 @@ -50,7 +50,7 @@ query-status - 指定任务名称 - 如果未设置,则返回全部数据同步任务的查询结果 -## 返回结果示例 +### 返回结果示例 有关查询结果中各参数的意义,详见[查询状态结果](query-status.md#查询结果)。 @@ -79,7 +79,7 @@ Global Flags: -s, --source strings MySQL Source ID ``` -## 命令用法示例 +### 命令用法示例 {{< copyable "" >}} @@ -87,7 +87,7 @@ Global Flags: query-error ``` -## 参数解释 +### 参数解释 - `-s`: - 可选 @@ -97,6 +97,6 @@ query-error - 指定任务名称 - 如果未设置,则返回全部数据同步任务错误的查询结果 -## 返回结果示例 +### 返回结果示例 有关查询错误结果中各参数的意义,详见[查询错误结果](query-error.md#查询结果)。 From 82e23abfc09b154b9ae9b645809c54e3cc274506 Mon Sep 17 00:00:00 2001 From: GMHDBJD <35025882+GMHDBJD@users.noreply.github.com> Date: Thu, 21 May 2020 21:53:00 +0800 Subject: [PATCH 11/32] Update skip-or-replace-abnormal-sql-statements.md --- zh/skip-or-replace-abnormal-sql-statements.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh/skip-or-replace-abnormal-sql-statements.md b/zh/skip-or-replace-abnormal-sql-statements.md index 36174564b..c98e76ce5 100644 --- a/zh/skip-or-replace-abnormal-sql-statements.md +++ b/zh/skip-or-replace-abnormal-sql-statements.md @@ -1,6 +1,6 @@ --- title: 跳过或替代执行异常的 SQL 语句 -summary: 了解 Tidb Data Migration 如何跳过或替代执行异常的 SQL 语句。 +summary: 了解 TiDB Data Migration 如何跳过或替代执行异常的 SQL 语句。 category: reference --- From 30f479ecf70d9b0545fca832a488aa7ecaa7c450 Mon Sep 17 00:00:00 2001 From: GMHDBJD <35025882+GMHDBJD@users.noreply.github.com> Date: Fri, 22 May 2020 11:45:41 +0800 Subject: [PATCH 12/32] Update zh/create-task.md Co-authored-by: Xuecheng Zhang --- zh/create-task.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh/create-task.md b/zh/create-task.md index 58d981a2d..f05c0390e 100644 --- a/zh/create-task.md +++ b/zh/create-task.md @@ -6,7 +6,7 @@ category: reference # 创建数据同步任务 -`start-task` 命令用于创建数据同步任务。 当数据同步任务启动时,DM 将[自动对相应权限和配置进行前置检查](precheck.md)。 +`start-task` 命令用于创建数据同步任务。当数据同步任务启动时,DM 将[自动对相应权限和配置进行前置检查](precheck.md)。 {{< copyable "" >}} From 5fdfe82f567be9d9f3894535197bf8341bfe46a3 Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Fri, 22 May 2020 11:56:57 +0800 Subject: [PATCH 13/32] address comment --- zh/query-status.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh/query-status.md b/zh/query-status.md index 2c88b817e..8780ce415 100644 --- a/zh/query-status.md +++ b/zh/query-status.md @@ -98,7 +98,7 @@ DM 的迁移任务状态取决于其分配到 DM-worker 上的[子任务状态]( "masterBinlog": "(bin.000001, 3234)", # 上游数据库当前的 binlog position "masterBinlogGtid": "c0149e17-dff1-11e8-b6a8-0242ac110004:1-14", # 上游数据库当前的 GTID 信息 "syncerBinlog": "(bin.000001, 2525)", # 已被 `Sync` 处理单元同步的 binlog position - "syncerBinlogGtid": "", # 当前版本总是为空(因为 `Sync` 处理单元暂不使用 GTID 同步数据) + "syncerBinlogGtid": "", # 使用 GTID 同步的 binlog position "blockingDDLs": [ # 当前被阻塞的 DDL 列表。该项仅在当前 DM-worker 所有上游表都处于 “synced“ 状态时才有数值,此时该列表包含的是待执行或待跳过的 sharding DDL 语句 "USE `test`; ALTER TABLE `test`.`t_target` DROP COLUMN `age`;" ], From 6891c1136b6088de8ee18f754c642360590dd1c4 Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Fri, 22 May 2020 12:21:28 +0800 Subject: [PATCH 14/32] address comment --- zh/skip-or-replace-abnormal-sql-statements.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/zh/skip-or-replace-abnormal-sql-statements.md b/zh/skip-or-replace-abnormal-sql-statements.md index c98e76ce5..fe44c755f 100644 --- a/zh/skip-or-replace-abnormal-sql-statements.md +++ b/zh/skip-or-replace-abnormal-sql-statements.md @@ -8,6 +8,10 @@ category: reference 本文介绍了如何使用 DM 来处理异常的 SQL 语句。 +> **注意:** +> +> 当前 master 分支中该功能尚未重构完成,某些命令暂不支持。 + 目前,TiDB 并不完全兼容所有的 MySQL 语法(详见 [TiDB 已支持的 DDL 语句](https://pingcap.com/docs-cn/dev/reference/mysql-compatibility/#ddl))。当使用 DM 从 MySQL 同步数据到 TiDB 时,如果 TiDB 不支持对应的 SQL 语句,可能会造成错误并中断同步任务。在这种情况下,DM 提供以下两种方式来恢复同步: - 使用 dmctl 来手动跳过 (skip) 该 SQL 语句对应的 binlog event。 From 4a2450f19822278d12c81325cb3e063308448b50 Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Fri, 22 May 2020 12:27:34 +0800 Subject: [PATCH 15/32] update TOC --- zh/TOC.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/zh/TOC.md b/zh/TOC.md index 0c05eb7ec..8705cf6f5 100644 --- a/zh/TOC.md +++ b/zh/TOC.md @@ -30,12 +30,15 @@ - [版本升级](dm-upgrade.md) - [扩缩容](scale-a-dm-cluster.md) - [重启集群](cluster-operations.md#重启集群组件) - + 任务管理 参考 [任务前置检查](precheck.md),[任务状态查询](query-status.md),[跳过或替代执行异常的 SQL 语句](skip-or-replace-abnormal-sql-statements.md) - - 创建 [参考](manage-replication-tasks.md##创建数据同步任务) - - 查询 [参考](manage-replication-tasks.md#查询数据同步任务状态) - - 暂停 [参考](manage-replication-tasks.md#暂停数据同步任务) - - 重启 - - 删除 + + 任务管理 + - [管理上游数据源](manage-source.md) + - [任务前置检查](precheck.md) + - [创建任务](create-task.md) + - [查询任务](query-task.md) + - [暂停任务](pause-task.md) + - [恢复任务](resume-task.md) + - [删除任务](stop-task.md) + - [跳过或替代执行异常的 SQL 语句](skip-or-replace-abnormal-sql-statements.md) - [告警处理](handle-alerts.md) - [日常巡检](daily-check.md) + 故障处理 参考 [故障诊断](troubleshoot-dm.md),[错误含义](error-system.md) From 540649d278b45f01607723f40bcc01de28726b2e Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Fri, 22 May 2020 12:40:48 +0800 Subject: [PATCH 16/32] address comment --- zh/manage-source.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh/manage-source.md b/zh/manage-source.md index e62723072..9bee20fd4 100644 --- a/zh/manage-source.md +++ b/zh/manage-source.md @@ -10,7 +10,7 @@ category: reference ## 加密数据库密码 -在 DM 相关配置文件中,如果上游 MySQL 密码不为空,要求必须使用经 dmctl 加密后的密码,否则会报错。对于同一个原始密码,每次加密后密码不同。 +在 DM 相关配置文件中,推荐使用经 dmctl 加密后的密码。对于同一个原始密码,每次加密后密码不同。 {{< copyable "shell-regular" >}} From 6b0cc3a1fb8cdb5eb6fcd50dd57902f8230e3e69 Mon Sep 17 00:00:00 2001 From: GMHDBJD <35025882+GMHDBJD@users.noreply.github.com> Date: Fri, 22 May 2020 13:54:14 +0800 Subject: [PATCH 17/32] Update TOC.md --- zh/TOC.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh/TOC.md b/zh/TOC.md index 8705cf6f5..973ae01e8 100644 --- a/zh/TOC.md +++ b/zh/TOC.md @@ -37,7 +37,7 @@ - [查询任务](query-task.md) - [暂停任务](pause-task.md) - [恢复任务](resume-task.md) - - [删除任务](stop-task.md) + - [停止任务](stop-task.md) - [跳过或替代执行异常的 SQL 语句](skip-or-replace-abnormal-sql-statements.md) - [告警处理](handle-alerts.md) - [日常巡检](daily-check.md) From 38dd1d7a0b77e03c3727f379a19ccc596b145637 Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Fri, 22 May 2020 18:18:36 +0800 Subject: [PATCH 18/32] add query-status and query-error in TOC --- zh/TOC.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/zh/TOC.md b/zh/TOC.md index 973ae01e8..0097b7ed0 100644 --- a/zh/TOC.md +++ b/zh/TOC.md @@ -34,7 +34,8 @@ - [管理上游数据源](manage-source.md) - [任务前置检查](precheck.md) - [创建任务](create-task.md) - - [查询任务](query-task.md) + - [查询状态](query-status.md) + - [查询错误](query-error.md) - [暂停任务](pause-task.md) - [恢复任务](resume-task.md) - [停止任务](stop-task.md) From 9309d7691f85a9af38e72c6a3eb030fa066005d8 Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Mon, 25 May 2020 14:23:46 +0800 Subject: [PATCH 19/32] fix toc --- zh/TOC.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh/TOC.md b/zh/TOC.md index 62e46bd38..f4f034ea0 100644 --- a/zh/TOC.md +++ b/zh/TOC.md @@ -44,7 +44,7 @@ - [恢复任务](resume-task.md) - [停止任务](stop-task.md) - [跳过或替代执行异常的 SQL 语句](skip-or-replace-abnormal-sql-statements.md) - - [手动处理 Sharding DDL Lock](manually-handling-sharding-ddl-locks.md) + - [手动处理 Sharding DDL Lock](manually-handling-sharding-ddl-locks.md) - [告警处理](handle-alerts.md) - [日常巡检](daily-check.md) + [DM Portal](dm-portal.md) From d07f038aa0975986052819493aef0423b96bb25b Mon Sep 17 00:00:00 2001 From: toutdesuite Date: Mon, 25 May 2020 15:13:06 +0800 Subject: [PATCH 20/32] Update zh/query-error.md Co-authored-by: Lilian Lee --- zh/query-error.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh/query-error.md b/zh/query-error.md index 1c17093e9..038033562 100644 --- a/zh/query-error.md +++ b/zh/query-error.md @@ -6,7 +6,7 @@ category: reference # TiDB Data Migration 查询运行错误 -本文介绍 DM(Data Migration)`query-error` 命令的查询错误与子任务错误。 +本文介绍 TiDB Data Migration (DM) `query-error` 命令的查询错误与子任务错误。 ## 查询结果 From c8da0cd154dd5855a268a94727eaa7bd51ef78a2 Mon Sep 17 00:00:00 2001 From: toutdesuite Date: Mon, 25 May 2020 15:23:32 +0800 Subject: [PATCH 21/32] Update zh/query-status.md Co-authored-by: Lilian Lee --- zh/query-status.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh/query-status.md b/zh/query-status.md index 4f5f0830b..e9ff47f6d 100644 --- a/zh/query-status.md +++ b/zh/query-status.md @@ -6,7 +6,7 @@ category: reference # TiDB Data Migration 查询状态 -本文介绍 DM(Data Migration)`query-status` 命令的查询结果、任务状态与子任务状态。 +本文介绍 TiDB Data Migration (DM) `query-status` 命令的查询结果、任务状态与子任务状态。 ## 查询结果 From 4e700dfe3d653ddedad73e2fee77d4cffc6570ec Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Mon, 25 May 2020 15:38:40 +0800 Subject: [PATCH 22/32] rm manage-replication-tasks.md --- zh/manage-replication-tasks.md | 991 --------------------------------- 1 file changed, 991 deletions(-) delete mode 100644 zh/manage-replication-tasks.md diff --git a/zh/manage-replication-tasks.md b/zh/manage-replication-tasks.md deleted file mode 100644 index 9c476fbcc..000000000 --- a/zh/manage-replication-tasks.md +++ /dev/null @@ -1,991 +0,0 @@ ---- -title: 管理数据同步任务 -category: reference ---- - -# 管理数据同步任务 - -本文介绍了如何使用 [dmctl](overview.md#dmctl) 组件来进行数据同步任务的管理和维护。对于用 DM-Ansible 部署的 DM 集群,dmctl 二进制文件路径为 `dm-ansible/dmctl`。 - -dmctl 支持交互模式用于人工操作,同时也支持命令模式用于脚本。 - -## dmctl 交互模式 - -本部分描述了在交互模式下一些 dmctl 命令的基本用法。 - -### dmctl 使用帮助 - -{{< copyable "shell-regular" >}} - -```bash -./dmctl --help -``` - -``` -Usage: dmctl [global options] command [command options] [arguments...] - -Available Commands: - check-task check-task - migrate-relay migrate-relay - offline-worker offline-worker
- operate-source operate-source - pause-relay pause-relay <-s source ...> - pause-task pause-task [-s source ...] - purge-relay purge-relay <-s source> [--filename] [--sub-dir] - query-error query-error [-s source ...] [task-name] - query-status query-status [-s source ...] [task-name] [--more] - resume-relay resume-relay <-s source ...> - resume-task resume-task [-s source ...] - show-ddl-locks show-ddl-locks [-s source ...] [task-name] - sql-inject sql-inject <-s source> - sql-replace sql-replace <-s source> [-b binlog-pos] [-p sql-pattern] [--sharding] - sql-skip sql-skip <-s source> [-b binlog-pos] [-p sql-pattern] [--sharding] - start-task start-task [-s source ...] - stop-task stop-task [-s source ...] - switch-relay-master switch-relay-master <-s source ...> - unlock-ddl-lock unlock-ddl-lock [-s source ...] - update-master-config update-master-config - update-relay update-relay [-s source ...] - update-task update-task [-s source ...] - -Special Commands: - --encrypt encrypt plaintext to ciphertext - -Global Options: - --V prints version and exit - --config path to config file - --master-addr master API server addr - --rpc-timeout rpc timeout; default value is 10m -``` - -### 加密数据库密码 - -在 DM 相关配置文件中,要求必须使用经 dmctl 加密后的密码,否则会报错。对于同一个原始密码,每次加密后密码不同。 - -{{< copyable "shell-regular" >}} - -```bash -./dmctl -encrypt 123456 -``` - -``` -VjX8cEeTX+qcvZ3bPaO4h0C80pe/1aU= -``` - -### 任务管理概览 - -进入交互模式,与 DM-master 进行交互: - -{{< copyable "shell-regular" >}} - -```bash -./dmctl -master-addr 172.16.30.14:8261 -``` - -``` -Welcome to dmctl -Release Version: v1.0.1 -Git Commit Hash: e63c6cdebea0edcf2ef8c91d84cff4aaa5fc2df7 -Git Branch: release-1.0 -UTC Build Time: 2019-09-10 06:15:05 -Go Version: go version go1.12 linux/amd64 - -» help -DM control - -Usage: - dmctl [command] - -Available Commands: - check-task check the config file of the task - help help about any command - migrate-relay migrate DM-worker's relay unit - offline-worker offline worker which has been closed - operate-source create/update/stop upstream MySQL/MariaDB source - pause-relay pause DM-worker's relay unit - pause-task pause a specified running task - purge-relay purge relay log files of the DM-worker according to the specified filename - query-error query task error - query-status query task status - resume-relay resume DM-worker's relay unit - resume-task resume a specified paused task - show-ddl-locks show un-resolved DDL locks - sql-inject inject (limited) SQLs into binlog replication unit as binlog events - sql-replace replace SQLs matched by a specific binlog position (binlog-pos) or a SQL pattern (sql-pattern); each SQL must end with a semicolon - sql-skip skip the binlog event matched by a specific binlog position (binlog-pos) or a SQL pattern (sql-pattern) - start-task start a task as defined in the config file - stop-task stop a specified task - switch-relay-master switch the master server of the DM-worker's relay unit - unlock-ddl-lock forcefully unlock DDL lock - update-master-config update the config of the DM-master - update-relay update the relay unit config of the DM-worker - update-task update a task's config for routes, filters, or black-white-list - -Flags: - -h, --help help for dmctl - -s, --source strings MySQL Source ID - -Use `dmctl [command] --help` to get more information about a command. -``` - -## 管理数据同步任务 - -本部分描述了如何使用不同的任务管理命令来执行相应操作。 - -### 加载数据源配置 - -`operate-source` 命令用于将数据源配置加载到 DM 集群中。 - -{{< copyable "" >}} - -```bash -help operate-source -``` - -``` -create/update/stop upstream MySQL/MariaDB source - -Usage: - dmctl operate-source [flags] - -Flags: - -h, --help help for operate-source - -Global Flags: - -s, --source strings MySQL Source ID -``` - -#### 命令用法示例 - -{{< copyable "" >}} - -```bash -operate-source create ./source.toml -``` - -#### 参数解释 - -+ `create`:创建一个上游的数据库源 - -+ `update`:更新一个上游的数据库源 - -+ `stop`:停止一个上游的数据库源 - -+ `config-file`: - - 必选 - - 指定 `source.toml` 的文件路径 - -#### 返回结果示例 - -{{< copyable "" >}} - -```bash -operate-source create ./source.toml -``` - -``` -{ - "result": true, - "msg": "", - "sources": [ - { - "result": true, - "msg": "", - "source": "mysql-replica-01", - "worker": "dm-worker-1" - } - ] -} -``` - -### 创建数据同步任务 - -`start-task` 命令用于创建数据同步任务。 当数据同步任务启动时,DM 将[自动对相应权限和配置进行前置检查](precheck.md)。 - -{{< copyable "" >}} - -```bash -help start-task -``` - -``` -start a task as defined in the config file - -Usage: - dmctl start-task [-s source ...] [flags] - -Flags: - -h, --help help for start-task - -Global Flags: - -s, --source strings MySQL Source ID -``` - -#### 命令用法示例 - -{{< copyable "" >}} - -```bash -start-task [ -s "mysql-replica-01"] ./task.yaml -``` - -#### 参数解释 - -+ `-s`: - - 可选 - - 指定在特定的一个 MySQL 源上执行 `task.yaml` - - 如果设置,则只启动指定任务在该 MySQL 源上的子任务 -+ `config-file`: - - 必选 - - 指定 `task.yaml` 的文件路径 - -#### 返回结果示例 - -{{< copyable "" >}} - -```bash -start-task task.yaml -``` - -``` -{ - "result": true, - "msg": "", - "sources": [ - { - "result": true, - "msg": "", - "source": "mysql-replica-01", - "worker": "worker1" - } - ] -} -``` - -### 查询数据同步任务状态 - -`query-status` 命令用于查询数据同步任务状态。有关查询结果及子任务状态,详见[查询状态](query-status.md)。 - -{{< copyable "" >}} - -```bash -help query-status -``` - -``` -query task status - -Usage: - dmctl query-status [-s source ...] [task-name] [--more] [flags] - -Flags: - -h, --help help for query-status - --more whether to print the detailed task information - -Global Flags: - -s, --source strings MySQL Source ID -``` - -#### 命令用法示例 - -{{< copyable "" >}} - -```bash -query-status -``` - -#### 参数解释 - -- `-s`: - - 可选 - - 查询在指定的一个 MySQL 源上运行的数据同步任务的子任务 -- `task-name`: - - 可选 - - 指定任务名称 - - 如果未设置,则返回全部数据同步任务的查询结果 - -#### 返回结果示例 - -有关查询结果中各参数的意义,详见[查询状态结果](query-status.md#查询结果)。 - -### 查询运行错误 - -`query-error` 可用于查询数据同步任务与 relay 处理单元的错误信息。相比于 `query-status`,`query-error` 一般不用于获取除错误信息之外的其他信息。 - -`query-error` 常用于获取 `sql-skip`/`sql-replace` 所需的 binlog position 信息,有关 `query-error` 的参数与结果解释,请参考 [“跳过或替代执行异常的 SQL 语句”文档中的 query-error](skip-or-replace-abnormal-sql-statements.md#query-error)。 - -### 暂停数据同步任务 - -`pause-task` 命令用于暂停数据同步任务。 - -> **注意:** -> -> 有关 `pause-task` 与 `stop-task` 的区别如下: -> -> - 使用 `pause-task` 仅暂停同步任务的执行,但仍然会在内存中保留任务的状态信息等,且可通过 `query-status` 进行查询;使用 `stop-task` 会停止同步任务的执行,并移除内存中与该任务相关的信息,且不可再通过 `query-status` 进行查询,但不会移除已经写入到下游数据库中的数据以及其中的 checkpoint 等 `dm_meta` 信息。 -> - 使用 `pause-task` 暂停同步任务期间,由于任务本身仍然存在,因此不能再启动同名的新任务,且会阻止对该任务所需 relay log 的清理;使用 `stop-task` 停止任务后,由于任务不再存在,因此可以再启动同名的新任务,且不会阻止对 relay log 的清理。 -> - `pause-task` 一般用于临时暂停同步任务以排查问题等;`stop-task` 一般用于永久删除同步任务或通过与 `start-task` 配合以更新配置信息。 - -{{< copyable "" >}} - -```bash -help pause-task -``` - -``` -pause a specified running task - -Usage: - dmctl pause-task [-s source ...] [flags] - -Flags: - -h, --help help for pause-task - -Global Flags: - -s, --source strings MySQL Source ID -``` - -#### 命令用法示例 - -{{< copyable "" >}} - -```bash -pause-task [-s "mysql-replica-01"] task-name -``` - -#### 参数解释 - -- `-s`: - - 可选 - - 指定在特定的一个 MySQL 源上暂停数据同步任务的子任务 - - 如果设置,则只暂停该任务在指定 MySQL 源上的子任务 -- `task-name`: - - 必选 - - 指定任务名称 - -#### 返回结果示例 - -{{< copyable "" >}} - -```bash -pause-task test -``` - -``` -{ - "op": "Pause", - "result": true, - "msg": "", - "sources": [ - { - "result": true, - "msg": "", - "source": "mysql-replica-01", - "worker": "worker1" - } - ] -} -``` - -### 恢复数据同步任务 - -`resume-task` 命令用于恢复处于 `Paused` 状态的数据同步任务,通常用于在人为处理完造成同步任务暂停的故障后手动恢复同步任务。 - -{{< copyable "" >}} - -```bash -help resume-task -``` - -``` -resume a specified paused task - -Usage: - dmctl resume-task [-s source ...] [flags] - -Flags: - -h, --help help for resume-task - -Global Flags: - -s, --source strings MySQL Source ID -``` - -#### 命令用法示例 - -{{< copyable "" >}} - -```bash -resume-task [-s "mysql-replica-01"] task-name -``` - -#### 参数解释 - -- `-s`: - - 可选 - - 指定在特定的一个 MySQL 源上恢复数据同步任务的子任务 - - 如果设置,则只恢复该任务在指定 MySQL 源上的子任务 -- `task-name`: - - 必选 - - 指定任务名称 - -#### 返回结果示例 - -{{< copyable "" >}} - -```bash -resume-task test -``` - -``` -{ - "op": "Resume", - "result": true, - "msg": "", - "sources": [ - { - "result": true, - "msg": "", - "source": "mysql-replica-01", - "worker": "worker1" - } - ] -} -``` - -### 停止数据同步任务 - -`stop-task` 命令用于停止数据同步任务。有关 `stop-task` 与 `pause-task` 的区别,请参考[暂停数据同步任务](#暂停数据同步任务)中的相关说明。 - -{{< copyable "" >}} - -```bash -help stop-task -``` - -``` -stop a specified task - -Usage: - dmctl stop-task [-s source ...] [flags] - -Flags: - -h, --help help for stop-task - -Global Flags: - -s, --source strings MySQL Source ID -``` - -#### 命令用法示例 - -{{< copyable "" >}} - -```bash -stop-task [-s "mysql-replica-01"] task-name -``` - -#### 参数解释 - -- `-s`: - - 可选 - - 指定在特定的一个 MySQL 源上停止数据同步任务的子任务 - - 如果设置,则只停止该任务在指定 MySQL 源上的子任务 -- `task-name`: - - 必选 - - 指定任务名称 - -#### 返回结果示例 - -{{< copyable "" >}} - -```bash -stop-task test -``` - -``` -{ - "op": "Stop", - "result": true, - "msg": "", - "sources": [ - { - "result": true, - "msg": "", - "source": "mysql-replica-01", - "worker": "worker1" - } - ] -} -``` - -### 更新数据同步任务 - -`update-task` 命令用于更新数据同步任务。 - -支持的更新项包括: - -- Table routing 规则 -- Black & white table lists 规则 -- Binlog event filter 规则 - -其余项均不支持更新。 - -> **注意:** -> -> 如果能确保同步任务所需的 relay log 在任务停止期间不会被清理,则推荐使用[不支持更新项的更新步骤](#不支持更新项的更新步骤)来以统一的方式更新任务配置信息。 - -#### 支持更新项的更新步骤 - -1. 使用 `query-status ` 查询对应数据同步任务的状态。 - - - 若 `stage` 不为 `Paused`,则先使用 `pause-task ` 暂停任务。 - -2. 在 `task.yaml` 文件中更新需要修改的自定义配置或者错误配置。 - -3. 使用 `update-task task.yaml` 更新任务配置。 - -4. 使用 `resume-task ` 恢复任务。 - -#### 不支持更新项的更新步骤 - -1. 使用 `query-status ` 查询对应数据同步任务的状态。 - - - 若任务存在,则通过 `stop-task ` 停止任务。 - -2. 在 `task.yaml` 文件中更新需要修改的自定义配置或者错误配置。 - -3. 使用 `start-task ` 重启恢复任务。 - -{{< copyable "" >}} - -```bash -help update-task -``` - -``` -update a task's config for routes, filters, or black-white-list - -Usage: - dmctl update-task [-s source ...] [flags] - -Flags: - -h, --help help for update-task - -Global Flags: - -s, --source strings MySQL Source ID -``` - -#### 命令用法示例 - -{{< copyable "" >}} - -```bash -update-task [-s "mysql-replica-01"] ./task.yaml -``` - -#### 参数解释 - -- `-s`: - - 可选 - - 指定在特定的一个 MySQL 源上更新数据同步任务的子任务 - - 如果设置,则只更新指定 MySQL 源上的子任务配置 -- `config-file`: - - 必选 - - 指定 `task.yaml` 的文件路径 - -#### 返回结果示例 - -{{< copyable "" >}} - -```bash -update-task task_all_black.yaml -``` - -``` -{ - "result": true, - "msg": "", - "sources": [ - ] -} -``` - -## 管理 DDL lock - -目前与 DDL lock 相关的命令主要包括 `show-ddl-locks`、`unlock-ddl-lock` 等。有关它们的功能、用法以及适用场景等,请参考[手动处理 sharding DDL lock](manually-handling-sharding-ddl-locks.md)。 - -## 其他任务与集群管理命令 - -除上述常用的任务管理命令外,DM 还提供了其他一些命令用于管理数据同步任务或 DM 集群本身。 - -### 检查任务配置文件 - -`check-task` 命令用于检查指定的数据同步任务配置文件(`task.yaml`)是否合法以及上下游数据库的配置、权限、表结构等是否满足同步需要。具体可参考[上游 MySQL 实例配置前置检查](precheck.md)。 - -在使用 `start-task` 启动同步任务时,DM 也会执行 `check-task` 所做的全部检查。 - -{{< copyable "" >}} - -```bash -help check-task -``` - -``` -check the config file of the task - -Usage: - dmctl check-task [flags] - -Flags: - -h, --help help for check-task - -Global Flags: - -s, --source strings MySQL Source ID -``` - -#### 命令用法示例 - -{{< copyable "" >}} - -```bash -check-task task.yaml -``` - -#### 参数解释 - -+ `config-file`: - - 必选 - - 指定 `task.yaml` 的文件路径 - -#### 返回结果示例 - -{{< copyable "" >}} - -```bash -check-task task-test.yaml -``` - -``` -{ - "result": true, - "msg": "check pass!!!" -} -``` - -### 暂停 relay 处理单元 - -relay 处理单元在 DM-worker 进程启动后即开始自动运行。通过使用 `pause-relay` 命令,我们可以暂停 relay 处理单元的运行。 - -当需要切换 DM-worker 通过虚拟 IP 连接的上游 MySQL 时,我们需要使用 `pause-relay` 对 DM 执行变更。具体变更步骤请参考[虚拟 IP 环境下的上游主从切换](usage-scenario-master-slave-switch.md#虚拟-IP-环境下的上游主从切换)。 - -{{< copyable "" >}} - -```bash -help pause-relay -``` - -``` -pause DM-worker's relay unit - -Usage: - dmctl pause-relay <-s source ...> [flags] - -Flags: - -h, --help help for pause-relay - -Global Flags: - -s, --source strings MySQL Source ID -``` - -#### 命令用法示例 - -{{< copyable "" >}} - -```bash -pause-relay -s "mysql-replica-01" -``` - -#### 参数解释 - -- `-s`: - - 必选 - - 指定需要暂停 relay 处理单元的 MySQL 源 - -#### 返回结果示例 - -{{< copyable "" >}} - -```bash -pause-relay -s "mysql-replica-01" -``` - -``` -{ - "op": "PauseRelay", - "result": true, - "msg": "", - "sources": [ - { - "result": true, - "msg": "", - "source": "mysql-replica-01", - "worker": "worker1" - } - ] -} -``` - -### 恢复 relay 处理单元 - -`resume-relay` 用于恢复处于 `Paused` 状态的 relay 处理单元。 - -当需要切换 DM-worker 通过虚拟 IP 连接的上游 MySQL 时,我们需要使用 `resume-relay` 对 DM 执行变更。具体变更步骤请参考[虚拟 IP 环境下的上游主从切换](usage-scenario-master-slave-switch.md#虚拟-IP-环境下的上游主从切换)。 - -{{< copyable "" >}} - -```bash -help resume-relay -``` - -``` -resume DM-worker's relay unit - -Usage: - dmctl resume-relay <-s source ...> [flags] - -Flags: - -h, --help help for resume-relay - -Global Flags: - -s, --source strings MySQL Source ID -``` - -#### 命令用法示例 - -{{< copyable "" >}} - -```bash -resume-relay -s "mysql-replica-01" -``` - -#### 参数解释 - -- `-s`: - - 必选 - - 指定需要恢复 relay 处理单元的 MySQL 源 - -#### 返回结果示例 - -{{< copyable "" >}} - -```bash -resume-relay -s "mysql-replica-01" -``` - -``` -{ - "op": "ResumeRelay", - "result": true, - "msg": "", - "sources": [ - { - "result": true, - "msg": "", - "source": "mysql-replica-01", - "worker": "worker1" - } - ] -} -``` - -### 切换 relay log 到新的子目录 - -relay 处理单元通过使用不同的子目录来存储来自上游不同 MySQL 实例的 binlog 数据。通过使用 `switch-relay-master` 命令,我们可以变更 relay 处理单元以开始使用一个新的子目录。 - -当需要切换 DM-worker 通过虚拟 IP 连接的上游 MySQL 时,我们需要使用 `switch-relay-master` 对 DM 执行变更。具体变更步骤请参考[虚拟 IP 环境下的上游主从切换](usage-scenario-master-slave-switch.md#虚拟-IP-环境下的上游主从切换)。 - -{{< copyable "" >}} - -```bash -help switch-relay-master -``` - -``` -switch the master server of the DM-worker's relay unit - -Usage: - dmctl switch-relay-master <-s source ...> [flags] - -Flags: - -h, --help help for switch-relay-master - -Global Flags: - -s, --source strings MySQL Source ID -``` - -#### 命令用法示例 - -{{< copyable "" >}} - -```bash -switch-relay-master -s "mysql-replica-01" -``` - -#### 参数解释 - -- `-s`: - - 必选 - - 指定需要切换 relay 处理单元使用子目录的 MySQL 源 - -#### 返回结果示例 - -{{< copyable "" >}} - -```bash -switch-relay-master -s "mysql-replica-01" -``` - -``` -{ - "result": true, - "msg": "", - "sources": [ - { - "result": true, - "msg": "", - "source": "mysql-replica-01", - "worker": "" - } - ] -} -``` - -### 手动清理 relay log - -DM 支持[自动清理 relay log](relay-log.md#自动数据清理),但同时 DM 也支持使用 `purge-relay` 命令[手动清理 relay log](relay-log.md#手动数据清理)。 - -{{< copyable "" >}} - -```bash -help purge-relay -``` - -``` -purge relay log files of the DM-worker according to the specified filename - -Usage: - dmctl purge-relay <-s source> [--filename] [--sub-dir] [flags] - -Flags: - -f, --filename string name of the terminal file before which to purge relay log files. Sample format: "mysql-bin.000 -006" - -h, --help help for purge-relay - --sub-dir string specify relay sub directory for --filename. If not specified, the latest one will be used. Sam -ple format: "2ae76434-f79f-11e8-bde2-0242ac130008.000001" - -Global Flags: - -s, --source strings MySQL Source ID -``` - -#### 命令用法示例 - -{{< copyable "" >}} - -```bash -purge-relay -s "mysql-replica-01" --filename "mysql-bin.000003" -``` - -#### 参数解释 - -- `-s`: - - 必选 - - 指定需要执行 relay log 清理操作的 MySQL 源 -- `--filename`: - - 必选 - - 指定标识 relay log 将要停止清理的文件名。如指定为 `mysql-bin.000100`,则只尝试清理到 `mysql-bin.000099` -- `--sub-dir`: - - 可选 - - 指定 `--filename` 对应的 relay log 子目录,如果不指定则会使用当前最新的子目录 - -#### 返回结果示例 - -{{< copyable "" >}} - -```bash -purge-relay -s "mysql-replica-01" --filename "mysql-bin.000003" -``` - -``` -[warn] no --sub-dir specified for --filename; the latest one will be used -{ - "result": true, - "msg": "", - "sources": [ - { - "result": true, - "msg": "", - "source": "mysql-replica-01", - "worker": "worker1", - } - ] -} -``` - -### 预设跳过 DDL 操作 - -`sql-skip` 命令用于预设一个跳过操作。当 binlog event 的 position 或 SQL 语句与指定的 `binlog-pos` 或 `sql-pattern` 匹配时,执行该跳过操作。相关参数与结果解释,请参考[`sql-skip`](skip-or-replace-abnormal-sql-statements.md#sql-skip)。 - -### 预设替换 DDL 操作 - -`sql-replace` 命令用于预设一个替换执行操作。当 binlog event 的 position 或 SQL 语句与指定的 `binlog-pos` 或 `sql-pattern` 匹配时,执行该替换执行操作。相关参数与结果解释,请参考[`sql-replace`](skip-or-replace-abnormal-sql-statements.md#sql-replace)。 - -## dmctl 命令模式 - -命令模式跟交互模式的区别是,执行命令时只需要在 dmctl 命令后紧接着执行任务操作,任务操作同交互模式的参数一致。 - -> **注意:** -> -> + 一条 dmctl 命令只能跟一个任务操作 -> + 任务操作只能放在 dmctl 命令的最后 - -{{< copyable "shell-regular" >}} - -```bash -./dmctl -master-addr 172.16.30.14:8261 start-task task.yaml -./dmctl -master-addr 172.16.30.14:8261 stop-task task -./dmctl -master-addr 172.16.30.14:8261 query-status -``` - -``` -Available Commands: - check-task check-task - migrate-relay migrate-relay - offline-worker offline-worker
- operate-source operate-source - pause-relay pause-relay <-s source ...> - pause-task pause-task [-s source ...] - purge-relay purge-relay <-s source> [--filename] [--sub-dir] - query-error query-error [-s source ...] [task-name] - query-status query-status [-s source ...] [task-name] [--more] - resume-relay resume-relay <-s source ...> - resume-task resume-task [-s source ...] - show-ddl-locks show-ddl-locks [-s source ...] [task-name] - sql-inject sql-inject <-s source> - sql-replace sql-replace <-s source> [-b binlog-pos] [-p sql-pattern] [--sharding] - sql-skip sql-skip <-s source> [-b binlog-pos] [-p sql-pattern] [--sharding] - start-task start-task [-s source ...] - stop-task stop-task [-s source ...] - switch-relay-master switch-relay-master <-s source ...> - unlock-ddl-lock unlock-ddl-lock [-s source ...] - update-master-config update-master-config - update-relay update-relay [-s source ...] - update-task update-task [-s source ...] -``` - -## 废弃或不推荐使用的命令 - -以下命令已经被废弃或仅用于 debug,在接下来的版本中可能会被移除或修改其语义,**强烈不推荐使用**。 - -- `migrate-relay` -- `sql-inject` -- `update-master-config` -- `update-relay` From 18fb2c2198f7627e3d889d626b52c98b0d33553e Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Mon, 25 May 2020 15:47:40 +0800 Subject: [PATCH 23/32] fix CI --- zh/config-overview.md | 4 ++-- zh/overview.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/zh/config-overview.md b/zh/config-overview.md index f65e3d43c..22850f5bc 100644 --- a/zh/config-overview.md +++ b/zh/config-overview.md @@ -23,9 +23,9 @@ category: reference 具体步骤如下: -1. [使用 dmctl 将数据源配置加载到 DM 集群](manage-replication-tasks.md#加载数据源配置) +1. [使用 dmctl 将数据源配置加载到 DM 集群](manage-source.md#加载数据源配置) 2. 参考[任务配置文件](task-configuration-file.md)来创建 `your_task.yaml` 文件。 -3. [使用 dmctl 创建数据同步任务](manage-replication-tasks.md#创建数据同步任务)。 +3. [使用 dmctl 创建数据同步任务](create-task.md)。 ### 关键概念 diff --git a/zh/overview.md b/zh/overview.md index 475421a76..7936385c0 100644 --- a/zh/overview.md +++ b/zh/overview.md @@ -95,7 +95,7 @@ DM 支持对原分库分表进行合库合表操作,但需要满足一些[使 + 操作限制 - - DM-worker 重启后不能自动恢复数据同步任务,需要使用 dmctl 手动执行 `start-task`。详见[管理数据同步任务](manage-replication-tasks.md)。 + - DM-worker 重启后不能自动恢复数据同步任务,需要使用 dmctl 手动执行 `start-task`。详见[创建数据同步任务](create-tasks.md)。 - 在一些情况下,DM-worker 重启后不能自动恢复 DDL lock 同步,需要手动处理。详见[手动处理 Sharding DDL Lock](manually-handling-sharding-ddl-locks.md)。 + DM-worker 切换 MySQL From b991023cc0d1df747ccab146e8b5a982c87862b0 Mon Sep 17 00:00:00 2001 From: toutdesuite Date: Mon, 25 May 2020 16:04:59 +0800 Subject: [PATCH 24/32] fix CI --- zh/overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh/overview.md b/zh/overview.md index 7936385c0..3b0d3fd5c 100644 --- a/zh/overview.md +++ b/zh/overview.md @@ -95,7 +95,7 @@ DM 支持对原分库分表进行合库合表操作,但需要满足一些[使 + 操作限制 - - DM-worker 重启后不能自动恢复数据同步任务,需要使用 dmctl 手动执行 `start-task`。详见[创建数据同步任务](create-tasks.md)。 + - DM-worker 重启后不能自动恢复数据同步任务,需要使用 dmctl 手动执行 `start-task`。详见[创建数据同步任务](create-task.md)。 - 在一些情况下,DM-worker 重启后不能自动恢复 DDL lock 同步,需要手动处理。详见[手动处理 Sharding DDL Lock](manually-handling-sharding-ddl-locks.md)。 + DM-worker 切换 MySQL From 5342ce276503cfb375cf56ee5068a38295482b64 Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Mon, 25 May 2020 16:12:18 +0800 Subject: [PATCH 25/32] address comment --- zh/skip-or-replace-abnormal-sql-statements.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh/skip-or-replace-abnormal-sql-statements.md b/zh/skip-or-replace-abnormal-sql-statements.md index 947c100fb..cadbcbffc 100644 --- a/zh/skip-or-replace-abnormal-sql-statements.md +++ b/zh/skip-or-replace-abnormal-sql-statements.md @@ -10,7 +10,7 @@ category: reference > **注意:** > -> 当前 master 分支中该功能尚未重构完成,某些命令暂不支持。 +> 当前 master 分支中该功能尚未重构完成,`sql-skip` 和 `sql-replace` 命令暂不支持。 目前,TiDB 并不完全兼容所有的 MySQL 语法(详见 [TiDB 已支持的 DDL 语句](https://pingcap.com/docs-cn/dev/reference/mysql-compatibility/#ddl))。当使用 DM 从 MySQL 同步数据到 TiDB 时,如果 TiDB 不支持对应的 SQL 语句,可能会造成错误并中断同步任务。在这种情况下,DM 提供以下两种方式来恢复同步: From 1ef152dc0d8379d9a4bb4f0bd76e173ae30b931c Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Mon, 25 May 2020 17:46:26 +0800 Subject: [PATCH 26/32] fix bug --- zh/query-status.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh/query-status.md b/zh/query-status.md index e9ff47f6d..23584a3c8 100644 --- a/zh/query-status.md +++ b/zh/query-status.md @@ -74,7 +74,7 @@ DM 的迁移任务状态取决于其分配到 DM-worker 上的[子任务状态]( { "result": true, # 查询是否成功 "msg": "", # 查询失败原因描述 - "sources": [ # DM-worker 列表 + "sources": [ # 上游 MySQL 列表 { "result": true, "msg": "", From 8f47ed0ef19c8b4a029e49a7b568c3324057a439 Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Mon, 25 May 2020 18:37:12 +0800 Subject: [PATCH 27/32] update TOC --- zh/TOC.md | 1 + 1 file changed, 1 insertion(+) diff --git a/zh/TOC.md b/zh/TOC.md index f4f034ea0..6cf5c0f39 100644 --- a/zh/TOC.md +++ b/zh/TOC.md @@ -35,6 +35,7 @@ - [扩缩容](scale-a-dm-cluster.md) - [重启集群](cluster-operations.md#重启集群组件) + 任务管理 + - [dmctl 使用简介](dmctl-intro.md) - [管理上游数据源](manage-source.md) - [任务前置检查](precheck.md) - [创建任务](create-task.md) From e94e7ceb76506b01ffc7caa08abc6ed89977d97f Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Mon, 25 May 2020 18:37:48 +0800 Subject: [PATCH 28/32] add dmctl-intro.md --- zh/dmctl-intro.md | 110 ++++++++++++++++++++++++++++++++++++++++++++++ zh/query-task.md | 102 ------------------------------------------ 2 files changed, 110 insertions(+), 102 deletions(-) create mode 100644 zh/dmctl-intro.md delete mode 100644 zh/query-task.md diff --git a/zh/dmctl-intro.md b/zh/dmctl-intro.md new file mode 100644 index 000000000..5d0f8cb89 --- /dev/null +++ b/zh/dmctl-intro.md @@ -0,0 +1,110 @@ +--- +title: dmctl 使用简介 +summary: 了解如何使用 dmctl 管理数据同步任务。 +category: reference +--- + +# dmctl 使用简介 + +dmctl 是用来控制 DM 集群的命令行工具。对于用 DM-Ansible 部署的 DM 集群,dmctl 二进制文件路径为 dm-ansible/dmctl。 + +dmctl 支持交互模式用于人工操作,同时也支持命令模式用于脚本。 + +## dmctl 交互模式 + +进入交互模式,与 DM-master 进行交互: + +{{< copyable "shell-regular" >}} + +```bash +./dmctl -master-addr 172.16.30.14:8261 +``` + +``` +Welcome to dmctl +Release Version: v1.0.1 +Git Commit Hash: e63c6cdebea0edcf2ef8c91d84cff4aaa5fc2df7 +Git Branch: release-1.0 +UTC Build Time: 2019-09-10 06:15:05 +Go Version: go version go1.12 linux/amd64 + +» help +DM control + +Usage: + dmctl [command] + +Available Commands: + check-task check the config file of the task + help help about any command + migrate-relay migrate DM-worker's relay unit + offline-worker offline worker which has been closed + operate-source create/update/stop upstream MySQL/MariaDB source + pause-relay pause DM-worker's relay unit + pause-task pause a specified running task + purge-relay purge relay log files of the DM-worker according to the specified filename + query-error query task error + query-status query task status + resume-relay resume DM-worker's relay unit + resume-task resume a specified paused task + show-ddl-locks show un-resolved DDL locks + sql-inject inject (limited) SQLs into binlog replication unit as binlog events + sql-replace replace SQLs matched by a specific binlog position (binlog-pos) or a SQL pattern (sql-pattern); each SQL must end with a semicolon + sql-skip skip the binlog event matched by a specific binlog position (binlog-pos) or a SQL pattern (sql-pattern) + start-task start a task as defined in the config file + stop-task stop a specified task + switch-relay-master switch the master server of the DM-worker's relay unit + unlock-ddl-lock forcefully unlock DDL lock + update-master-config update the config of the DM-master + update-relay update the relay unit config of the DM-worker + update-task update a task's config for routes, filters, or black-white-list + +Flags: + -h, --help help for dmctl + -s, --source strings MySQL Source ID + +Use `dmctl [command] --help` to get more information about a command. +``` + +## dmctl 命令模式 + +命令模式跟交互模式的区别是,执行命令时只需要在 dmctl 命令后紧接着执行任务操作,任务操作同交互模式的参数一致。 + +> **注意:** +> +> + 一条 dmctl 命令只能跟一个任务操作 +> + 任务操作只能放在 dmctl 命令的最后 + +{{< copyable "shell-regular" >}} + +```bash +./dmctl -master-addr 172.16.30.14:8261 start-task task.yaml +./dmctl -master-addr 172.16.30.14:8261 stop-task task +./dmctl -master-addr 172.16.30.14:8261 query-status +``` + +``` +Available Commands: + check-task check-task + migrate-relay migrate-relay + offline-worker offline-worker
+ operate-source operate-source + pause-relay pause-relay <-s source ...> + pause-task pause-task [-s source ...] + purge-relay purge-relay <-s source> [--filename] [--sub-dir] + query-error query-error [-s source ...] [task-name] + query-status query-status [-s source ...] [task-name] [--more] + resume-relay resume-relay <-s source ...> + resume-task resume-task [-s source ...] + show-ddl-locks show-ddl-locks [-s source ...] [task-name] + sql-inject sql-inject <-s source> + sql-replace sql-replace <-s source> [-b binlog-pos] [-p sql-pattern] [--sharding] + sql-skip sql-skip <-s source> [-b binlog-pos] [-p sql-pattern] [--sharding] + start-task start-task [-s source ...] + stop-task stop-task [-s source ...] + switch-relay-master switch-relay-master <-s source ...> + unlock-ddl-lock unlock-ddl-lock [-s source ...] + update-master-config update-master-config + update-relay update-relay [-s source ...] + update-task update-task [-s source ...] +``` diff --git a/zh/query-task.md b/zh/query-task.md deleted file mode 100644 index ebbc076d5..000000000 --- a/zh/query-task.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -title: 查询数据同步任务信息 -summary: 了解 TiDB Data Migration 如何查询数据同步任务信息。 -category: reference ---- - -# 查询数据同步任务信息 - -本文介绍了如何使用 [dmctl](overview.md#dmctl) 组件来查询任务状态和任务错误。 - -## 查询数据同步任务状态 - -`query-status` 命令用于查询数据同步任务状态。有关查询结果及子任务状态,详见[查询状态](query-status.md)。 - -{{< copyable "" >}} - -```bash -help query-status -``` - -``` -query task status - -Usage: - dmctl query-status [-s source ...] [task-name] [--more] [flags] - -Flags: - -h, --help help for query-status - --more whether to print the detailed task information - -Global Flags: - -s, --source strings MySQL Source ID -``` - -### 命令用法示例 - -{{< copyable "" >}} - -```bash -query-status -``` - -### 参数解释 - -- `-s`: - - 可选 - - 查询在指定的一个 MySQL 源上运行的数据同步任务的子任务 -- `task-name`: - - 可选 - - 指定任务名称 - - 如果未设置,则返回全部数据同步任务的查询结果 - -### 返回结果示例 - -有关查询结果中各参数的意义,详见[查询状态结果](query-status.md#查询结果)。 - -## 查询数据同步任务错误 - -`query-error` 可用于查询数据同步任务与 relay 处理单元的错误信息。相比于 `query-status`,`query-error` 一般不用于获取除错误信息之外的其他信息。有关查询结果及子任务状态,详见[查询错误](query-error.md)。 - -`query-error` 常用于获取 `sql-skip`/`sql-replace` 所需的 binlog position 信息,有关 `sql-skip` 和 `sql-replace` 的介绍,请参考 [跳过或替代执行异常的 SQL 语句](skip-or-replace-abnormal-sql-statements.md#query-error)。 - -{{< copyable "" >}} - -```bash -help query-error -``` - -``` -query task error - -Usage: - dmctl query-error [-s source ...] [task-name] [flags] - -Flags: - -h, --help help for query-error - -Global Flags: - -s, --source strings MySQL Source ID -``` - -### 命令用法示例 - -{{< copyable "" >}} - -```bash -query-error -``` - -### 参数解释 - -- `-s`: - - 可选 - - 查询在指定的一个 MySQL 源上运行的数据同步任务的子任务 -- `task-name`: - - 可选 - - 指定任务名称 - - 如果未设置,则返回全部数据同步任务错误的查询结果 - -### 返回结果示例 - -有关查询错误结果中各参数的意义,详见[查询错误结果](query-error.md#查询结果)。 From a6f99baa9e0bd081592e1f8e051995fc2444c3fa Mon Sep 17 00:00:00 2001 From: GMHDBJD <35025882+GMHDBJD@users.noreply.github.com> Date: Mon, 25 May 2020 20:03:43 +0800 Subject: [PATCH 29/32] Update zh/dmctl-intro.md Co-authored-by: toutdesuite --- zh/dmctl-intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh/dmctl-intro.md b/zh/dmctl-intro.md index 5d0f8cb89..1839e1825 100644 --- a/zh/dmctl-intro.md +++ b/zh/dmctl-intro.md @@ -6,7 +6,7 @@ category: reference # dmctl 使用简介 -dmctl 是用来控制 DM 集群的命令行工具。对于用 DM-Ansible 部署的 DM 集群,dmctl 二进制文件路径为 dm-ansible/dmctl。 +dmctl 是用来控制 DM 集群的命令行工具。对于用 DM-Ansible 部署的 DM 集群,dmctl 二进制文件路径为 `dm-ansible/dmctl`。 dmctl 支持交互模式用于人工操作,同时也支持命令模式用于脚本。 From cc9cf1ff3871ec8c4f3e91b9361f0df88e9ebb82 Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Mon, 25 May 2020 20:05:25 +0800 Subject: [PATCH 30/32] rename file --- zh/{dmctl-intro.md => dmctl-introduction.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename zh/{dmctl-intro.md => dmctl-introduction.md} (100%) diff --git a/zh/dmctl-intro.md b/zh/dmctl-introduction.md similarity index 100% rename from zh/dmctl-intro.md rename to zh/dmctl-introduction.md From 7bb0e5dd66decd503d96619bb7629cf37eb96bce Mon Sep 17 00:00:00 2001 From: GMHDBJD <35025882+GMHDBJD@users.noreply.github.com> Date: Mon, 25 May 2020 20:13:15 +0800 Subject: [PATCH 31/32] Update TOC.md --- zh/TOC.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh/TOC.md b/zh/TOC.md index 6e712aec6..7dd597ba2 100644 --- a/zh/TOC.md +++ b/zh/TOC.md @@ -32,7 +32,7 @@ - [扩缩容](scale-a-dm-cluster.md) - [重启集群](cluster-operations.md#重启集群组件) + 任务管理 - - [dmctl 使用简介](dmctl-intro.md) + - [dmctl 使用简介](dmctl-introduction.md) - [管理上游数据源](manage-source.md) - [任务前置检查](precheck.md) - [创建任务](create-task.md) From 34889d0763659e6590d3e853434fd1f40b647841 Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Mon, 25 May 2020 20:16:13 +0800 Subject: [PATCH 32/32] address comment --- zh/dmctl-introduction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh/dmctl-introduction.md b/zh/dmctl-introduction.md index 1839e1825..ee53f6fcc 100644 --- a/zh/dmctl-introduction.md +++ b/zh/dmctl-introduction.md @@ -8,7 +8,7 @@ category: reference dmctl 是用来控制 DM 集群的命令行工具。对于用 DM-Ansible 部署的 DM 集群,dmctl 二进制文件路径为 `dm-ansible/dmctl`。 -dmctl 支持交互模式用于人工操作,同时也支持命令模式用于脚本。 +dmctl 同时支持交互模式和命令模式。 ## dmctl 交互模式