已经开启tidb环境
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
tiup install dm dmctl
topology-dm.yaml
global:
user: "root"
ssh_port: 22
deploy_dir: "/dm-deploy-dm"
data_dir: "/dm-data-dm"
# arch: "amd64"
master_servers:
- host: 192.168.31.28
worker_servers:
- host: 192.168.31.28
tiup dm deploy dm-test ${version} ./topology-dm.yaml --user root [-p] [-i /home/root/.ssh/gcp_rsa]
部署版本为 ${version}
,可以通过执行 tiup list dm-master
来查看 TiUP 支持的最新版本
[root@MiWiFi-R3600-srv opt]# tiup list dm-master
Available versions for dm-master:
Version Installed Release Platforms
------- --------- ------- ---------
nightly -> v6.1.0-alpha-nightly-20220420 2022-04-20T00:28:14+08:00 linux/amd64,linux/arm64
v2.0.0-rc 2020-08-21T17:49:08+08:00 linux/amd64,linux/arm64
v2.0.0-rc.2 2020-09-01T20:51:29+08:00 linux/amd64,linux/arm64
v2.0.0 2020-10-30T16:10:58+08:00 linux/amd64,linux/arm64
v2.0.1 2020-12-25T13:22:29+08:00 linux/amd64,linux/arm64
v2.0.3 2021-05-11T22:14:31+08:00 linux/amd64,linux/arm64
v2.0.4 2021-06-18T16:34:30+08:00 linux/amd64,linux/arm64
v2.0.5 2021-07-30T18:46:27+08:00 linux/amd64,linux/arm64
v2.0.6 2021-08-13T17:36:06+08:00 linux/amd64,linux/arm64
v2.0.7 2021-09-29T16:34:31+08:00 linux/amd64,linux/arm64
v5.3.0 2021-11-29T16:50:31+08:00 linux/amd64,linux/arm64
v5.3.1 2022-03-07T14:16:58+08:00 linux/amd64,linux/arm64
v5.4.0 2022-02-14T10:18:30+08:00 linux/amd64,linux/arm64
v6.0.0 2022-04-06T11:33:35+08:00 linux/amd64,linux/arm64
v6.1.0-alpha-nightly-20220420 2022-04-20T00:28:14+08:00 linux/amd64,linux/arm64
tiup dm deploy dm-test v6.0.0 ./topology-dm.yaml --user root
tiup dm start dm-test
tiup dm display dm-test
tiup dmctl encrypt 'root123456'
vim source-mysql-01.yaml
source-id: "mysql-01" # 数据源 ID,在数据迁移任务配置和 dmctl 命令行中引用该 source-id 可以关联到对应的数据源
from:
host: "192.168.31.174"
port: 3306
user: "root"
password: "h3Ggi6QMqH10DnAq7RQ04UBBjL5dWFZJ9XbE"
将 MySQL-1 的数据源配置加载到 DM 集群
tiup dmctl --master-addr 192.168.31.28:8261 operate-source create ./source-mysql-01.yaml
tiup dmctl --master-addr 192.168.31.28:8261 get-config source mysql-01
dmctl operate-source show
tiup dmctl --master-addr 192.168.31.28:8261 operate-source show
[root@MiWiFi-R3600-srv opt]# tiup dmctl --master-addr 192.168.31.28:8261 operate-source show
tiup is checking updates for component dmctl ...
Starting component `dmctl`: /root/.tiup/components/dmctl/v6.0.0/dmctl/dmctl /root/.tiup/components/dmctl/v6.0.0/dmctl/dmctl --master-addr 192.168.31.28:8261 operate-source show
{
"result": true,
"msg": "",
"sources": [
{
"result": true,
"msg": "",
"source": "mysql-01",
"worker": "dm-192.168.31.28-8262"
}
]
}
编辑任务配置文件 task.yaml
vim task.yaml
# 任务名,多个同时运行的任务不能重名。
name: "test"
# 全量+增量 (all) 迁移模式。
task-mode: "all"
# 下游 TiDB 配置信息。
target-database:
host: "192.168.31.28"
port: 4000
user: "root"
password: "*52&6Se9+L81rdUW$t"
# 当前数据迁移任务需要的全部上游 MySQL 实例配置。
mysql-instances:
-
# 上游实例或者复制组 ID,参考 `inventory.ini` 的 `source_id` 或者 `dm-master.toml` 的 `source-id 配置`。
source-id: "mysql-01"
# 需要迁移的库名或表名的黑白名单的配置项名称,用于引用全局的黑白名单配置,全局配置见下面的 `block-allow-list` 的配置。
block-allow-list: "global" # 如果 DM 版本早于 v2.0.0-beta.2 则使用 black-white-list。
# dump 处理单元的配置项名称,用于引用全局的 dump 处理单元配置。
mydumper-config-name: "global"
# 黑白名单全局配置,各实例通过配置项名引用。
block-allow-list: # 如果 DM 版本早于 v2.0.0-beta.2 则使用 black-white-list。
global:
do-tables: # 需要迁移的上游表的白名单。
- db-name: "mepx_dmp" # 需要迁移的表的库名。
tbl-name: "dmp_base_station" # 需要迁移的表的名称。
# dump 处理单元全局配置,各实例通过配置项名引用。
mydumpers:
global:
extra-args: ""
tiup dmctl --master-addr 192.168.31.28:8261 start-task ./task.yaml
执行成功之后,就把mysql中mepx_dmp库中的dmp_base_station表迁移到TiDB中了。
停止任务
tiup dmctl --master-addr 192.168.31.28:8261 stop-task test
查询任务
tiup dmctl --master-addr 192.168.31.28:8261 query-status
1、使用 stop-task 命令停止所有运行中的数据迁移任务
2、使用 operate-source stop 命令从 DM 集群中移除原 MySQL 实例地址对应的 source 配置
tiup dmctl --master-addr 192.168.31.28:8261 operate-source stop mysql-01
3、使用 operate-source create 命令将新的 source 配置重新加载到 DM 集群中
4、使用 start-task 命令重新启动数据迁移任务