使用 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
  7. » help
  8. DM control
  9. Usage:
  10. dmctl [command]
  11. Available Commands:
  12. binlog manage or show binlog operations
  13. binlog-schema manage or show table schema in schema tracker
  14. check-task Checks the configuration file of the task
  15. config manage config operations
  16. decrypt Decrypts cipher text to plain text
  17. encrypt Encrypts plain text to cipher text
  18. help Gets help about any command
  19. list-member Lists member information
  20. offline-member Offlines member which has been closed
  21. operate-leader `evict`/`cancel-evict` the leader
  22. operate-source `create`/`stop`/`show` upstream MySQL/MariaDB source
  23. pause-relay Pauses DM-worker's relay unit
  24. pause-task Pauses a specified running task or all (sub)tasks bound to a source
  25. purge-relay Purges relay log files of the DM-worker according to the specified filename
  26. query-status Queries task status
  27. resume-relay Resumes DM-worker's relay unit
  28. resume-task Resumes a specified paused task or all (sub)tasks bound to a source
  29. shard-ddl-lock maintain or show shard-ddl locks information
  30. start-relay Starts workers pulling relay log for a source
  31. start-task Starts a task as defined in the configuration file
  32. stop-relay Stops workers pulling relay log for a source
  33. stop-task Stops a specified task or all (sub)tasks bound to a source
  34. transfer-source Transfers a upstream MySQL/MariaDB source to a free worker
  35. Flags:
  36. -h, --help help for dmctl
  37. -s, --source strings MySQL Source ID.
  38. 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
  4. export DM_MASTER_ADDR="172.16.30.14:8261"
  5. ./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
  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.
  35. Use "dmctl [command] --help" for more information about a command.