本文共 3149 字,大约阅读时间需要 10 分钟。
以下是环境信息:
| 主机名 | IP地址 | 部署服务 |
|---|---|---|
| study01 | 10.186.65.68 | DTLE、MySQL |
| study02 | 10.186.65.71 | DTLE、MySQL |
| study03 | 10.186.65.72 | DTLE、MySQL |
DTLE 是上海爱可⽣信息技术股份有限公司 开发并开源的 CDC 工具。其主要功能包括:
DTLE 支持以下复制场景:
按数据源/数据目标划分:
按网络类型划分:
按集群规模划分:
以下是部署DTLE并实现单项复制的详细步骤。
访问DTLE官方GitHub发布页面下载最新版本的RPM安装包:
https://github.com/actiontech/dtle/releases
使用以下命令安装:
[root@study01 ~]# rpm -ivh dtle-3.21.03.0.x86_64.rpm --prefix=/data/dtle
Consul配置文件(默认路径:/etc/dtle/consul.hcl):
[root@study01 dtle]# cat consul.hclnode_name = "consul0"data_dir = "/data/dtle/var/lib/consul"bind_addr = "0.0.0.0"client_addr = "10.186.65.68"ports { server = 8300 http = 8500} Nomad配置文件(默认路径:/etc/dtle/nomad.hcl):
[root@study01 dtle]# cat nomad.hclname = "nomad0"datacenter = "dc1"data_dir = "/data/dtle/var/lib/nomad"log_level = "Info"bind_addr = "0.0.0.0"ports { http = 4646 rpc = 4647 serf = 4648} 使用 systemctl 启动服务:
systemctl restart dtle-consul.servicesystemctl restart dtle-nomad.service
可以使用以下命令查看服务状态:
ps -ef | grep dtle
http://10.186.65.68:8500http://10.186.65.68:4646mysql> create database test;mysql> use test;mysql> create table t1 (id int primary key);mysql> insert into t1 values(1), (2), (3);
以下步骤将创建一个简单的DTLE Job进行数据复制。
{ "Job": { "ID": "job1", "Datacenters": ["dc1"], "TaskGroups": [ { "Name": "src", "Tasks": [ { "Name": "src", "Driver": "dtle", "Config": { "Gtid": "test-gtid", "ReplicateDoDb": [ { "TableSchema": "test", "Tables": [ { "TableName": "t1" } ] } ], "ConnectionConfig": { "Host": "10.186.65.68", "Port": 3333, "User": "test", "Password": "test" } } } ] }, { "Name": "dest", "Tasks": [ { "Name": "dest", "Driver": "dtle", "Config": { "ConnectionConfig": { "Host": "10.186.65.72", "Port": 4444, "User": "test", "Password": "test" } } } ] } ] }} [root@study01 dtle]# curl -X POST "http://10.186.65.68:4646/v1/jobs" -d @job.json -s | jq
[root@study01 dtle]# curl -X GET "http://10.186.65.68:4646/v1/job/job1" -s | jq .Status
mysql> use test;mysql> select * from test.t1;
通过以上步骤,我们成功部署了DTLE并实现了源端到目标端的数据复制。未来可以根据实际 requirements扩展DTLE的使用场景,例如支持更复杂的数据传输模式或集群部署。
转载地址:http://vlopz.baihongyu.com/