环境部署
IP | 安装文档 | ||
---|---|---|---|
msyql | 192.168.138.131 | 5.7 | |
tidb单机多节点 | 192.168.138.135 | https://docs.pingcap.com/zh/tidb/stable/quick-start-with-tidb | |
dm工具 | 192.168.138.135 | https://docs.pingcap.com/zh/tidb-data-migration/stable/deploy-a-dm-cluster-using-tiup |
初始化数据
官方的说明里基本都是讲全量迁移数据的情况。所以这里自测一下数据追加的情景。
模拟tidb里已经有数据,mysql也已经有不相同的数据。
mysql初始化数据
bsppr.xpost_bak,未开启binlog
mysql -uroot -p -h127.0.0.1 bsppr<bsppr.xpost_bak.0000000000001.sql
SELECT count(1) FROM xpost_bak;
33062
tidb初始化数据
bsppr.xpost
mysql -uroot -p -h192.168.138.135 -P4000 bsppr<bsppr.xpost_bak.0000000000000.sql
SELECT count(1) FROM xpost;
332389
配置DM
配置worker
# 加密密码
tiup dmctl --encrypt "Root123456"
[root@centos7x5 tidb]# cat conf/source1.yaml
# MySQL1 Configuration.
source-id: "mysql-replica-01"
# DM-worker 是否使用全局事务标识符 (GTID) 拉取 binlog。使用前提是在上游 MySQL 已开启 GTID 模式。
enable-gtid: false
from:
host: "192.168.138.135"
user: "root"
password: "0nv/tHurR0FiSNa4EuAytUDojdB/RRHdquAK"
port: 3306
上传配置
tiup dmctl --master-addr 192.168.138.135:8261 operate-source create conf/source1.yaml
配置task
一个上游mysql,迁移数据从bsppr.xpost_bak到bsppr.xpost
# 任务名,多个同时运行的任务不能重名。
name: "test"
# 全量+增量 (all) 迁移模式。
task-mode: "all"
# 下游 TiDB 配置信息。
target-database:
host: "192.168.138.135"
port: 4000
user: "root"
password: "0nv/tHurR0FiSNa4EuAytUDojdB/RRHdquAK"
# 黑白名单全局配置,各实例通过配置项名引用。
#block-allow-list: # 如果 DM 版本 <= v2.0.0-beta.2 则使用 black-white-list。
# global:
# do-tables: # 需要迁移的上游表的白名单。
# - db-name: "test_db" # 需要迁移的表的库名。
# tbl-name: "test_table" # 需要迁移的表的名称。
block-allow-list: # 上游数据库实例匹配的表的 block-allow-list 过滤规则集,如果 DM 版本 <= v2.0.0-beta.2 则使用 black-white-list
bw-rule-1: