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
的同步配置。方法简明扼要,很容易理解。
以下步骤是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") > <scn_number obtained from source db>) )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
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 Golden Gate软件是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步。Oracle Golden Gate...
Oracle Golden Gate是Oracle公司推出的一款高级复制技术产品,它支持异构平台之间的数据复制,即可以在不同的数据库平台之间进行数据同步。这款产品是Oracle推崇的高可用性解决方案之一,特别适用于需要数据实时复制...
Oracle Golden Gate软件是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步,以后可能是oracle...
Oracle Golden Gate是Oracle公司推出的一种高级数据复制技术,主要用于实现数据库间的实时或准实时的数据同步。这个技术在数据库灾备、分布式系统、大数据整合等多个场景中有着广泛的应用。以下是对Oracle Golden ...
- **Oracle Golden Gate**:将捕获到的数据暂时存储在内存中,当内存不足时,会将数据写入磁盘缓存。 - **IBM CDC**:采用缓存文件的形式来记录捕获的数据。 - **传输单位**: - **Oracle Golden Gate**:以...
此文档包含了 Oracle Golden Gate 从Windows下Oracle同步到Linux下的Kafka的部署说明。
在Oracle 12c中,GoldenGate的重要性在于它提供了与Oracle数据库深度集成的数据同步和复制功能。借助GoldenGate,用户可以实现数据在不同数据库系统之间的实时传输,包括数据的更新、插入和删除操作。这使得Oracle ...
Oracle Golden Gate 是一款高级的数据复制工具,用于实现数据库之间的实时或近实时的数据同步。在Windows环境下,Oracle Golden Gate (OGG) 被广泛应用于数据库容灾备份和数据分发。以下是对Windows环境下Oracle ...
Oracle Golden Gate 是一款高效的数据复制和灾难恢复工具,主要用于实现跨不同硬件平台和数据库系统的实时数据同步。在公司的内部培训中,它被介绍为一种关键的技术,能够在异构环境中捕获、转换、路由和交付事务...
Oracle Golden Gate 是一款强大的数据复制解决方案,用于实时或近实时的数据迁移、灾难恢复和数据整合。它通过捕获、传输和应用数据库更改来确保数据的一致性和完整性。在这个"oracle_golden_gate-实施步骤"中,我们...
在Oracle 11g Golden Gate中,有几个核心组件: 1. **Extract**:在源数据库上运行,负责捕获数据库的DML(插入、更新、删除)操作和部分DDL(如表结构的修改)。 2. **Trail Files**:Extract生成的改变数据被写入...
Oracle GoldenGate是一款基于日志的结构化数据复制备份软件,它能够通过解析源数据库的在线日志或归档日志来获得数据的增量变化,然后将这些变化应用到目标数据库,实现数据的实时同步。这种技术在IT异构平台间实现...
在本篇文章中,我们将深入探讨如何使用 Golden Gate for MySQL to Oracle 实现 MySQL 数据库到 Oracle 数据库的数据迁移和持续同步。 **初始化导入 (Initial Load)** 初始化导入是数据同步的第一步,用于将 MySQL ...
Oracle GoldenGate是一款强大的数据复制工具,它用于实现数据库间的实时或准实时的数据同步。这款解决方案在企业级数据集成、灾难恢复、数据迁移等场景中扮演着重要角色。Oracle GoldenGate支持多种数据库平台,包括...
然而,在使用 Oracle GoldenGate 复制事务数据时,如果表没有主键或唯一索引,可能会出现一些问题。因此,本文档将讨论一种最佳实践方法来处理没有主键或唯一索引的表。 1. 概述 当使用 Oracle GoldenGate 复制...