




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Otter双A同步部署文档工作原理1. 基于Canal开源产品,获取数据库增量日志数据2. 典型管理系统架构,manager(web管理)+node(工作节点):manager运行时推送同步配置到node节点node节点将同步状态反馈到manager上3. 基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作.异地机房复制示意图:说明:a. 数据涉及网络传输,S/E/T/L几个阶段会分散在2个或者更多Node节点上,多个Node之间通过zookeeper进行协同工作 (一般是Select和Extract在一个机房的Node,Transform/Load落在另一个机房的Node)b. node节点可以有failover / loadBalancer. (每个机房的Node节点,都可以是集群,一台或者多台机器)一、部署:otter的环境需要:mysql ,jdk , zookeeper , node , aria2 , manager 。1、安装 mysql jdk zookeepermysql 5.6版本, jdk用的是:jdk1.7.0_71此处安装数据库A: 28:3306 数据库B:29:3306Zookeeper地址:28:2181另外2个mysql必须要设置成row模式的日志格式查看格式: show VARIABLES like %binlog_format%;方法一:在线修改立即生效方法二:在配置文件中参数如下:(推荐)编辑/etc/f,检查一下配置binlog_format=ROW #修改成ROWserver-id = 1 #不同mysql的server-id设置为不同的值重启mysql二、安装manager(安装在128 A库上)2.1、安装之前先在mysql建立相关账号、并赋予权限 、导入magager初始化库/alibaba/otter/master/manager/deployer/src/main/resources/sql/otter-manager-schema.sqlsourceotter-manager-schema.sql创建用户canalCREATE USER canal IDENTIFIED BY canal;将库otter授权给用户canalGRANT ALL PRIVILEGES ON otter.* TO canal29 IDENTIFIED by canal ;(B库也要修改执行)2.2、magager解压修改配置文件# otter manager domain nameotter.domainName = 28 #manager web管理地址# otter manager http portotter.port = 8080 #web访问端口# jetty web config xmlotter.jetty = jetty.xml# otter manager database = com.mysql.jdbc.Driverotter.database.driver.url = jdbc:mysql:/:3306/otter #manager初始化库otter.database.driver.username = canal #数据库管理账号与密码otter.database.driver.password = canal# otter communication munication.manager.port = 1099# otter communication pool munication.pool.size = 10# default zookeeper addressotter.zookeeper.cluster.default = 28:2181 #zookeeper地址以及端口# default zookeeper sesstion timeout = 60sotter.zookeeper.sessionTimeout = 60000# otter arbitrate connect manager configotter.manager.address = $otter.domainName:$munication.manager.port# should run in product mode , true/ductionMode = true# self-monitor enable or disableotter.manager.monitor.self.enable = true配置完成后启动查看日志,启动成功com.alibaba.otter.manager.deployer.OtterManagerLauncher - # start the manager server. com.alibaba.otter.manager.deployer.JettyEmbedServer - #Jetty Embed Server is startup!三、安装node 和aria2Node需要aria2支持 node安装在B数据库上面编译安装aria2:rootlocalhost aria2-1.17.1# ./configure & make & make install安装完成后解压node然后修改配置文件# otter node root dirotter.nodeHome = $user.dir/./# otter node dirotter.htdocs.dir = $otter.nodeHome/htdocsotter.download.dir = $otter.nodeHome/downloadotter.extend.dir= $otter.nodeHome/extend# default zookeeper sesstion timeout = 60sotter.zookeeper.sessionTimeout = 60000# otter communication pool munication.pool.size = 10# otter arbitrate & node connect manager configotter.manager.address = 28:1099 #此处改成magager地址以及端口四、配置配置zookeeper加入IP以及端口配置node加入IP以及端口配置node所在的IP端口保存后会生成序号此处是2 在node的conf文件夹下执行echo 2 nid此时可以启动Node了 ./startup.sh状态显示已经启动数据源配置添加 128db、129db数据表配置第一个.*表示所有库、第二个.*表示所有表canal管理同步管理 添加channel点击example添加Pipeline此处128设置为主站点 129为非主站点 则129添加的时候需要取消ddl支持(双向同步只能一个主站)点击128to129添加数据同步源和目标,配置从128到129的数据同步同理点击129to128配置从129到128的同步使用文档=数据库初始化在AB 2个库导入初始化sql 单向同步不需要此配置回到同步管理界面 点击启动 就可以了五、测试1、 在2个库表中插入数据 可以相互同步。在主站 新建库 不能同步 新建表要在主站所在的mysql建方可同步;2、 当停掉同步、在2个表插入主键相同的记录 开启同步 在开启一致性的情况,发现会出现覆盖数据的情况,数据最终保持一致;不开启一致性的情况下 会出现数据相互覆盖的情况,最终数据不一致;3、 在非主站的库建表、并插入数据,同步出现挂起状态,要去需要查找binlog建表插入数据后的position位置 在canal配置中指定位点信息,来跳过ddl语句,并删除position状态,恢复正常4、 刚开始是这样部署的A库所在的机器部署 zookeeper、 manage、node 。B库所在的机器部署node; 配置的pipeline的时候,129to128用129上面部署的node , 128to129用的是128上面部署的node、发现128虚拟机很卡,负载很高,node进程经常重启,数据同步不稳定、有时候需要重启同步,才能正常同步。后面都改用129Node恢复正常。5、 Otter库的 update很频繁产生大量binlog日志。六、其他资料canal和otter的关系?答: 在回答这问题之前,首先来看一张canal&otter和mysql复制的类比图. mysql的自带复制技术可分成三步:1. master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events,可以通过show binlog events进行查看);2. slave将master的binary log events拷贝到它的中继日志(relay log),这里是I/O thread线程. 3. slave重做中继日志中的事件,将改变反映它自己的数据,这里是SQL thread线程. 基于canal&otter的复制技术和mysql复制类似,具有类比性. 1. Canal对应于I/O thread,接收Master Binary Log.2. Otter对应于SQL thread,通过Canal获取Binary Log数据,执行同步插入数据库.两者的区别在于:1. otter目前嵌入式依赖canal,部署为同一个jvm,目前设计为不产生Relay Log,数据不落地.2. otter目前允许自定义同步逻辑,解决各类需求. a. ETL转化. 比如Slave上目标表的表名,字段名,字段类型不同,字段个数不同等.b. 异构数据库. 比如Slave可以是oracle或者其他类型的存储,nosql等.c. M-M部署,解决数据一致性问题d. 基于manager部署,方便监控同步状态和管理同步任务.otter目前存在的同步限制?答:这里总结了一下1. 暂不支持无主键表同步. (同步的表必须要有主键,无主键表update会是一个全表扫描,效率比较差)2. 支持部分ddl同步 (支持create table / drop table / alter table / truncate table / rename table / create index / drop index,其他类型的暂不支持,比如grant,create user,trigger等等),同
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第5课 做一次电影市场分析说课稿-2025-2026学年初中信息技术粤高教版2018七年级下册-粤高教版2018
- 2025商业合作合同书范本
- 2025企业违约、强制解雇、裁员均触犯合同法规定
- 2025二手简单装修购房合同书
- 2024-2025学年高中历史 第四单元 王安石变法 第2课 王安石变法的主要内容(2)教学说课稿 新人教版选修1
- 4.2 设计制作用集成电路制作收音机说课稿-2025-2026学年高中物理上海科教版选修2-1-沪教版2007
- 绍兴事业单位笔试真题2025
- 2025【合同范本】建筑材料采购合同范本
- 2025退休人员劳务合同模板
- 2025博骜丽景春天项目商品房销售代理合同
- 美术微课课题立项申报书
- GB/T 46084-2025燃煤锅炉火焰温度图像检测技术规范
- 2025年贵州省毕节市辅警招聘考试题题库(含参考答案)
- 女职工法律培训
- 2025口腔执业医师考试仿真模拟试题及答案
- 化工自动化控制仪表作业安全操作资格培训教材课件
- 造纸培训制浆造纸培训造纸纸病分析处理(“毛布”文档)共112张
- DB37-T 4457-2021企业开办工作指引
- 中科大中级有机化学实验讲义
- 干部任免审批表(空白)【电子版】
- 中西医结合 围绝经期综合征课件
评论
0/150
提交评论