51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

TiDB DM工具实现数据迁移

TiDB DM工具实现数据迁移

DM 工具介绍

从兼容MySQL协议的数据源,将数据(异步)迁移到TiDB中。支持全量和增量数据传输。可以数据过滤,可以将源端的分库分表数据合并迁移

4.2 DM 工具应用实战-安装基本配置

4.2.1 安装配置DM

tiup install dm
tiup update --self && tiup update dm
tiup dm template > topology.yaml
tiup list dm-master

4.2.2 启动DM

tiup dm deploy dm-test v5.0.0-nightly20210531 ./topology.yaml --user root -p
tiup dm list
tiup dm start dm-test
tiup dm display dm-test

4.2.3 获取dmctl 工具

tiup dmctl:v5.0.0-nightly-20210531

4.3 DM工具的同步任务管理

4.3.1 源端配置

# 创建用户
# 修改配置文件
vim mysql-source-conf1.yaml
source-id: "mysql-replica-01"
enable-gtid: true
from:
host: "10.0.0.11"
user: "root"
password: "123"
port: 3306
+++++
tiup dmctl -encrypt '123'
+++++
# 加载源配置文件

tiup dmctl --master-addr=10.0.0.11:8261
operate-source create mysql-sourceconf1.yaml
# 查看数据源
tiup dmctl --master-addr=10.0.0.11:8261
get-config source mysql-replica-01
# 查看数据源和DM-Worker对应关系
tiup dmctl --master-addr=10.0.0.11:8261
operate-source show

4.3.2 任务配置模板

vim dm-task.yaml
name: "dm-taskX"
task-mode: all
ignore-checking-items:
["auto_increment_ID"]
target-database:
host: "172.16.6.212"
port: 4000
user: "root"
password: "tidb"
mysql-instances:
-
source-id: "mysql-replica-01"

route-rules: ["instance-1-userrule","sale-route-rule"]
filter-rules: ["trace-filter-rule",
"user-filter-rule" , "store-filter-rule"]
block-allow-list: "log-ignored"
mydumper-config-name: "global"
loader-config-name: "global"
syncer-config-name: "global"
-
source-id: "mysql-replica-02"
route-rules: ["instance-2-user-rule",
"instance-2-store-rule","sale-route-rule"]
filter-rules: ["trace-filter-rule",
"user-filter-rule" , "store-filter-rule"]
block-allow-list: "log-ignored"
mydumper-config-name: "global"
loader-config-name: "global"
syncer-config-name: "global"
# 所有实例的共有配置
routes:
instance-1-user-rule:
schema-pattern: "user"
target-schema: "user_north"
instance-2-user-rule:
schema-pattern: "user"
target-schema: "user_east"
instance-2-store-rule:
schema-pattern: "store"
table-pattern: "store_sz"
target-schema: "store"
4.3.3 检查配置
target-table: "store_suzhou"
sale-route-rule:
schema-pattern: "salesdb"
target-schema: "salesdb"
filters:
trace-filter-rule:
schema-pattern: "user"
table-pattern: "trace"
events: ["truncate table", "drop table",
"delete"]
action: Ignore
user-filter-rule:
schema-pattern: "user"
events: ["drop database"]
action: Ignore
store-filter-rule:
schema-pattern: "store"
events: ["drop database", "truncate
table", "drop table", "delete"] action:
Ignore
block-allow-list:
log-ignored:
ignore-dbs: ["log"]
mydumpers:
global:
threads: 4
chunk-filesize: 64

4.3.3 检查配置

 tiup dmctl --master-addr=10.0.0.11:8261
check-task dm-task.yaml

4.3.4 开启迁移任务

tiup dmctl --master-addr=10.0.0.11:8261
start-task dm-task.yaml

4.3.5 查看任务状态

tiup dmctl --master-addr=10.0.0.11:8261
query-status dm-task.yaml

4.3.5 控制迁移任务

# 暂停任务
tiup dmctl --master-addr=10.0.0.11:8261
pause-task dm-task.yaml
#恢复任务
tiup dmctl --master-addr=10.0.0.11:8261
resume-task dm-task.yaml
# 停止任务
tiup dmctl --master-addr=10.0.0.11:8261
stop-task dm-task.yaml

4.3.6 扩容DM 节点

vi dm-scale.yaml
加入如下内容:
worker_servers:
- host: 10.0.0.11
tiup dm scale-out dm-test dm-scale.yaml -
uroot -p
tiup dm display dm-test
赞(0)
未经允许不得转载:工具盒子 » TiDB DM工具实现数据迁移