[list][*][b]概述[/b][/list]
目前了解到基于Oracle的开源数据同步项目有yugong、databus、SymmetricDS,之前尝试了yugong,很容易上手。使用时需要注意两点:1、物化视图和回表查询对源库会产生比较大的影响;2、每一个表有一个单独的实例去处理整个流程,数据抽取、转换、入库不能分离;3、yugong设计的目的是为了去IOE,做切库使用,多次增量同步确认后即可停止增量同步。若需要持续增量同步,需要每个表提供一个线程,不支持轮询持续同步。

[list][*][b]databus介绍[/b][/list]
databus是基于SCN的数据同步项目,使用触发器、JOB更新SCN。相对于yugong,其最大的优点在于server、client分离,并提供完善的消费机制。详细可参考:
[quote][url]https://github.com/linkedin/databus[/url][/quote][quote][url]http://databus.majunwei.com/document/Connecting_Databus_to_an_Oracle_Database.html[/url][/quote][quote][url]http://blog.sina.com.cn/s/blog_6c9b83990101bbzq.html[/url][/quote]
[list][*][b]databus使用[/b][/list]
databus使用gradle作为编译工具,执行命令:gradle -Dopen_source=true assemble进行打包,打包时编译一直失败:"UTF-8不可映射字符",尝试了不少网上的的gradle对UTF-8的支持配置方案都不行。后来看了下报错信息,编码问题都集中在同一个类的注释中,就手动更改了类的注释(两个符号),成功编译。

1、创建数据库账户

./createUser.sh [db_name] [db_pwd] 192.168.11.129:1521/ORCL1 [table_space] [/mnt/u001/oracle/data/DB] > /tmp/createUser.out

2、数据库添加字段(txn)、视图、package(SYNC_ALERT、SYNC_CORE)、procedure(COMPILE_ALLOBJECTS)、trigger(before 更新txn)、序列、Jobs(J_CALL_SIGNAL、J_COALESCE_LOG)

./createSchema.sh db_name/db_pwd@192.168.11.129:1521/ORCL1 [tab、view文件位置] > /tmp/createSchema.out

重复执行会在sy$sources表和sync_core_settings表中形成重复数据,需删除。tab和view文件每个表对应一个,tablespace文件中存放表空间名

3、生成EventSchema,进入databus-util-cmdline\databus2-cmdline-tools-pkg下,执行gradle assemble,打包EventSchema生成工具解压,进入bin文件夹执行:

./dbus2-avro-schema-gen.sh -namespace com.linkedin.events.example.person -recordName [tablename] \    -viewName "sy\$person" -avroOutDir /root/databus-master/databus2-example/databus2-example-relay-pkg/schemas_registry -avroOutVersion 1 \    -javaOutDir /root/databus-master/databus2-example/databus2-example-person/src/main/java \   -database jdbc:oracle:thin:@192.168.11.129:1521:ORCL1  -userName [db_name] -password [db_pwd]

执行上述命令:生成实体类、.avsc文件

4、编写server代码:a、编写sources-person.json,每一个表对应一个json文件;b、把上面生成的avsc文件名写在index.schemas_registry中;c、server启动类

5、编写client代码:参考demo

6、编译打包:分别进入到databus2-example-client-pkg和databus2-example-relay-pkg下,运行命令:gradle -Dopen_source=true clean assemble test,将databus-master/build下databus2-example-client-pkg和databus2-example-relay-pkg下distribution文件夹下的tar包拷到linux下,解压,在bin下运行./start-example-relay.sh person和 ./start-example-client.sh person

总结:
1、需要给每一个同步的源表增加一个txn字段,demo中.tab文件中是create语句,若表存在可改为update语句
2、提供了很多脚本文件,基本上都涉及数据库操作,因此执行脚本需要在linux环境且系统支持sqlplus。目前不提供bat文件,无法再window下执行
3、client与server通讯提供http、rm,rmi默认关闭。但测试时发现client端每次启动时都报错,rmi链接被拒绝掉了,不影响使用
4、avsc、实体类需要通过脚本生成,不支持多表批量生成。还需要编写json文件。总之,window下开发不是很方便,需要重构脚本简化准备工作。

参考:[quote][url]http://blog.csdn.net/guojing505123/article/details/51361281[/url][/quote][quote][url]https://github.com/linkedin/databus/wiki/Databus-2.0-Example[/url][/quote]

Oracle数据同步解决方案之databus相关推荐

  1. Oracle数据同步

    温习一下Oracle中常说的HA.RAC.Datagurad的区别 简单的说 rac侧重于负载均衡 dg侧重于容灾  datagourd 双机侧重于业务的自动接管 关键看你的应用要求是什么样的 来进行 ...

  2. springboot实现增量备份_SpringBoot canal数据同步解决方案

    SpringBoot canal数据同步解决方案 一.需求 微服务多数据库情况下可以使用canal替代触发器,canal是应阿里巴巴跨机房同步的业务需求而提出的,canal基于数据库的日志解析,获取变 ...

  3. 基于OGG Datahub插件将Oracle数据同步上云

    摘要:随着数据规模的不断扩大,传统的RDBMS难以满足OLAP的需求,本文将介绍如何将Oracle的数据实时同步到阿里云的大数据处理平台当中,并利用大数据工具对数据进行分析. 一.背景介绍 随着数据规 ...

  4. Oracle数据同步接口,增量数据从ERP系统到本地临时表封装解决方案

    项目的许多基础数据需要从ERP系统中同步基础数据,例如:物料.客户.供应商.仓库等等. 之前做过一次比较死板的标准流程: 1.通过JDBC取ERP系统的增量数据; 2.解析; 3.然后用自己项目的DB ...

  5. 两台SQL Server数据同步解决方案

    复制的概念 复制是将一组数据从一个数据源拷贝到多个数据源的技术,是将一份数据发布到多个存储站点上的有效方式.使用复制技术,用户可以将一份数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可 ...

  6. SQL 与oracle数据同步之 链接服务器

    很多时候,大一些的单位都有好几个系统,而这几个系统可能来自己不同的厂商,它们采用的开发技术可能很不一样,底层数据库也很能 有可能是 出于不同的平台,这就造成了同一个企业而在信息数据方面不"同 ...

  7. (进阶篇_01)Oracle数据同步3种场景

    文章目录 一.场景分析 二.实战 2.1. 创建原表表结构+初始化数据 2.2. 创建目标表表结构 2.3. 同步前效果图 2.4. 连接串 2.5. 执行同步 2.6.执行后效果图 2.7.操作记录 ...

  8. oracle 上搭建ogg文档,ogg搭建配置实现oracle数据同步到mysql)

    在线QQ客服:1922638 专业的SQL Server.MySQL数据库同步软件 参考博客文章:https://www.jianshu.com/p/53882229b70e ? 1)根据不同的数据库 ...

  9. 关于内外网数据同步解决方案

    目前,越来越多的企业内部或者合作企业之间要求各种业务数据能够实时同步共享,大部分重视安全性的企业会将数据存储至云端以防丢失.高需求企业一般都采用基于TCP的文件复制或同步工具的方法来实现数据同步. 传 ...

最新文章

  1. PHP文件和目录操作
  2. 电灯泡内通有交流电,为什么看不到灯泡在闪烁?
  3. 上拉加载你这个坑货~
  4. Tensorflow:TF模型文件(checkpoint文件夹下ckpt文件之data、index、meta)保存、模型导入、恢复并fine-tuning之详细攻略
  5. 莫名其妙的SqlServer更新错误:OleDbException 必须声明标量变量
  6. 5.贝叶斯算法、单词拼写错误案例
  7. SAP UI5 应用开发教程之五十八 - 使用工厂方法在运行时动态创建不同类型的列表行项目控件
  8. 【ArcGIS Pro微课1000例】0001:Win7系统ArcGIS Pro2.5安装权威教程(附软件安装包下载)
  9. [渝粤题库]西北工业大学复变函数与积分变换
  10. 计算机软件技术大作业报告,多媒体技术大作业报告.doc
  11. 【快讯】阿里云张建锋:数据成为经济发展的新生产要素
  12. 【操作系统】实验四 主存空间的分配和回收
  13. 阿里热修复方案Sophix
  14. 游戏设计情境探秘之声音
  15. springboot接收excel数据文件去重
  16. REST Assured 1 - REST Assured 介绍
  17. web前端笔记整理,从入门到上天,周周更新
  18. 电脑文件管理——XYplorer
  19. OCT病灶分割论文泛读
  20. 探店通系统,短视频矩阵源码,抖音矩阵系统,look

热门文章

  1. vmware workstation中搭建云平台,虚拟机重启遇到的问题
  2. 从电焊女工到Google台湾总经理
  3. 如何用matlab将彩色图片转为单通道绿色图片
  4. 频临死亡的校园BBS自救决心仍需加大
  5. .ren助力高校BBS圈,sdada.ren为山工艺学子服务~
  6. Linux中查看jdk版本
  7. 【计算机网络】计算机网络的主要功能
  8. “苦逼”程序员的日常,你了解吗?
  9. 大学教务人员管理系统(C++实现)
  10. 一段话描述相控阵论文要点(持续学习更新中...)