TiDB5.4数据迁移

一、前提条件

已经开启tidb环境

二、安装

1、执行如下命令安装 TiUP 工具:

curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh

2、安装 TiUP DM 组件:

tiup install dm dmctl

  

3、配置文件模板新建一个配置文件 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

4、执行部署命令

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

5、启动

tiup dm start dm-test

6、查看 TiUP 管理的集群情况

tiup dm display dm-test

 三、配置i数据源

1、对mysql数据库密码加密

tiup dmctl encrypt 'root123456'

 2、编写数据源配置文件

 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"

 3、创建数据源

将 MySQL-1 的数据源配置加载到 DM 集群

tiup dmctl --master-addr 192.168.31.28:8261 operate-source create ./source-mysql-01.yaml

4、查询创建的数据源

 tiup dmctl --master-addr 192.168.31.28:8261 get-config source mysql-01

5、查看源数据库列表

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 命令重新启动数据迁移任务

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值