使用 dmctl 运维 TiDB Data Migration 集群

使用 dmctl 管理迁移任务 - 图1

注意

对于用 TiUP 部署的 DM 集群,推荐直接使用 tiup dmctl 命令。

dmctl 是用来运维 DM 集群的命令行工具,支持交互模式和命令模式。

dmctl 交互模式

进入交互模式,与 DM-master 进行交互:

使用 dmctl 管理迁移任务 - 图2

注意

交互模式下不具有 bash 的特性,比如不需要通过引号传递字符串参数而应当直接传递。

1. ./dmctl --master-addr 172.16.30.14:8261
1. Welcome to dmctl
2. Release Version: ${version}
3. Git Commit Hash: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
4. Git Branch: release-x.x
5. UTC Build Time: yyyy-mm-dd hh:mm:ss
6. Go Version: go version gox.xx linux/amd64

8. » help
9. DM control

11. Usage:
12. dmctl [command]

14. Available Commands:
15. binlog          manage or show binlog operations
16. binlog-schema   manage or show table schema in schema tracker
17. check-task      Checks the configuration file of the task
18. config          manage config operations
19. encrypt         Encrypts plain text to cipher text
20. help            Gets help about any command
21. list-member     Lists member information
22. offline-member  Offlines member which has been closed
23. operate-leader  `evict`/`cancel-evict` the leader
24. operate-source  `create`/`stop`/`show` upstream MySQL/MariaDB source
25. pause-relay     Pauses DM-worker's relay unit
26. pause-task      Pauses a specified running task or all (sub)tasks bound to a source
27. purge-relay     Purges relay log files of the DM-worker according to the specified filename
28. query-status    Queries task status
29. resume-relay    Resumes DM-worker's relay unit
30. resume-task     Resumes a specified paused task or all (sub)tasks bound to a source
31. shard-ddl-lock  maintain or show shard-ddl locks information
32. start-relay     Starts workers pulling relay log for a source
33. start-task      Starts a task as defined in the configuration file
34. stop-relay      Stops workers pulling relay log for a source
35. stop-task       Stops a specified task or all (sub)tasks bound to a source
36. transfer-source Transfers a upstream MySQL/MariaDB source to a free worker

38. Flags:
39. -h, --help             help for dmctl
40. -s, --source strings   MySQL Source ID.

42. Use "dmctl [command] --help" for more information about a command.

dmctl 命令模式

命令模式跟交互模式的区别是,执行命令时只需要在 dmctl 命令后紧接着执行任务操作,任务操作同交互模式的参数一致。

使用 dmctl 管理迁移任务 - 图3

注意

  • 一条 dmctl 命令只能跟一个任务操作
  • 从 v2.0.4 版本开始,支持从环境变量 (DM_MASTER_ADDR) 里读取 -master-addr 参数
1. ./dmctl --master-addr 172.16.30.14:8261 start-task task.yaml
2. ./dmctl --master-addr 172.16.30.14:8261 stop-task task
3. ./dmctl --master-addr 172.16.30.14:8261 query-status

5. export DM_MASTER_ADDR="172.16.30.14:8261"
6. ./dmctl query-status
1. Available Commands:
2. binlog          manage or show binlog operations
3. binlog-schema   manage or show table schema in schema tracker
4. check-task      Checks the configuration file of the task
5. config          manage config operations
6. encrypt         Encrypts plain text to cipher text
7. help            Gets help about any command
8. list-member     Lists member information
9. offline-member  Offlines member which has been closed
10. operate-leader  `evict`/`cancel-evict` the leader
11. operate-source  `create`/`stop`/`show` upstream MySQL/MariaDB source
12. pause-relay     Pauses DM-worker's relay unit
13. pause-task      Pauses a specified running task or all (sub)tasks bound to a source
14. purge-relay     Purges relay log files of the DM-worker according to the specified filename
15. query-status    Queries task status
16. resume-relay    Resumes DM-worker's relay unit
17. resume-task     Resumes a specified paused task or all (sub)tasks bound to a source
18. shard-ddl-lock  maintain or show shard-ddl locks information
19. start-relay     Starts workers pulling relay log for a source
20. start-task      Starts a task as defined in the configuration file
21. stop-relay      Stops workers pulling relay log for a source
22. stop-task       Stops a specified task or all (sub)tasks bound to a source
23. transfer-source Transfers a upstream MySQL/MariaDB source to a free worker

25. Flags:
26. --config string        Path to config file.
27. -h, --help                 help for dmctl
28. --master-addr string   Master API server address, this parameter is required when interacting with the dm-master
29. --rpc-timeout string   RPC timeout, default is 10m. (default "10m")
30. -s, --source strings       MySQL Source ID.
31. --ssl-ca string        Path of file that contains list of trusted SSL CAs for connection.
32. --ssl-cert string      Path of file that contains X509 certificate in PEM format for connection.
33. --ssl-key string       Path of file that contains X509 key in PEM format for connection.
34. -V, --version              Prints version and exit.

36. Use "dmctl [command] --help" for more information about a command.