0%

otter 介绍以及安装配置教程

1. 介绍

otter是基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库。是一个分布式数据库同步系统。

原理描述:

  • 基于Canal开源产品,获取数据库增量日志数据。
  • 典型管理系统架构,manager(web管理)+node(工作节点)

    • manager运行时推送同步配置到node节点
    • node节点将同步状态反馈到manager上
  • 基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作.
    原理

otter的wiki页面:otter
wiki上的安装以及配置教程很详细。运维方面主要考虑的要在需要同步的数据库节点上装上Node。在管理节点上装manager。并且还需要事先先装好zookeeper。

2. otter的安装

2.1 环境依赖

otter的环境需要:mysql, jdk, zookeeper, node, aria2, manager。

otter安装首先需要两台服务器,我实现的是两台服务器之间的Mysql数据库双主同步,即双写同步。
假设两个服务为A,B,下面进行安装。首先安装好JDK并配好环境变量,以及mysql的安装。
otter只支持5.6及以下的mysql,如果版本不对需要重新安装

安装完后,修改mysql的配置文件:

vi/etc/my.cnf

检查以下的配置:

1
2
3
4
5
log-bin=mysql-bin
# binary logging format - mixed recommended
#binlog_format=mixed
binlog_format=ROW #修改成ROW
server-id = 1 #两个机房的serverid设置为不一样的值

2.2 设置otter数据库账号和密码

然后启动数据库,分别在AB库上分配otter的数据库账号和密码,例如canal/canal,执行sql:

1
2
3
4
5
CREATE USER canal IDENTIFIED BY 'canal'; 
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
-- 赋权限,
FLUSH PRIVILEGES;

查看权限的sql语句:
1
show grants for 'canal';

2.3 匿名删除

需要注意的是,有的Mysql版本,自带了两个匿名用户,需要把两个匿名用户删除。执行sql:

1
2
3
use mysql; --进入mysql库
select user,host,password from mysql.user; --查询用户列表
delete from mysql.user where user=''; --删除匿名用户

3. 安装zookeeper

安装过程可参考:
ZooKeeper 介绍及集群搭建教程
zookeeper可以只单机安装,也可以以集群形式安装,安装完成后启动。

4. 安装Node

安装过程可参考:
Node_Quickstart,官方文档的启动教程部分。
注意是要做数据抽取服务的机器都要装。

5. 安装Manager

安装过程可参考:
Manager_Quickstart,官方文档的启动教程部分。