简介
基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统。
原理
1. 基于Canal开源产品,获取数据库增量日志数据。 什么是Canal, 请点击
2. 典型管理系统架构,manager(web管理)+node(工作节点)
a. manager运行时推送同步配置到node节点
b. node节点将同步状态反馈到manager上
3. 基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作.
4.db : 数据源以及需要同步到的库
特性
- 使用纯JAVA开发,占时资源比较高
- 基于Canal获取数据库增量日志,Canal是阿里爸爸另外一个开源产品
- 使用manager(web管理)+node(工作节点),manager负责配置监控,node负责处理任务
- 基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作
- 使用aria2多线程传输技术,对网络依赖带宽依赖较低
下载安装
创建文件夹
mkdir -p /opt/bigdata/otter/manager
mkdir -p /opt/bigdata/otter/node
# aria2是一个文件通道来保证需要同步的数据通过极快的速度同步到需要同步的服务器上
mkdir -p /opt/bigdata/otter/aria2
解压
tar -zxvf manager.deployer-4.2.17.tar.gz -C /opt/bigdata/otter/manager
tar -zxvf node.deployer-4.2.17.tar.gz -C /opt/bigdata/otter/node
tar -zxvf aria2-1.17.1.tar.gz -C /opt/bigdata/otter/aria2
改配置文件
vim /root/otter/manager/conf/otter.properties
启动 manager
登录页面 ip:9999 账号密码: admin/admin
sh /root/otter/manager/bin/startup.sh
vim /root/otter/node/conf/otter.properties
echo 1 > /root/otter/node/conf/nid
cp /root/otter/node/conf/nid /root/otter/node/bin/
启动 node
sh /root/otter/node/bin/startup.sh
编译安装 aria2
编译:./configure
安装:make
make install
查看版本:aria2c -v
使用
参考:数据库binlog同步工具--otter使用指南_黄河边上的牧马人的博客-CSDN博客_binlog同步工具
需要配置使用的zk、canal、node等地址、端口等信息。
1. 添加 zk
2. 添加 node
以上图片 机器端口自由填写不是ssh端口号,完成node配置后在启动后台node
配置完成后,机器管理第一列就是nid,安装node时会用到。
node 添加成功
同步任务配置
1、添加数据源
2、添加2个数据源
3. 配置两个库表
4. 添加canal
5. 添加channel
6. pipeline管理
7. 映射管理管理
选择字段对应关系,保存。
所有的配置都完成了。
8.
9. 测试
向源数据库表添加、修改数据,查看目标数据库是否也跟着变更。
开启 binlog 日志
安装完成 mysql 后,修改 my.cnf 文件,在 [mysqld] 下添加
[mysqld]
server_id=2
log_bin=mysql-bin
binlog_format=ROW
验证:
show variables like 'log_%';
显示 log_bin on