Otter套件安装配置

otter 系列同步数据

前言

公司需要将云服务器的数据库备份到公司机房服务器。

我们都用得mysql数据库

otter 使用要求

博主只在mysql上使用,并不知道其他数据库是否可行。
机器上必须要有java。
模仿mysql主从库,所以在主库需要配置开始binlog、binlog为row模式,修改配置后重启mysql

[mysqld]
#log_bin
#开启binlog
log-bin = mysql-bin
#选择row模式
binlog-format = ROW 
#服务Id 不能重复
server_id = 1 

通过 SHOW VARIABLES LIKE 'log_bin'; 查看是否开启log-bin 查询ON则已经开启
通过 show variables like '%binlog_format%'; 查看日志模式是否row 查询row则日志默认row

一、otter 谁搞得,用来干什么

otter是阿里搞得用来干啥呢?
otter基于Canal(也是阿里搞得),获取数据库增量日志数据实现数据库同步。 otter也可以做全量同步和文件同步。涵盖的说就是可以做到异构库同步、单机房同步、异地机房同步、双向同步、文件同步。

otter 整体配置是有点繁琐复杂,配置好了使用就有点酸爽。
官方资料 Manager使用介绍

二、otter 都需要安装什么

  1. zookeeper 解决分布式状态调度的,允许多node节点之间协同工作. 下载地址
  2. canal 主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。Node集成了Canal所以安装otter不需要单独安装canal。 下载地址
  3. otter 典型管理系统架构,manager(web管理)+node(工作节点) 下载地址
    1. manager运行时推送同步配置到node节点
    2. node节点将同步状态反馈到manager上

如果是window上部署需要安装 aria2用来处理数据库日志文件下载
添加环境变量 Path=arial2安装目录

安装

切记如果是windows需要安装aria2并配置环境变量

zookeeper 安装

下载地址

解压缩 进入 \zookeeper\conf 目录 复制 zoo_sample.cfg 改名 zoo.cfg
需要注意的几个配置

 #数据目录
dataDir=E:\\otter\\zookeeper\\data
#日志目录
dataLogDir=E:\\otter\\zookeeper\\log
#服务监听端口 不配置默认是8080
admin.serverPort=9091

其他配置文件博主都保持默认即可

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=E:\\otter\\zookeeper\\data
dataLogDir=E:\\otter\\zookeeper\\log
# the port at which the clients will connect
clientPort=2181
admin.serverPort=9091
# the maximum number of client connections.
# increase this if you need to handle more clients
maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# https://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

## Metrics Providers
#
# https://prometheus.io Metrics Exporter
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpHost=0.0.0.0
#metricsProvider.httpPort=7000
#metricsProvider.exportJvmInfo=true
audit.enable=true

修改完成配置文件后启动zookeeper

window直接运行 zkServer.
linux 执行 ./zkServer start (linux需要添加 start 参数。参数介绍 start 启动ZK服务;status 查看ZK服务状态;stop 停止ZK服务;restart 重启ZK服务;)

启动后检查zookeeper 是否正确启动。笔者在windows和linux启动都遇到 ZooKeeper audit is disabled 。
需要修改在配置文件中zoo.conf 添加 audit.enable=true 配置。再次启动

otter 安装( manager和node)

下载地址
这个地址包含 manager.deployer、node.deployer都需要下载安装。
在安装之前我们需要把otter的数据库搞到mysql里面。manager有很多配置,配置的存储通过mysql数据库。简单说我们给otter系统创建它自己的数据库。
阿里已经帮我们把数据库脚本写好了,我们执行sql完成创建表结构、导入管理员用户就可以了。
sql语句地址
sql官方下载地址需要墙
SQL 备份下载 CSDN 备份
SQL语句执行我在mysql8的版本中 报错,可以根据报错取消 NO_AUTO_CREATE_USER

SET sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
-- 去掉 NO_AUTO_CREATE_USER  
SET sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

manager 安装

修改配置文件 \manager\conf\otter.properties
主要的的几个配置项

##otter manager domain name #如果127.0.0.1 只能本机访问,如果其他机器也需要访问,就改成本机实际Ip
otter.domainName = 127.0.0.1    
##otter manager http port  如果修改改端口需要在jetty.xml 里面也修改
otter.port = 8080
##otter manager database config ,修改为正确数据库信息 ,,上面执行sql创建的数据库的连接地址和用户名密码
otter.database.driver.class.name = com.mysql.jdbc.Driver
otter.database.driver.url = jdbc:mysql://127.0.01:3306/ottermanager
otter.database.driver.username = root
otter.database.driver.password = hello

##default zookeeper address,修改为正确的地址,手动选择一个地域就近的zookeeper集群列表
otter.zookeeper.cluster.default = 127.0.0.1:2181
##default zookeeper session timeout = 90s
otter.zookeeper.sessionTimeout = 90000

实际中的我配置文件,注意 ip和数据库连接

## otter manager domain name
otter.domainName = ip
## otter manager http port
otter.port = 8080
## jetty web config xml
otter.jetty = jetty.xml

## otter manager database config
otter.database.driver.class.name = com.mysql.jdbc.Driver
otter.database.driver.url = jdbc:mysql://127.0.0.1:port/otter
otter.database.driver.username = x
otter.database.driver.password = x

## otter communication port
otter.communication.manager.port = 1099

## otter communication payload size (default = 8388608)
otter.communication.payload = 8388608

## otter communication pool size
otter.communication.pool.size = 10

## default zookeeper address
otter.zookeeper.cluster.default = 127.0.0.1:2181
## default zookeeper sesstion timeout = 60s
otter.zookeeper.sessionTimeout = 60000

## otter arbitrate connect manager config
otter.manager.address = ${otter.domainName}:${otter.communication.manager.port}

## should run in product mode , true/false
otter.manager.productionMode = true

## self-monitor enable or disable
otter.manager.monitor.self.enable = true
## self-montir interval , default 120s
otter.manager.monitor.self.interval = 120
## auto-recovery paused enable or disable
otter.manager.monitor.recovery.paused = true
# manager email user config
otter.manager.monitor.email.host = smtp.gmail.com
otter.manager.monitor.email.username = 
otter.manager.monitor.email.password = 
otter.manager.monitor.email.stmp.port = 465

修改完成后启动 bin\ startup
启动成功后 访问:http://127.0.0.1:8080/login.htm,初始密码为:admin/admin,即可完成登录. 目前:匿名用户只有只读查看的权限,登录为管理员才可以有操作权限

node 安装

到这一步已经成功了一半。

在安装 node之前我们先在otter中添加zookeeper。
  1. 浏览器中输入 ip:port 进入otter 配置页面。注意直接进入是以访客进入只有查看的功能,需要点击小门门,登录admin。进行配置。admin默认密码 admin。
    在这里插入图片描述

  2. 添加zookeeper,集群名称可以填写方便自己记忆的。 zookeeper集群填写 部署 zookeeper 机器 ip:port; 记得必须有分号,点击保存。
    在这里插入图片描述

配置otter中的node

node受ottermanager进行管理,所以先安装otter manager,完成manager安装后,需要在manager页面为node定义配置信息,并生一个唯一id

  1. 添加node,填写node配置。
    在这里插入图片描述
  2. node机器名称填写自己方便记忆的名称、机器ip填写部署node机器IP、机器端口默认2088、下载端口默认9090、MBean端口默认2090 、zookeeper集群选择刚才配置的zookeeper,点击保存。
    在这里插入图片描述
    3.保存后注意这个序号,在下一步需要。
    在这里插入图片描述
  3. 解压node文件 修改 conf/otter.properties 文件
    主要更改 otter.nodeHome 改为node实际目录。
    我的配置
# otter node root dir
#otter.nodeHome = ${user.dir}/../
otter.nodeHome = /tool/node
## otter node dir
otter.htdocs.dir = ${otter.nodeHome}/htdocs
otter.download.dir = ${otter.nodeHome}/download
otter.extend.dir= ${otter.nodeHome}/extend

## default zookeeper sesstion timeout = 60s
otter.zookeeper.sessionTimeout = 60000

## otter communication payload size (default = 8388608)
otter.communication.payload = 8388608

## otter communication pool size
otter.communication.pool.size = 10

## otter arbitrate & node connect manager config
otter.manager.address = 127.0.0.1:1099
  1. 在node的conf目录下添加文件 nid 里面内容就是otter配置的序号。 ( linux直接在node目录下执行 echo 1 > /conf/nid )
  2. 启动node 运行 startup 。数秒后在otterWeb管理端就可以 node的状态是已启动。

至此,otter已经安装完成。接下来只需要在web管理端进行配置即可实现同步。
配置比较繁琐,并不会特别复杂,说下流程和几个关键名词解释
** otter名词解释:**
数据源:读取的源实例信息,和写入的目标实例信息
数据表:配置映射用的,用于配置,源实例,什么库,什么表,同步到目标什么库,什么表
canal:otter是做增量同步的,增量同步基于mysql的binlog日志,并且是row格式。这里需要配置你读取binlog的信息,和数据源里面的源实例信息可以说是同一个。
通道配置: otter采用一个实例一个通道方式。一个实例可以多个配置多个库
pipeline:主要核心功能如下
(1)选择你的canal配置,读取哪个实例的binlog。
(2)选择整个同步是在哪个节点上进行,例如我们部署了三个node节点,可以由node1进行读取的操作,可以由node2进行目标实例写入操作。也可以同时放到一个节点上。
(3)binlog位置,默认不写就读最新位置的。
(4)高级配置里面有是否跳过DDL,传输模式,负载均衡算法等,一般保持默认即可。
流程:
(1)新增数据源,一般最少配置2个,一个读取的源库,一个目标
(2)数据表,配置映射关系,从哪里同步到哪里。
(3)Canal,配置读取binlog的信息
上面步骤创建好后,我们就可以正式开始配置通道了
(4)创建通道
(5)创建pipeline
(6)创建表映射关系
(7)启动通道

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值