当前位置:  数据库>oracle

新加表到Oracle Golden Gate的数据复制中

    来源: 互联网  发布时间:2017-04-26

    本文导语: 1.    适用版本 操作方法在任何平台的Oracle GoldenGate - Version: 10.4.0.46  及以后的版本用有效。 2.    目标 实现向已经上线运行的 Oracle GoldenGate 的环境中增加新的需要复制数据的表。 3.    方法 数据复制工具 Oracle GoldenGate 提...

1.    适用版本
操作方法在任何平台的Oracle GoldenGate - Version: 10.4.0.46  及以后的版本用有效。

2.    目标
实现向已经上线运行的 Oracle GoldenGate 的环境中增加新的需要复制数据的表。

3.    方法
数据复制工具 Oracle GoldenGate 提供了两种增加方法,我们这里逐个介绍。

3.1     第一种:使用 handlecollision 参数
参数 handlecollision 应用于复制进程,就是目标库上的 replicat 进程的配置

如果在 replicat 上配置了参数,那么复制进程工作时,将会对重复数据和丢失的数据做错误处理。

如果我们要求两点的话,使用该参数是个绝佳选择。

第一、               我们在加新表的 OGG 同步环境中时,能保证源库上对此表不做任何 DML 操作,当然 DDL 操作也不能有。

第二、       我们加了新表后,目标库上的数据不管,手工校验一次,发现不一致再手工处理也可以。

当然,在新加表的过程中,最好是源表不做任何操作。

 

以下步骤是ORACLE 官网提供的,这里不做翻译了。

i)using handlecollisions
----------------------------
1)stop the extract,pump and replicat

once the extract is stopped, wait for the pump to catch up before stopping it.

        once the pump is stopped, wait for the replicat to catch up before stopping it.
2)include the tables that you need to add into the extract parameter file and save it
3)start the extract
4)include the tables that you need to add into the extract pump parameter file and save it
5)start the pump
6)do the initial load for the the new tables( ie you can take the export and import of the new tables that need to to added for replication from source the target database)
7)Wait for the initial load(export and import) to be completed and then include the tables that you need to add into the replicat parameter file with HANDLECOLLISIONS parameter  
eg: MAP hr.dep, TARGET hr.dep, HANDLECOLLISIONS;
MAP hr.country, TARGET hr.country, HANDLECOLLISIONS;







6) start the replicat
7) once the lag becomes zero remove the HANDLECOLLISIONS from the replicat parameter file and restart the replicat
eg :-
MAP hr.dep, TARGET hr.dep;
MAP hr.country, TARGET hr.country;



note:- 4 and 5th step can be skipped if the pump is not configured.

 

3.2     第二种:不使用 handlecollision 参数
这种方法是通用的。因为在实际项目中,我们既不能保证源表的数据在操作 OGG 时无变化,由不能要求项目上接受数据差异或者丢失。

这种方法使用基于表的 SCN 方式同步差异数据。

在同步完成后,可以除掉关于 SCN 的同步配置。方法简明扼要,很容易理解。

以下步骤是ORACLE 官网提供的,这里也不做翻译了。

ii)without using handlecollision
--------------------------------------
1) stop the extract,pump and replicat

once the extract is stopped, wait for the pump to catch up before stopping it.

        once the pump is stopped, wait for the replicat to catch up before stopping it.

2)add the new table in extract parameter file and save it
3)start the extract
4)add the new table in extract pump parameter file and save it
5)start the extract pump
6)get the current SCN from the source database
eg:-
SQL> select current_scn from v$database;





CURRENT_SCN
------------------------
5343407
7) Check that there are no open DML transactions against the table. If there are open transactions, make sure that their starting SCN is higher than the one obtained in step 4) , i.e. 5343407


8)re-sync the the newly added table from source to target(using normal export/import).
Make sure to use FLASHBACK_SCN parameter for the export.

9) Add the table in the replicat parameter file including the below option( FILTER ( @GETENV ("TRANSACTION", "CSN") > ) )as shown in the below example
eg:-
MAP source.test1, TARGET target.test1 ,FILTER ( @GETENV ("TRANSACTION", "CSN") > 5343407);
MAP source.test2, TARGET target.test2 ,FILTER ( @GETENV ("TRANSACTION", "CSN") > 5343407);


10)start the replicat

11)verify the tables on source and table and once the lag is zero remove the filter parameter from the replicat parameter file and restart.

 

4.    参数说明
HANDLECOLLISIONS | NOHANDLECOLLISIONS

Valid for  Replicat

Use the HANDLECOLLISIONS and NOHANDLECOLLISIONS parameters to control whether or not Replicat tries to resolve duplicate-record and missing-record errors when applying SQL on the target. These errors can occur during an initial load, when data from source tables is being loaded to target tables while GoldenGate is replicating transactional changes that are being made to those tables. When GoldenGate applies the replicated changes after the load is finished, HANDLECOLLISIONS causes Replicat to overwrite duplicate records in the target tables and provides alternate handling of errors for missing records.

You can use HANDLECOLLISIONS and NOHANDLECOLLISIONS in the following ways:

● You can use either HANDLECOLLISIONS or NOHANDLECOLLISIONS at the root level of the parameter file to affect all MAP statements.

● You can use HANDLECOLLISIONS and NOHANDLECOLLISIONS as on-off switches for groups of tables to enable or disable error handling as needed. One remains in effect for all subsequent MAP statements until the other is encountered.

●  You can use HANDLECOLLISIONS and NOHANDLECOLLISIONS within a MAP statement to enable and disable the functionality for a specific table. See page 204.

Any of the preceding methods can be combined. The use within a MAP statement overrides other settings. The use as a toggle overrides a global setting. For example, you could have a global NOHANDLECOLLISIONS setting, and then use HANDLECOLLISIONS within MAP statements to enable it only for certain tables.

更多Oracle相关信息见 专题页面


    
 
 

您可能感兴趣的文章:

  • oracle复制表结构和复制表数据语句分享
  • Oracle 数据库容灾复制解决方案分析Shar Plex
  • oracle远程复制及异地容灾的技术解决方案
  • 详解Oracle分布式系统数据复制技术
  • Oracle简单stream一个用户单向复制配置
  • Oracle 软件及数据库复制
  • Oracle 10G streams模式级复制
  • Oracle数据库集复制方法浅议
  • oracle 存储过程和触发器复制数据
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • oracle数据库导出和oracle导入数据的二种方法(oracle导入导出数据)
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • Oracle 数据库开发工具 Oracle SQL Developer
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • ORACLE数据库常用字段数据类型介绍
  • 怎样调出ORACLE数据库中的数据,该如何连接?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • 用JDBC连接Oracle数据库时,如何向数据库中写日期型数据(格式)?谢了!
  • 关于JDBC连接Oracle数据库,是否必须有Oracle客户端
  • linux上安装oracle 数据库后,是否能写shell程序实现数据库的自动启动。
  • 虚拟机装Oracle R12与Oracle10g iis7站长之家
  • jsp文件上传smartupload到oracle数据库中没有longblob的数据类型如何处理的?
  • 将Oracle 8i数据成功移植Oracle 10g的方法
  • Oracle收购TimesTen 提高数据库软件性能
  • 我从JSP页将数据插入到oracle数据库中,为何汉字插入后数据库中显示为乱码呢?
  • Oracle数据库恢复后心得
  • 紧急求救:对Oracle数据库中long 型数据进行模糊查询 如何查?
  • Linux下Oracle数据库,dbstart持续不动,数据库无法启动解决
  • 卸载oracle数据库
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle Golden Gate实时数据集成
  • 高分请教:有没有在linux使用的oracle数据库操作工具,如Golden,pl/sqlDeveloper之类.
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle 10g和Oracle 11g网格技术介绍
  • Oracle EBS R12 支持 Oracle Database 11g
  • ORACLE日期相关操作
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • Oracle 12c的九大最新技术特性介绍
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE中DBMS_RANDOM随机数生成包
  • Linux系统下Oracle的启动与Oracle监听的启动
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • 网间Oracle的连接,远程连接Oracle服务器??
  • 请教:.profile中:if [ -d /opt/oracle/db01/app/oracle/product/9.2.0 ]是什么意思?
  • 在linux 中如何删除oracle db 与卸载oracle.
  • linux下安装oracle后使用命令行启动的方法 linux启动oracle
  • 如何将Aix上的oracle 物理备份 然后再在linux 系统上还原oracle
  • 那里有免费的oracle odbc driver for linux?或怎么破解easysoft oracle odbc driver安装包?急


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,