如何安全的关闭DM-worker

【 TiDB 使用环境】生产环境
【 TiDB 版本】V7.5.1
【复现路径】
【遇到的问题:】
【资源配置】*
【其他附件:截图/日志/监控】
通过tiup 部署的 DM ,如何安全的关闭或重启 DM Worker

停止TiDB DM-worker通常有以下几种方法:

通过dmctl命令停止相关任务

如果是想停止DM-worker正在执行的数据迁移任务,可以使用dmctl工具的stop-task命令。基本语法为:

dmctl stop-task (-s source...) <task-name | task-file>

例如:

dmctl stop-task (-s "mysql-replica-01") task-name

其中,-s参数用于指定MySQL数据源ID,可选,如果设置了该参数,则只会停止指定数据源上的子任务;<task-name | task-file>为必选参数,用于指定任务名称或任务文件路径。执行该命令后,DM-worker会停止执行对应的迁移任务。不过要注意,任务停止后,检查点和其他相关信息仍保留在dm_meta数据库中。

在Kubernetes环境中停止Pod

如果TiDB DM-worker是部署在Kubernetes环境中,可以通过删除对应的Pod来停止它。

  1. 首先,需要获取DM-worker所在Pod的名称,可以使用以下命令进行查询:
kubectl get pods -n <namespace> | grep dm-worker

<namespace>替换为实际的命名空间。
2. 然后,使用以下命令删除Pod:

kubectl delete pod <pod-name> -n <namespace>

<pod-name>替换为实际的DM-worker Pod名称,<namespace>替换为实际的命名空间。默认情况下,Kubernetes会发送SIGTERM信号给Pod中的容器,让容器进行优雅退出,如果在优雅退出时间内没有完成退出,Kubernetes会发送SIGKILL信号强制终止容器。

通过TiUP部署停止

如果是通过TiUP部署的TiDB DM-worker,可以使用TiUP命令来停止。一般步骤如下:

  1. 先进入到部署DM-worker的目录,找到对应的配置文件。
  2. 执行TiUP的停止命令,例如:
tiup dm stop -c <config-file>

<config-file>替换为实际的配置文件路径,这样可以停止TiUP管理的DM-worker服务。

1 个赞

和tiup管理tidb集群一样的
tiup dm stop cluster-name -N IP:port
https://docs.pingcap.com/zh/tidb/stable/tiup-component-dm

1 个赞