Oracle零碎笔记之数据同步

标签: oracle 笔记 数据 | 发表时间:2014-11-19 10:39 | 作者:aswang
出处:http://www.iteye.com
需求:实现Oracle数据库表记录变更后的准实时同步。
 
可选方案:
1、基于时间戳来检测变更
要求:
  a、需同步的表均需要添加时间戳字段,并在更改数据后,同步更新时间戳
  b、对于删除操作,需要额外处理。或通过触发器记录,或者不真实删除记录,仅仅设置删除标记。
  c、业务层编码实现同步
缺点:
  对系统增加了额外约束
  同步的实时性取决于轮训的时间间隔
 
2、基于触发器来记录变更
要求:
  a、对于所有同步的表,均需要编写触发器
  b、可基于dblink直接将变更应用到远程数据库
  c、或触发器将变更统一记录到一张表中,然后业务层编码实现同步
缺点:
  可维护性较差,性能较差
  有潜在问题:oracle官方说明,不保证触发器只触发一次
 
3、基于Oracle快照和物化视图实现同步
要求:
  a、对于需同步的表,需要建立快照表,触发器等
 
4、基于Oracle Database Change Notification实时获取变更
要求:
  a、需要确保应用与数据库的一直连接
缺点:
  在连接断开后,在下次连接建立之前,数据库的变更会丢失
  
5、基于Oracle Streams方案实现同步
要求:
  a、Oracle需要以归档模式运行
  b、需要在源数据库和目标数据库中编写相应的存储过程,来完成变更捕获、传播和变更应用
优点:
  基本可实现实时同步
  可在数据库层,完全基于Streams实现一对一、一对多等数据复制需求
缺点:
  难度较大,需要对Oracle Streams有一定的认识
  需在源数据库和目标数据库做不同的处理
  工程人员实施有一点难度
 
6、基于Oracle Streams + Oracle AQ 捕获变更,发布变更
要求:
  a、Oracle需要以归档模式运行
  b、仅基于Streams捕获本地数据库变更
  c、通过Oracle的消息队列AQ,来发布变更
  d、业务层通过JMS获取变更,并应用到目标数据库
  
备注:
方案6为方案5的简化,仅依赖于Streams来捕获变更,发布变更。变更的应用需要编码实现。
该方案主要是为了降低工程维护的复杂性。
 
 


已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [oracle 笔记 数据] 推荐:

Oracle零碎笔记之数据同步

- - Oracle - 数据库 - ITeye博客
需求:实现Oracle数据库表记录变更后的准实时同步. 1、基于时间戳来检测变更.   a、需同步的表均需要添加时间戳字段,并在更改数据后,同步更新时间戳.   b、对于删除操作,需要额外处理. 或通过触发器记录,或者不真实删除记录,仅仅设置删除标记.   c、业务层编码实现同步.   对系统增加了额外约束.

Oracle 发布 NoSQL 数据库

- 冷月 - 博客园新闻频道
  Oracle 作为全球最大的关系型数据库提供商,在其产品链条中,也加入了 NoSQL 数据库这一环,而且这个新的数据库名字很霸气,就叫 NoSQL Database,想起了当年新浪微博更换 weibo.com 域名之时的一个笑话:. 原来有三家人做面包,张三家的面包叫三张牌面包,李四家的牌子叫李四牌面包,王五家出品的是王五牌面包,而突然有一天,张三家的面包改名了,叫面包牌面包.

Oracle数据库备份

- - Oracle - 数据库 - ITeye博客
(一)、导出/导入(EXPORT/IMPORT).   EXPORT/IMPORT是用来将ORACLE中数据移出/移入数据库.   1、EXPORT将数据库中数据备份成一个二进制系统文件称为“导出转储文件”(EXPORT. DUMP FILE),并将重新生成数据库写入文件中.   a.用户模式:导出用户所有对象以及对象中的数据;.

数据批量导入Oracle数据库

- - Oracle - 数据库 - ITeye博客
今天学习了一个新的东西,觉得还挺有意思的,也是从别出COPY 的,. SQL*LOADER是大型数据. 仓库选择使用的加载方法,因为它提供了最快速的途径(DIRECT,PARALLEL). 现在,我们抛开其理论不谈,用实例来使. 您快速掌握SQL*LOADER的使用方法.   首先,我们认识一下SQL*LOADER.

Oracle数据库分析函数详解

- - MySQLOPS 数据库与运维自动化技术分享
Oracle数据库分析函数详解. 原创文章,转载请注明: 文章地址 Oracle数据库分析函数详解.

Oracle数据库资源管理

- - 技术改变世界 创新驱动中国 - 《程序员》官网
一般来说,Oracle数据库都属于中大型的系统,这类系统的用户会话(Session),小则一两百,多则上千,这些用户会话要求Oracle数据库执行的任何指令都需要耗费系统资源,而系统资源毕竟是宝贵且有限的,一旦突然涌进大量的用户会话,对于有限的资源可能会略显不足. 但这些会话必定有轻重缓急之分,对于重要且紧急的用户会话需求理当获得多一点的系统资源,对于一些不重要或不紧急的用户会话,则可以使用较少的系统资源慢慢处理.

Oracle 数据库导入导出

- - CSDN博客推荐文章
使用 exp/imp 导入导出. 开始exp/imp之前, 有以下几点需要注意:. 1)此部分以 oracle 10g为例. 2)exp, imp 是操作系统下一个可执行的文件,存放在/ORACLE_HOME/bin目录下. 所以之间cmd 命令模式下执行就行了. (不需要先连接进sqlplus).

ORACLE数据库优化设计方案

- - CSDN博客推荐文章
本文主要从大型数据库ORACLE环境四个不同级别的调整分析入手,分析ORACLE的系统结构和工作机理,从九个不同方面较全面地总结了ORACLE数据库的优化调整方案. 关键词 ORACLE数据库 环境调整 优化设计 方案. 对于ORACLE数据库的数据存取,主要有四个不同的调整级别,第一级调整是操作系统级包括硬件平台, 第二级调整是ORACLE RDBMS级的调整,.

Oracle 数据压缩(Compression) 技术 说明

- - CSDN博客推荐文章
Oracle 11g EE版本中只有: Basic Table Compression ,而 AdvanceCompression Feature需要单独购买. 11g Advanced Compression 有如下特性:. --支持了DML 语句的compress,下面会重点关注. --包括RMAN和expdp/impdp.对数据泵,compress 是inline的,在impdp时不需要进行解压缩,直接导入即可.

用SQL语言管理Oracle数据库

- - CSDN博客推荐文章
1,查看数据库的基本属性:. SELECT dbid 数据库编号,name 数据库名称,db_unique_name 全局名称,created 创建时间,log_mode 归档方式,open_mode 访问方式,platform_name 版本类型 FROM v$database;. 2,查看所有数据库对象的类别和大小:.