目录
摘要:
文档参考:
启动DM的master和worker
master
配置 sdm-master1.tomal
启动命令:
worker
配置 sdm-worker1.toml
启动命令:
配置上游数据库下游数据库和启动同步任务
配置上游数据库
配置 mysql-01.yaml
上游数据库要求:
将数据源加入
配置task
配置 testdm-task.yaml
配置说明:
启动同步任务
测试:
配置数据源和配置任务测试:
同步数据测试:
摘要:
SDM是一个数据同步工具,从源数据库同步到目标数据库. 使用起来倒是相当简单.
本文简单记录下
启动DM的master和worker
master
配置 sdm-master1.tomal
# Master Configuration.name = "master1"# 日志配置
log-level = "info"
log-file = "dm-master.log"# DM-master 监听地址
master-addr = "192.168.30.40:8261"# DM-master 节点的对等 URL
peer-urls = "192.168.30.40:8291"# 初始集群中所有 DM-master 的 advertise-peer-urls 的值
initial-cluster = "master1=http://192.168.30.40:8291"
启动命令:
./sdm-master --config=./sdm-master1.tomal &
worker
配置 sdm-worker1.toml
name = "worker1"log-level = "info"
log-file = "dm-worker.log"worker-addr = "192.168.30.40:8262"join = "192.168.30.40:8261"
启动命令:
./sdm-worker --config=./sdm-worker1.tomal &
配置上游数据库下游数据库和启动同步任务
配置上游数据库
配置 mysql-01.yaml
source-id: "mysql-1"from:host: "127.0.0.1"user: "root"password: "mysql123" port: 3306
上游数据库要求:
- 不能配置 skip-grant-tables, 否则无法执行数据同步命令
- binlog格式必须为ROW, 无法无法使用binlog同步
[mysqld]binlog_format = ROW
将数据源加入
./sdmctl --master-addr=192.168.30.40:8261 operate-source create mysql-01.yaml
配置task
配置 testdm-task.yaml
name: test3
task-mode: alltarget-database:host: "192.168.64.19"port: 3306user: "root"password: "" # 如果密码不为空,则推荐使用经过 dmctl 加密的密文# 填写一个或多个所需同步的数据源信息
mysql-instances:- source-id: "mysql-1"block-allow-list: "ba-rule1"block-allow-list:ba-rule1:do-dbs: ["test"]
配置说明:
- target-database 为要同步的目标数据库, 无明确要求
- source-id 必须与数据源的source-id一致
- do-dbs 为要同步的数据库, 实现创建
启动同步任务
./sdmctl --master-addr=192.168.30.40:8261 start-task testdm-task.yaml
测试:
配置数据源和配置任务测试:
./sdmctl --master-addr=192.168.30.40:8261 operate-source create mysql-01.yaml
./sdmctl --master-addr=192.168.30.40:8261 start-task testdm-task.yaml
./sdmctl --master-addr=192.168.30.40:8261 query-status test3
同步数据测试:
文档参考:
TiDB Data Migration 快速上手指南 | PingCAP 文档中心