Oracle GoldenGate在异种OS上同种DB之间的数据同步(2)

2.10 为表添加补充日志
    ggsci>dblogin userid goldengate password oracle
    ggsci> add trandata USER1.*    --->注意:*后别加分号。
    ggsci> add trandata USER2.*    --->注意:*后别加分号。
    ggsci> add trandata USER3.*    --->注意:*后别加分号。   

确认表的补充日志是否已经添加:
    select table_name from all_tables
    where owner='USER1' and table_name not in (select distinct table_name from dba_log_groups where owner='USER1');
 
2.11 配置DDL复制
 SQL> GRANT EXECUTE ON UTL_FILE TO goldengate;
 ggsci>edit params ./GLOBALS  添加如下的字符,之后保存退出
 GGSCHEMA goldengate
 
cmd下 cd 到d:\ggs目录
 退出所有的oracle session
 sqlplus / as sysdba
 SQL> @marker_setup.sql
 SQL> @ddl_setup.sql
 SQL> @role_setup.sql
 SQL> grant ggs_ggsuser_role to goldengate;
 SQL> @ddl_enable.sql
 
2.12 配置sequence的同步(若是备库是报表查询需求,请忽略此步)
 cmd下 cd 到d:\ggs目录
 sqlplus / as sysdba
 SQL> @sequence.sql
 --->源头执行:SQL> GRANT EXECUTE on goldengate.updateSequence TO goldengate;
 --->目的端执行:SQL> GRANT EXECUTE on goldengate.replicateSequence TO goldengate;
 2.13 源端配置参数文件
 ggsci > edit params mgr
 添加如下参数,之后保存退出。
 port 7809
 autostart extract *
 autorestart extract *, waitminutes 1, retries 60, RESETMINUTES 60
 PURGEOLDEXTRACTS d:\ggs\dirdat\st*, USECHECKPOINTS, MINKEEPHOURS 2
 

ggsci> add  extract  extfull, tranlog, Threads 2, begin now
 --->以上命令是针对主库是rac2个节点的情况,若是单机,请忽略Threads 2
 
ggsci >edit  params  extfull
 添加如下参数,之后保存退出
 extract extfull
 setenv ( NLS_LANG = " AMERICAN_AMERICA.ZHS16GBK " )
 --TRANLOGOPTIONS ASMUSER SYS@ASM1, ASMPASSWORD oracle
 --THREADOPTIONS MAXCOMMITPROPAGATIONDELAY 80000 IOLATENCY 160000
 
DBOPTIONS ALLOWUNUSEDCOLUMN
 userid goldengate, password oracle
 
ddl include mapped
 
ddloptions addtrandata RETRYOP MAXRETRIES 1000 RETRYDELAY 10, REPORT
 
WARNLONGTRANS 1h, CHECKINTERVAL 5m
 
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.*;
 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/24e141a1aa8bf7216b36550f3121c16f.html