使用 dmctl 运维集群

注意:

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

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

dmctl 交互模式

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

注意:

交互模式下不具有 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. check-task      Checks the configuration file of the task.
16. config          Commands to import/export config.
17. get-config      Gets the configuration.
18. handle-error    `skip`/`replace`/`revert` the current error event or a specific binlog position (binlog-pos) event.
19. help            Help about any command
20. list-member     Lists member information.
21. offline-member  Offlines member which has been closed.
22. operate-leader  `evict`/`cancel-evict` the leader.
23. operate-schema  `get`/`set`/`remove` the schema for an upstream table.
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.
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.
31. show-ddl-locks  Shows un-resolved DDL locks.
32. start-task      Starts a task as defined in the configuration file.
33. stop-task       Stops a specified task.
34. unlock-ddl-lock Unlocks DDL lock forcefully.

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

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

dmctl 命令模式

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

注意:

  • 一条 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. check-task            check-task <config-file> [--error count] [--warn count]
3. config                commands to import/export config
4. get-config            get-config <task | master | worker | source> <name> [--file filename]
5. handle-error          handle-error <task-name | task-file> [-s source ...] [-b binlog-pos] <skip/replace/revert> [replace-sql1;replace-sql2;]
6. list-member           list-member [--leader] [--master] [--worker] [--name master-name/worker-name ...]
7. offline-member        offline-member <--master/--worker> <--name master-name/worker-name>
8. operate-leader        operate-leader <operate-type>
9. operate-schema        operate-schema <operate-type> <-s source ...> <task-name | task-file> <-d database> <-t table> [schema-file]
10. operate-source        operate-source <operate-type> [config-file ...] [--print-sample-config]
11. pause-relay           pause-relay <-s source ...>
12. pause-task            pause-task [-s source ...] <task-name | task-file>
13. purge-relay           purge-relay <-s source> <-f filename> [--sub-dir directory]
14. query-status          query-status [-s source ...] [task-name | task-file] [--more]
15. resume-relay          resume-relay <-s source ...>
16. resume-task           resume-task [-s source ...] <task-name | task-file>
17. show-ddl-locks        show-ddl-locks [-s source ...] [task-name | task-file]
18. start-task            start-task [-s source ...] [--remove-meta] <config-file>
19. stop-task             stop-task [-s source ...] <task-name | task-file>
20. unlock-ddl-lock       unlock-ddl-lock [-s source ...] <lock-ID>

22. Special Commands:
23. --encrypt Encrypts plaintext to ciphertext.
24. --decrypt Decrypts ciphertext to plaintext.

26. Global Options:
27. --V Prints version and exit.
28. --config Path to configuration file.
29. --master-addr Master API server address.
30. --rpc-timeout RPC timeout, default is 10m.
31. --ssl-ca Path of file that contains list of trusted SSL CAs for connection.
32. --ssl-cert Path of file that contains X509 certificate in PEM format for connection.
33. --ssl-key Path of file that contains X509 key in PEM format for connection.