otter双A配置
最近做跨国服务器的数据同步,用了阿里的otter开源框架,遇到了不少问题,写一下文档为以后做参考。
第一步:
下载所需的文件 :otter,zookeeper,aria2
otter下载地址:https://github.com/alibaba/otter
zookeeper下载地址:https://github.com/apache/zookeeper
aria2下载地址:http://sourceforge.net/projects/aria2/files/stable/
zookeeper :的配置网上有很多
aria2 : 加速文件传输用的 使用方法网上搜,很多
这里主要写对otter的使用
第二步:
进入$otter_home目录
执行:mvn clean install -Dmaven.test.skip -Denv=release
运行完后在 $otter_home 会生成 target 文件 解压文件中的 manager 和 node 文件
文件启动顺序 aria2 > zookeeper > manager > node
服务器环境搭建 :
一:在 A B 服务器中安装 jdk mysql
安装MySQL
安装完成后配置文件可根据现有的配置文件进行修改:
必须启用binlog而且只支持ROW格式
log-bin=mysql-bin
binlog-format=ROW
为了保证在同步过程中不意外产生数据差异,启用binlog的实时同步到磁盘的操作(此操作会对磁盘IO有开销),
避免在服务突然中断过程中差生binlog丢失造成服务无法启用:
sync_binlog=1
为提高兼容性最好默认就使用UTF8
character-set-server=utf8
指定固定的数据存储文件夹:
mkdir /data/mysql
datadir=/data/mysql
此数据库集群里面的每台MySQL的server-id必须不同,经过沟通为了保证伺候服务器集群的需求,暂定为8:
server-id=2
auto-increment-increment=8
auto-increment-offset=1
二: 在 A 中配置 ( node ) 在 B 中配置 ( zookeeper manager node)
导入需要的的表:
#mysql -uroot -pabc-123 #mysql -uroot -pabc-123 manager安装: mkdir -p /usr/local/manager tar xf manager.deployer-4.2.12.tar.gz -C /usr/local/mamager cd /usr/local/mamager/conf vim otter.properties otter.domaniName = 10.0.0.2 otter.port = 8081 otter.database.driver.url = jdbc:mysql://10.0.0.2:3306/otter otter.database.driver.username = root otter.database.driver.password = abc-123 otter.zookeeper.cluster.default = 10.0.0.2:2181;10.0.0.2:2182; 启动manager : /startup.sh vim otter. properties otter.manager.address = 10.0.0.2:1099 cd /usr/local/node/bin =================================到 此 A 服务器搭建完毕。============================== 配置B服务器: 1:安装MySQL 安装完成后配置文件可根据现有的配置文件进行修改: 必须启用binlog而且只支持ROW格式 log-bin=mysql-bin binlog-format=ROW 为了保证在同步过程中不意外产生数据差异,启用binlog的实时同步到磁盘的操作(此操作会对磁盘IO有开销), 避免在服务突然中断过程中差生binlog丢失造成服务无法启用: sync_binlog=1 为提高兼容性最好默认就使用UTF8 character-set-server=utf8 指定固定的数据存储文件夹: mkdir /data/mysql datadir=/data/mysql 此数据库集群里面的每台MySQL的server-id必须不同,经过沟通为了保证伺候服务器集群的需求,暂定为8: server-id=2 auto-increment-increment=8 auto-increment-offset=1 2:安装java rpm -ivh jdk-8u74-linux-x64.rpm 3:安装aria2 tar xf aria2-1.17.1.tar.gz mv aria2-1.17 /usr/local/aria2 cd /usr/local/aria2 ./configure make make install 4:安装zookeeper mkdir /usr/local/zk tar xf zookeeper-3.5.1-alpha.tar.gz -C /usr/local/zk cd /usr/local/zk mkdir data cd data echo “3” >myid cd .. cd conf cp zoo_sample.cfg zoo.cfg vim zoo.cfg dataDir=/usr/local/zk/data server.1 =10.0.0.2:8881:7771 server.2 =10.0.0.2:8882:7772 server.3 =10.0.0.3:8883:7773:observer :x 5:安装node vim otter. properties otter.manager.address = 10.0.0.2:1099 cd /usr/local/node/bin 6:导入需要的表 #mysql -uroot -pabc-123 otter-manager-retl.sql这个创建表会创建用户,请修改次用户的密码。 登录manager 地址为 manager中配置的 账号:admin 密码:admin 登陆后必须修改。 1:添加zookeeper集群 2:添加node 将 A , B 两个 node 的ip地址 此处需要注意,在选择zookeeper集群的时候需要就近选择。 添加之后会生成node的号码,当你启用node的时候会受到报错需要nid,此处的nid就是以当你添加之后manager给node分配的号码为准: cd /usr/local/node/conf echo “1”>nid 启动node,所有的node都需要启动 cd /usr/local/node/bin ./startup.sh 都启动后稍后刷新manager node 状态为启动状态 3:添加数据源 4:添加数据表 这地方添加需要同步的数据表: 5:配置cannal 6:配置channel 7:Pipeline管理 配置2个Pipeline 如果要用DDL同步,一个pipeline开启ddl同步,另一个不要开启,且都要开启跳过ddl异常,DryRun模式 不要开启 8:添加映射关系 到此可以点击运行进行。 成功开启后如下图: 监控项目: 同步延迟,position超时(位点超过多少时间没有更新) , 一般业务方关心这些即可 异常 (同步运行过程中出现的异常,比如oracle DBA关心oracle系统ORA-的异常信息,mysql DBA关心mysql数据库相关异常) process超时(一个批次数据执行超过多少时间),同步时间超时(数据超过多少时间没有同步成功过) 阀值设置 1800@09:00-18:00 , 这例子是指定了早上9点到下午6点,报警阀值为1800. 发送对象 otterteam为otter团队的标识,阿里内部使用了dragoon系统监控报警通知,如果外部系统可实现自己的报警通知机制 修改发送对象: 注意: 1,安装依赖包yum install -y nc 2,域名的问题,在实际的生产过程中最好绑定域名,如无dns可使用hosts文件,如果不绑定域名manager的很多查看功能会报错 配置otter
监控管理