exttrail d:\ggs\dirdat\st
gettruncates
dynamicresolution
tableexclude 'USER.cncdata';
tableexclude 'USER.sb_czm_pyDD';
table USER1.*;
table USER2.*;
table USER3.*;
sequence USER1.*;
sequence USER2.*;
sequence USER3.*;
2.14 添加trail文件,文件名为d:\ggs\dirdat\st,是由extfull抽取进程来写这个trail文件,每个trail文件的最大大小为50M
ggsci> add exttrail d:\ggs\dirdat\st, extract extfull, MEGABYTES 50
--->注意:
注意:源头的trail文件名一定要与目的端的trail文件名用不同的名称,比如:
源头的trail文件名/u02/ggs/dirdat/sd
目的端的trail文件名/u02/ggs/dirdat/td
原因是:ogg trail文件的删除机制(检查点机制)是以一整套复制环境(源头和目的端)为标准判断的:
这样就有可能造成这么一个后果:源头的trail文件号到了1000,目的端trail文件号到了100,并且源头和目的端trail文件名同名,由于存在
100,所以,源头能删除的trail文件号是<100的。这样会导致源头trail 不能及时删除,进而造成源头$GG_HOME的文件系统使用率100%,进而造
成ext进程抽取形成的trail文件无处存放而导致ext进程 abend。
2.15 在源端添加传输进程dpfull,此传输进程传输的是源端形成的d:\ggs\dirdat\st这个trail文件
ggsci> add extract dpfull exttrailsource d:\ggs\dirdat\st
2.16 创建远程队列文件(文件名为/u02/ggs/dirdat/tt)并将其指定给传输进程,同样可以指定大小为50M
ggsci> add rmttrail /u02/ggs/dirdat/tt, extract dpfull, MEGABYTES 50
2.17 编辑dpfull进程的参数:
ggsci> edit params dpfull
添加如下参数,之后保存退出
extract dpfull
passthru
rmthost 目的端IP, mgrport 7809
rmttrail /u02/ggs/dirdat/tt
gettruncates
table USER1.*;
table USER2.*;
table USER3.*;
sequence USER1.*;
sequence USER2.*;
sequence USER3.*;
2.18 源端数据库查询出一个scn号:
select current_scn from v$database;
--12754579013479
请牢记这个scn号,在目的端第一次启动rep进程时,会用到这个scn号
源端开始按照此scn号开始导出数据
expdp sys/****** directory=exp dumpfile=trff_app%U.dmp logfile=trff_app_exp.log schemas=trff_app parallel=4
3.在目的端的实施过程:
3.1 配置环境变量信息:
备库是Linux os时:
vi .bash_profile
export PATH=$PATH:$ORACLE_HOME/bin:/u02/ggs
export LD_LIBRARY_PATH=/u02/ggs:$ORACLE_HOME/lib
3.2 创建goldengate系统用户并授权
Sql> create tablespace GGTBS datafile '/u02/相关路径/ggtbs01.dbf'size 1024M auextend on;
Sql> Create user Goldengate default tablespace ggtbs identified by oracle;(目标数据库也创建这一个goldengate用户)
Sql> grant dba to goldengate;
3.3配置mgr参数文件:
ggsci > edit params mgr
port 7809
--autostart replicat *
--autorestart replicat *, waitminutes 1, retries 60, RESETMINUTES 60
--PURGEOLDEXTRACTS /u02/ggs/dirdat/tt*, USECHECKPOINTS, MINKEEPHOURS 2
3.4 在目的端添加checkpointtable
ggsci> dblogin userid goldengate, password oracleoracle
ggsci> ADD CHECKPOINTTABLE goldengate.ckptfull
ggsci> add replicat repfull, exttrail /u02/ggs/dirdat/tt, CHECKPOINTTABLE goldengate.ckptfull
ggsci> edit params repfull
replicat repfull
setenv ( NLS_LANG = " AMERICAN_AMERICA.ZHS16GBK " )
assumetargetdefs
userid goldengate, password oracle
DBOPTIONS DEFERREFCONST, SUPPRESSTRIGGERS
gettruncates
ALLOWNOOPUPDATES
ddl include mapped
discardfile ./dirrpt/repfull.dsc, append, megabytes 5000
map USER1.*, target USER1.*;
map USER2.*, target USER2.*;
map USER3.*, target USER3.*;
配置完毕:
注意:以上repfull进程请不要启动,repfull进程在impdp导入完数据之后再启动。
在目的库执行impdp执行数据导入,完成导入后,再执行下面的步骤。
启动目的端rep进程之前, 请务必确认如下的事项已经完成:
第一, 在rep参数文件中有参数DEFERREFCONST禁用级联删除
第二, 在rep参数文件中有参数SUPPRESSTRIGGERS 在rep进程运行时抑制目的端数据库的触发器生效。
注意:SUPPRESSTRIGGERS此参数仅仅对10.2.0.5 及以后,11.2.0.2及以后的oracle 数据库版本才有效,所以,若是目的端数据库是10.2.0.4,还需要在目的端数据库中手工禁用触发器(用plsql dev就可以禁用)
第三, Impdp已经导入完成,这是必须的,这一点我不用再多解释了。
第一次启动repfull进程时,请使用如下的命令来启动:
start repfull, aftercsn 12754579013479