GGSCI>add replicat reptr, exttrail ./dirdat/tr, checkpointtablegoldengate.checkpoint_reptr_01
GGSCI>edit params reptr
?
replicat reptr setenv (NLS_LANG = AMERICAN_AMERICA.AL32UTF8) userid goldengate, password goldengate sqlexec "Alter session set constraints=deferred" REPORT AT 01:59 reportrollover at 02:00 discardrollover on friday --handlecollisions reperror default,abend discardfile ./dirrpt/reptr.dsc,append, megabytes 1000 assumetargetdefs checksequenceva lue allownoopupdates dynamicresolution numfiles 2000 GETTRUNCATES batchsql BATCHESPERQUEUE 100, OPSPERBATCH 8000 grouptransops 10000 maxtransops 10000 MAP GOLDENGATE.OGG_UPG, TARGET GOLDENGATE.OGG_UPG;
创建完replicat进程后,千万不要启动
6、数据初始化
6.1 停用源端数据库的JOB
Sql>alter system set job_queue_processes=0 scope=both; --先关闭job队列,防止后续的job再启动. Sql>alter system set aq_tm_processes=0 scope=both; --关闭高级队列 Sql>select count(*) from dba_jobs_running; --查看系统是否存在有job正在执行,如果还有JOB在运行,则进行Kill操作
6.2 停止前端系统应用
(防止有事务启动后,在取SCN时还未结束,由于GOLDENGATE抽取进程,只会抽取在extract进程启动之后开始的事务,该点很重要。)
6.3 杀掉所有事务
(1)查询还在执行的事务
select * from gv$transaction;
(2)kill 当前正在执行的事务的session
6.4 停掉listener
$lsnrctl stop
(防止新的连接连上来创建新事务操作表数据)
6.5 查询源端数据库的当前SCN号
SQL> selectdbms_flashback.get_system_change_number from dual;
记录下SCN号:2553440
6.6 导出数据
$expdpsystem/XXX directory=expdp_dir dumpfile=tableXXX.dmp filesize=30G logfile=expdp_XXXX.log flashback_scn=2553440 tables=GOLDENGATE.OGG_UPG
6.7 恢复源端数据库的JOB参数
?
Sql>alter system set job_queue_processes=20 scope=both; --根据实际值进行恢复. Sql>alter system set aq_tm_processes=1 scope=both;
?
6.8 目标端数据库导入数据
$imppdp system/XXX directory=expdp_dir dumpfile=tableXXX.dmp logfile=impdp_XXXX.log
7、启动目标端的replicat进程
GGSCI> startreptr,aftercsn 2553440
8、验证OGG能正常同步数据
8.1 在目标数据库中查询GOLDENGATE.OGG_UPG表数据量
?
SQL> select count(*) from goldengate.ogg_upg; COUNT(*) ---------- 10000
8.2 在源端数据库上的GOLDENGATE.OGG_UPG表中再插入一万行数据
?
declare i number:=1; begin loop insertinto goldengate.OGG_UPGvalues (goldengate.seq_ogg_t01.nextval,'ogg_test1',i,sysdate); commit; i:=i+1; exitwhen i=10001; end loop; end; /
8.2 在目标数据库上查询GOLDENGATE.OGG_UPG表数据是否增长
SQL> select count(*) from goldengate.ogg_upg; COUNT(*) ---------- 20000
配置成功,并可以正常同步。