GoldenGate新特性ENABLE_INSTANTIATION_FILTERING,初始化时无需指定SCN

1、前言

GoldenGate在出现ENABLE_INSTANTIATION_FILTERING新特性之前,我们需要在初始化时指定FLASHBACK_SCN的方式来实现数据的一致性导出,同样,在目标端第一次启动复制进程时,也需要指定aftercsn的方式来启动复制进程。

指定SCN的方式,主要存在如下缺点:

(1).SCN的指定是一个特别需要注意的地方,如果SCN的指定位置不对,则会出现数据不一致的问题,最终导致初始化失败。

(2).如果数据库量太大,或者指定的SCN太旧,就会在初始化导出的过程中出现大量的“ORA-01555”错误。后期还需要单独处理这些报错。

 

从GoldenGate12.2版本开始,add trandata或add schematrandata命令会自动将这些表的状态准备好。expdp在导出时,会自动添加SCN到对应的表中,此时,只需要在Replicat进程使用DBOPTIONS ENABLE_INSTANTIATION_FILTERING参数,即可自动过滤SCN之前的DML和DDL操作。

 

2、传统方式如何保证数据一致性

2.1 为了保证数据初始化时不会出现数据不一致的情况,我们在选择SCN位置时,需要选择 min( current_scn, 数据库当前存在的最早事务的启动SCN)。 作为数据源初始化的flaskback scn:

col value for 99999999999999
select 'exp_scn' item, current_scn value from v$database
union all
select 'Min_start_scn' item,min(start_scn) value from gv$transaction;

2.2 数据一致性导出,指定FLASHBACK_SCN参数。

expdp.par文件内容如下所示:
DIRECTORY=dpdir
SCHEMAS=(ctaisd)
LOGFILE=expdp.log
FLASHBACK_SCN=18436419212108
cluster=n
dumpfile=expdp_%U.dmp
parallel=4
EXCLUDE=STATISTICS
compression=all

2.3 目标端数据导入后,启动复制时,需要指定aftercsn选项。

start replicat R_0a, aftercsn 18436419212108

 

3、ENABLE_INSTANTIATION_FILTERING新特性如何保证数据一致性

3.1  再也不用为指定SCN的位置而烦恼。无需指定SCN。

3.2 数据一致性导出,不再指定FLASHBACK_SCN参数。

expdp.par文件内容如下所示:
DIRECTORY=dpdir
SCHEMAS=(ctaisd)
LOGFILE=expdp.log
cluster=n
dumpfile=expdp_%U.dmp
parallel=4
EXCLUDE=STATISTICS
compression=all

3.3 目标端复制进程的配置文件时,指定ENABLE_INSTANTIATION_FILTERING参数。例如:

replicat r_0a

-- DB environment settings

SETENV (ORACLE_HOME = "/u01/app/oracle/product/19.0.0/dbhome_1")

SETENV (NLS_LANG="AMERICAN_AMERICA.AL32UTF8")

userid gguser@OGGDB_GOLDENGATE_TARGET, password gguser

assumetargetdefs

APPLYNOOPUPDATES

DBOPTIONS SUPPRESSTRIGGERS

DBOPTIONS DEFERREFCONST

DDL INCLUDE MAPPED

DDLERROR DEFAULT DISCARD

discardfile ./dirdat/r_0a.dsc, append, megabytes 1000

DBOPTIONS ENABLE_INSTANTIATION_FILTERING

MAP test.*, TARGET test.*;

MAP mm.*, TARGET mm.*;

3.4 目标端数据导入后,启动复制时,不再需要指定aftercsn选项。

start replicat R_0a

 

可以看出:GoldenGate引入ENABLE_INSTANTIATION_FILTERING新特性后,数据初始化工作变得非常简单。

posted @ 2025-03-06 15:18  石云华  阅读(106)  评论(0)    收藏  举报