============================================1、管理进程
oggCI (ogg1) 22> edit params mgr
PORT 7809
DYNAMICPORTLIST 7810-7860
AUTORESTART ER *, RETRIES 3, WAITMINUTES 5
PURGEOLDEXTRACTS ./dirdat/pd*, USECHECKPOINTS, MINKEEPDAYS 30
lagreporthours 1
laginfominutes 30
lagcriticalminutes 60
参数说明:
PORT 7809
管理进程的监听端口,默认使7809,当7809不可用时会从DYNAMICPORTLIST定义的列表中选择一个可用的端口,主要用于本地goldengate进程之间的通信
DYNAMICPORTLIST 7810-7860
动态端口,可以指定最大256个可用端口列表,用于主端和备端的进程通信,当目标端有防火墙设置时或者主端的投递进程传送数据要经过防火墙(就是主端有防火墙设置时)才能到达备端时,需要在网络上开通指定的端口。源端和目标段的Collector、Replicat、GGSCI进程通信也会使用这些端口,指定足够的端口去容纳进程数的扩张,这样就不需要停止和重启管理器进程
AUTORESTART ER *, RETRIES 3, WAITMINUTES 5
AUTORESTART 自动启动所有的进程,包含所有的抓取进程和投递进程
RETRIES 3, WAITMINUTES 5 自动重启参数设置,本处设置表示每3分钟对所有失败的EXTRACT进程尝试重新启动,共尝试5次
PURGEOLDEXTRACTS ./dirdat/pd*, USECHECKPOINTS, MINKEEPDAYS 30
定期清理trail文件设置,本处设置表示对于超过30天的trail文件进行删除
lagreporthours 1
laginfominutes 30
lagcriticalminutes 60
定义数据延迟的预警机制,本处设置表示MGR进程每隔1小时检查EXTRACT的延迟情况,如果超过了30分钟就把延迟作为信息记录到错误日志中,如果延迟超过了60分钟,则把它作为警告写到错误日志中
============================================2、抽取进程配置
GGSCI (m25) 1> edit params e_prd
extract e_prd
setenv(NLS_LANG="AMERICAN_AMERICA.UTF8")
setenv(ORACLE_SID="prd")
userid ogg@PRD,password ogg0826
reportcount every 10 minutes,rate
numfiles 5000
discardfile ./dirrpt/e_prd.dsc,append,megabytes 1000
warnlongtrans 2h,checkinterval 3m
exttrail ./dirdat/pd
threadoptions maxcommitpropagationdelay 60000
dboptions allowunusedcolumn
tranlogoptions archivedlogonly
tranlogoptions altarchivelogdest primary /oracle/PP2/oraarch
tranlogoptions altarchivedlogformat %t_%s_%r.dbf
dynamicresolution
ddl include mapped
notcpsourcetimer
nocompressupdates
fetchoptions nousesnapshot
----------T_MIDDECLAREPREMIUM
table T1.T_MIDDECLAREPREMIUM,tokens(
TKN-CSN = @GETENV("TRANSACTION", "CSN"),
TKN-COMMIT-TS = @GETENV ("GGHEADER", "COMMITTIMESTAMP"),
TKN-OP-TYPE = @GETENV ("GGHEADER", "OPTYPE")
);
参数说明:
extract e_prd
抓取进程的名称
setenv(NLS_LANG="AMERICAN_AMERICA.UTF8")
指定ogg进程执行环境的字符集,与数据库字符集保持一致
setenv(ORACLE_SID="prd")
数据库实例名
userid ogg@PRD,password ogg0826
ogg管理员的账户和密码
reportcount every 10 minutes,rate
报告自extract启动以来处理的记录条数统计数字,记录的数字打印到屏幕或者报告文件内
numfiles 5000
控制OGG给多少张TABLE和MAP进行初始化的内存分配,并且此参数必须在TABLE、MAP、SOURCEDEFS、TARGETDEFS之前生效,默认值1000 ,最大值2百万,我们这里配置了5000,就是最多处理5000张表
discardfile ./dirrpt/e_prd.dsc,append,megabytes 1000
定义discardfile文件位置,文件路径必须为相对路径,如果处理中有记录出错会写入到此文件中,记录模式为追加,文件最大设置为1G
warnlongtrans 2h,checkinterval 3m
每隔3分钟检查一下长交易,如果有超过2个小时的长交易,GoldenGate会在根目录下的ggserr.log里面加入一条告警信息。可以通过察看ggserr.log或者在ggsci中执行view ggsevt命令查看这些告警信息。此配置可以有助于及时发现长交易并予以处理
exttrail ./dirdat/pd
定义抓取进程trail文件存放路径
threadoptions maxcommitpropagationdelay 60000
特定参数,在rac环境下需要配置,非rac环境下不需要配置。RAC集群中的所有节点必须同步系统时钟,GoldenGate通过比较本地系统的时间和事务提交的时间点来做出关键决策
dboptions allowunusedcolumn
在生产端库表中存在unused列时,需要配置该参数
tranlogoptions archivedlogonly
抓取进程使用ALO(Archived Log Only)模式,只抓取归档日志,不抓取redo日志
tranlogoptions altarchivelogdest primary /oracle/PP2/oraarch
指定dg库归档日志日志路径
tranlogoptions altarchivedlogformat %t_%s_%r.dbf
指定归档日志格式
dynamicresolution
抓取进程开启之前将需要同步的表建立一个记录并且存入到磁盘中,这样就需要耗费大量的时间。使用该参数来解决此问题
ddl include mapped
配置ddl映射访问,mapped 值映射我们下面配置的table里的表
notcpsourcetimer
EXTRACT使用TCPSOURCETIMER参数时,数据传递到目标端,会调整数据库记录的时间戳,这个时候GETENV("GGHEADER","COMMITTIMESTAMP")得到的时间戳既不是源端数据提交时间,也不是目标端的提交时间,使用NOTCPSOURCETIMER时,反应出事物在源端的提交时间,但是时间戳的精度只到秒
nocompressupdates
目标端有update set a=1 where a=1;这种操作,extract就要配置NOCOMPRESSUPDATES
fetchoptions nousesnapshot
抽取进程从源表中获取所需的数据,而不是从闪回日志种获取,默认值是usesnapshot从闪回日志中获取
table T1.T_MIDDECLAREPREMIUM,tokens(
TKN-CSN = @GETENV("TRANSACTION", "CSN"),
TKN-COMMIT-TS = @GETENV ("GGHEADER", "COMMITTIMESTAMP"),
TKN-OP-TYPE = @GETENV ("GGHEADER", "OPTYPE")
);
抓取进程抓取哪些表
TKN-CSN 源端事物操作的scn号
TKN-COMMIT-TS 源端事物的提交时间
TKN-OP-TYPE 源端实物的操作类型
===========================================3、添加抽取进程
add extract e_prd,tranlog,begin now
添加抽取进程,指定进程名称,从源端数据库的事务日志中抽取变化中抽取数据变化,命令结束后开始抽取
add exttrail ./dirdat/pd,extract e_prd,megabytes 500
添加trail文件,指定trail文件的相对路径,trail文件进程归属,文件最大大小为500M
===========================================4、投递进程配置
GGSCI (m25) 3> edit params d_prd
extract d_prd
rmthost 10.1.197.242(更换为新地址),mgrport 7809,compress
userid ogg@PRD,password ogg0826
passthru
numfiles 50000
rmttrail ./dirdat/pd
dynamicresolution
table t1.*;
参数说明:
extract d_prd
定义投递进程名称
rmthost 10.1.197.242(更换为新地址),mgrport 7809,compress
灾备端主机IP,管理进程端口号,投递前压缩队列文件
userid ogg@PRD,password ogg0826
ogg管理账户密码
passthru
投递进程数据投递模式有的两种选择: PASSTHRU(直通模式)、NOPASSTHRU(普通模式),默认是普通模式。
PASSTHRU: 不与数据库交互,前提是源库与目标库objects必须一致
没有指定PASSTHRU,就必须要有数据库连接信息:userid ogg@ORACSOGG,password ogg
numfiles 50000
最多处理5000张表
rmttrail ./dirdat/pd
灾备端保存队列文件的目录
dynamicresolution
动态解析表名
table t1.*;
要投递的表清单
===========================================5、添加投递进程
add extract d_prd,exttrailsource ./dirdat/pd
添加投递进程,指定进程名称,数据源为trail文,trail文件的相对路径
add rmttrail ./dirdat/pd,extract d_prd,megabytes 500
添加远程投递trail文件,指定远程投递trail文件的相对路径,文件归属,文件最大大小为500M
===========================================6、应用进程配置
GGSCI (m25) 1> edit params r_prd
replicat r_prd
setenv(NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
userid ogg,password ogg
reportcount every 30 minutes,rate
reperror default,abend
numfiles 50000
checkpointsecs 40
assumetargetdefs
discardfile ./dirrpt/r_prd.dsc,append,megabytes 1000
allownoopupdates
ddl &
include mapped &
exclude objname t1.*_audit &
exclude optype create &
objtype 'table' &
exclude optype drop &
objtype 'table' &
exclude objtype 'index' &
objname t1.*_his &
exclude instr 'constraint' &
exclude instr 'null' &
exclude instr 'trigger' &
exclude instr 'rename to' &
exclude instr 'grant' &
exclude instr 'revoke' &
exclude instr 'analyze'
ddloptions report
allowduptargetmap
----------T_MIDDECLAREPREMIUM
getinserts
getupdates
getdeletes
noupdatedeletes
map T1.T_MIDDECLAREPREMIUM,target T1.T_MIDDECLAREPREMIUM;
updatedeletes
map T1.T_MIDDECLAREPREMIUM,target T1.T_MIDDECLAREPREMIUM_HIS,keycols(SERIALNO);
getinserts
ignoreupdates
ignoredeletes
map T1.T_MIDDECLAREPREMIUM,target T1.T_MIDDECLAREPREMIUM_AUDIT,keycols(SERIALNO),colmap(
usedefaults,
csn=@token("TKN-CSN"),
optime=@token("TKN-COMMIT-TS"),
optype=@token("TKN-OP-TYPE"),
inserttime=@token("TKN-COMMIT-TS"),
curdate=@DATENOW()
);
ignoreinserts
getupdates
getdeletes
map T1.T_MIDDECLAREPREMIUM,target T1.T_MIDDECLAREPREMIUM_AUDIT,keycols(SERIALNO),colmap(
usedefaults,
csn=@token("TKN-CSN"),
optime=@token("TKN-COMMIT-TS"),
optype=@token("TKN-OP-TYPE"),
curdate=@DATENOW()
);
参数说明:
replicat r_prd
定义应用进程名称
setenv(NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
指定ogg进程执行环境的字符集,与数据库字符集保持一致
userid ogg,password ogg
ogg库管理员账户密码
reportcount every 30 minutes,rate
报告自replicat启动以来处理的记录条数统计数字,记录的数字打印到屏幕或者报告文件内
reperror default,abend
定义出错以后进程的响应,一般可以定义为两种:
ABEND,即一旦出现错误即停止复制,此为缺省配置;
DISCARD,出现错误后继续复制,只是把错误的数据放到discard文件中
numfiles 50000
最多处理5000张表
checkpointsecs 40
将写检查点的时间设置为40秒,默认为10秒,调节这两个参数可能会使数据复制的延迟相应增大若干秒
assumetargetdefs
当源表和目标表结构一样时,使用此参数,此参数告知ogg不要从源表定义的结构文件中查询表结构,如果源表和目标表结构不一样时,用SOURCEDEFS替换ASSUMETARGETDEFS
discardfile ./dirrpt/r_prd.dsc,append,megabytes 1000
定义discardfile文件位置,文件路径必须为相对路径,如果处理中有记录出错会写入到此文件中,记录模式为追加,文件最大设置为1G
allownoopupdates
用来处理“没有操作的操作”,例如:源表 set x=a where x=a
ddl &
include mapped &
exclude objname t1.*_audit &
exclude optype create &
objtype 'table' &
exclude optype drop &
objtype 'table' &
exclude objtype 'index' &
objname t1.*_his &
exclude instr 'constraint' &
exclude instr 'null' &
exclude instr 'trigger' &
exclude instr 'rename to' &
exclude instr 'grant' &
exclude instr 'revoke' &
exclude instr 'analyze'
ddl应用范围和过滤条件
ddloptions report
ddl操作打印到进程报告里
allowduptargetmap
表和目标表表结构可映射多次,如果不指明ALLOWDUPTARGETMAP,默认表结构映射只使用第1个colmap,后面会忽略掉
getinserts
getupdates
getdeletes
哪些操作类型数据会被应用,我们insert update和delete都要
noupdatedeletes
不对delete操作进行转换为update
map T1.T_MIDDECLAREPREMIUM,target T1.T_MIDDECLAREPREMIUM;
配置源表目标表映射关系
updatedeletes
对delete操作转换为update
map T1.T_MIDDECLAREPREMIUM,target T1.T_MIDDECLAREPREMIUM_HIS,keycols(SERIALNO);
getinserts
ignoreupdates
ignoredeletes
map T1.T_MIDDECLAREPREMIUM,target T1.T_MIDDECLAREPREMIUM_AUDIT,keycols(SERIALNO),colmap(
usedefaults,
csn=@token("TKN-CSN"),
optime=@token("TKN-COMMIT-TS"),
optype=@token("TKN-OP-TYPE"),
inserttime=@token("TKN-COMMIT-TS"),
curdate=@DATENOW()
);
ignoreinserts
getupdates
getdeletes
map T1.T_MIDDECLAREPREMIUM,target T1.T_MIDDECLAREPREMIUM_AUDIT,keycols(SERIALNO),colmap(
usedefaults,
csn=@token("TKN-CSN"),
optime=@token("TKN-COMMIT-TS"),
optype=@token("TKN-OP-TYPE"),
curdate=@DATENOW()
);
===========================================7、添加应用进程
add replicat r_prd,exttrail ./dirdat/pd checkpointtable ogg.ckpt
添加应用进程,指定应用进程名称,trail文件路径,检查点表