使用 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. decrypt         Decrypts cipher text to plain text
20. encrypt         Encrypts plain text to cipher text
21. help            Gets help about any command
22. list-member     Lists member information
23. offline-member  Offlines member which has been closed
24. operate-leader  `evict`/`cancel-evict` the leader
25. operate-source  `create`/`stop`/`show` upstream MySQL/MariaDB source
26. pause-relay     Pauses DM-worker's relay unit
27. pause-task      Pauses a specified running task or all (sub)tasks bound to a source
28. purge-relay     Purges relay log files of the DM-worker according to the specified filename
29. query-status    Queries task status
30. resume-relay    Resumes DM-worker's relay unit
31. resume-task     Resumes a specified paused task or all (sub)tasks bound to a source
32. shard-ddl-lock  maintain or show shard-ddl locks information
33. start-relay     Starts workers pulling relay log for a source
34. start-task      Starts a task as defined in the configuration file
35. stop-relay      Stops workers pulling relay log for a source
36. stop-task       Stops a specified task or all (sub)tasks bound to a source
37. transfer-source Transfers a upstream MySQL/MariaDB source to a free worker

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

43. 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. decrypt         Decrypts cipher text to plain text
7. encrypt         Encrypts plain text to cipher text
8. help            Gets help about any command
9. list-member     Lists member information
10. offline-member  Offlines member which has been closed
11. operate-leader  `evict`/`cancel-evict` the leader
12. operate-source  `create`/`stop`/`show` upstream MySQL/MariaDB source
13. pause-relay     Pauses DM-worker's relay unit
14. pause-task      Pauses a specified running task or all (sub)tasks bound to a source
15. purge-relay     Purges relay log files of the DM-worker according to the specified filename
16. query-status    Queries task status
17. resume-relay    Resumes DM-worker's relay unit
18. resume-task     Resumes a specified paused task or all (sub)tasks bound to a source
19. shard-ddl-lock  maintain or show shard-ddl locks information
20. start-relay     Starts workers pulling relay log for a source
21. start-task      Starts a task as defined in the configuration file
22. stop-relay      Stops workers pulling relay log for a source
23. stop-task       Stops a specified task or all (sub)tasks bound to a source
24. transfer-source Transfers a upstream MySQL/MariaDB source to a free worker

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

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