oracle-GoldenGate参数详解

GoldenGate参数
概述
所有的GoldenGate进程均有参数文件
Manager
Extract
Replicat
Utilities
所有参数均有缺省配置
实际应用只需对小部分参数进行配置
所有参数文件均放在 ./dirprm目录下
缺省通过进程名进行查找.




Manager参数
MANAGER 参数举例
PORT 7809
DYNAMICPORTLIST 7840-7850
PURGEOLDEXTRACTS /ggs/dirdat/rt*, USECHECKPOINTS
AUTOSTART ER *
AUTORESTART EXTRACT *, WAITMINUTES 2, RETRIES 5
LAGREPORTHOURS 1
LAGINFOMINUTES 3
LAGCRITICALMINUTES 5

 

MANAGER Parameters – Port Management

Parameter Description
AUTOSTART 指定在mgr启动时自动启动那些进程.
AUTOSTART ER *
AUTOSTART extract extsz
AUTORESTART 指定在mgr可以定时重启那些进程。可以在网络中
断等故障恢复后自动重起,避免人工干预.
AUTORESTART ER *, WAITMINUTES 5, RETRIES 3
DYNAMICPORTLIST 指定GoldenGate可以使用那些端口接受extract发送
过来的数据.
DYNAMICPORTLIST 7840-7850
PORT 制定GoldenGatemgr进程使用哪个 TCP/IP端口侦
听请求.
PORT 7809



MANAGER Parameters – Event Management

Parameter Description
LAGCRITICAL 指定认为超过此时间即为严重错误的延迟最大值,如果延迟达到
此时间值则会在ggserr.log里面写入一条error信息
LAGCRITICALMINUTES 10
LAGINFO 指定一个延迟时限,如果延迟达到此时间值则会在ggserr.log里面
写入一条info信息
LAGINFOMINUTES 3
LAGREPORT 指定在ggserr.log中报告延迟的时间间隔.
LAGREPORTHOURS 1
PURGEOLDEXTRAC
TS
定义自动删除过时的队列以节省硬盘空间。一般按照两个规则来
删除:首先,要满足检查点要求,没有使用过的队列不能删除,
保证无数据丢失;其次,可以保留一定的天数。只有当已经使用
过且超过设定的天数后的队列会被自动删除。
purgeoldextracts /backup/goldengate/dirdat/*,usecheckpoints, minkeepdays 7

 





Extract 参数
Extract 参数概览
抽取进程有以下方面参数:
Checkpoint
复制目标
Local System
Multiple Remote Systems
One to many GoldenGate Trails
数据源
Which Tables
Which Rows and Columns
Which Operations
数据影射和变换
Extract参数文件举例 – 日志抽取进程
extract extsz
userid goldengate, password *******
--REPORT AT 01:59
--reportrollover at 02:00
--transmemory directory
(/backup/goldengate/dirtmp,8G,4G),ram 2G,transram 500M
tranlogoptions rawdeviceoffset 0
--warnlongtrans 12h, checkintervals 30m
exttrail /backup/goldengate/dirdat/sz
dynamicresolution
numfiles 2000
tableexclude tiger.TMP_*;
tableexclude tiger.BAK_*;
tableexclude tiger.MLOG$_*;
tableexclude tiger.RUPD$_*;
tableexclude tiger.KJ_*;
table tiger.*;
Extract参数文件举例 – 传输进程
extract dpesz
setenv ( NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK )
passthru
REPORT AT 01:59
reportrollover at 02:00
transmemory directory (/backup/goldengate/dirtmp,8G,4G), ram
2G,transram 500M
--threadoptions iolatencydelay 3000
rmthost 99.16.1.12,mgrport 7809, compress
rmttrail /oradata/goldengate/dirdat/sz
dynamicresolution
numfiles 3000
table tiger.*;
Extract Table参数
Syntax:
TABLE <file name>
[, WHERE (<where condition>)]
[, FILTER (<expression>)]
[, KEYCOLS (<key column specification>)]
[, COLS (<column>) | [ , <column> ]) ]
[, COLSEXCEPT (<column>) | [ , <column> ]) ]
[, FETCHCOLS (<column>) | [ , <column> ]) ]
[, FETCHCOLSEXCEPT (<column>) | [ , <column> ]) ]
[, SQLEXEC <clause> ]
[, FETCHBEFOREFILTER ]
[, SQLPREDICATE WHERE <clause>]
[, COLMAP (<column mapping specification>)]
[, <record type filter>, <record type filter>, ]
;
注意: TABLE的结尾有一个分号。
Extract参数(一)

Parameter Description
CHECKPARAMS 如果加入该参数,表示下次运行只是检查一下语法,并不实际
运行进程。
注意:该命令只能检查一些简单语法,并不能保证参数文件是
完全正确的。
COMMENT 注释行,也可以用两个中划线--代替.
--checkparams表示本行已经被注释掉
EXTRACT 定义抽取进程的名字
OBEY 可以将外部文件的内容包含到本参数文件中来。用于将一些可
以重复利用的参数文件部分内容隔离出来,便于统一修改。
Obey tables.txt
TABLEEXCLUDE 定义所需要排除的表。如果在table里面定义了使用通配符,那
么可以使用该参数定义排除掉其中的部分表。如:
tableexclude tiger.TMP_*;
tableexclude tiger.TEMPTAB;



Extract参数(二)

Parameter Description
GETUPDATEAFTERS |
IGNOREUPDATEAFTERS
是否在队列中写入后影像,缺省复制
GETUPDATEBEFORES |
IGNOREUPDATEAFTERS
是否在队列中写入前影像,缺省不复制
GETUPDATES |
IGNOREUPDATES
是否复制update操作,缺省复制
GETDELETES |
IGNOREDELETES
是否复制delete操作,缺省复制
GETINSERTS |
IGNOREINSERTS
是否复制insert操作,缺省复制
GETRUNCATES|
IGNORETRUNCATES
是否复制truncate操作,缺省不复制.



Extract参数(三)

Parameter Description
RMTHOST 指定目标系统及其GoldenGate Manager进程的端口号,也用于
定义是否使用压缩进行传输。
rmthost 99.16.1.12,mgrport 7809, compress
RMTTRAIL 指定写入到目标端的哪个队列。
EXTTRAIL 指定写入到本地的哪个队列。
SQLEXEC extract运行时首先运行一个sql语句。
sqlexec "Alter session set constraints=deferred"
PASSTHRU 禁止extract与数据库交互,适用于Data Pump传输进程
dpeXX)。
GETENV | SETENV 针对extract进程设定系统环境变量。
setenv ( NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK )


Extract参数(四)

Parameter Description
REPORT 定义自动定时报告。
REPORT AT 01:59
STATOPTIONS 定义每次使用stat时统计数字是否需要重置。
REPORTCOUNT 报告已经处理的纪录条数统计数字。
TLTRACE 打开对于数据库日志的跟踪日志
TRACE/TRACE2 打开对GoldenGate进程的跟踪日志,一般用于调试。
DISCARDFILE 定义discard文件位置,如果处理中有纪录出错会写入到此文件
中。
discardfile /oradata/goldengate/repkj.dsc,append,megabytes 100m


Extrac参数(五)

Parameter Description
NUMFILES 定义本extract为最大多少张表预留空间,缺省为500,超过
500张表需要设定一个比实际表数略大的值。
numfiles 3000
PURGEOLDEXTRACTS mgr进程,可以设置自动删除队列,建议在mgr设置。
REPORTROLLOVER 设定切换一个日志的时间和间隔。
reportrollover at 02:00
TRANSMEMORY 设定GoldenGate的抽取进程能够使用的内存大小。如下参数
指定本进程最大只能占用2G内存,其中每个事务最大占用内
存不能超过500M,如果超过则使用指定目录作为虚拟内存,
该目录下的单个文件大小为4G,最多只能在该目录下占用8G
空间作为缓存:
transmemory directory (/backup/goldengate/dirtmp,8G,4G),ram
2G,transram 500M



Extrac参数(六)

Parameter Description
DBOPTIONS 指定对于某种特定数据库所需要的特殊参数。
[SOURCEDB,]
USERID ,PASSWORD
指定所要登陆的数据库名称,用户名和密码。对于oracle无需指
sourcedb,直接指定用户名和密码即可。
Userid goldengate, password goldengate
TRANLOGOPTIONS 指定在解析数据库日志时所需要的特殊参数。例如,对于裸设
备,可能需要加入下列参数:
tranlogoptions rawdeviceoffset 0
WARNLONGTRANS 指定对于超过一定时间的长交易可以在ggserr.log里面写
入警告信息。例如,每隔30分钟检查一次长交易,对于
超过12个小时的进行告警:
--warnlongtrans 12h, checkintervals 30m

 




Replicat参数
Replicat 参数概览
提供如下方面参数:
Checkpoint
数据影射关系
Optional row-level selection criteria
Optional column mapping facilities
Optional transformation services
Optional Stored Procedure or SQL query execution
错误处理机制
其它可选参数
Replicat 参数举例
replicat repsz
setenv ( NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK )  --或AMERICAN_AMERICA.ZHS16GBK
userid goldengate, password *****
sqlexec "Alter session set constraints=deferred"
REPORT AT 01:59
reportrollover at 02:00
--handlecollisions
reperror default,discard
discardfile /oradata/goldengate/dirrpt/repsz.dsc,append, megabytes 10
--grouptransops 100
--batchsql
assumetargetdefs
allownoopupdates
dynamicresolution
numfiles 3000
--mapexclude tiger.JC_GY_SWWSWH
--map tiger.SHOULIXINXI, target tiger.SHOULIXINXI, keycols ( SHOULIBIANHAO );
MAP tiger.* ,TARGET tiger.*;
Replicat MAP参数
MAP <source table>, TARGET <target table>
[, EXCEPTIONSONLY]
[, COLMAP (<column mapping specification>)]
[, KEYCOLS (<column list>)]
[, WHERE (<where condition>)]
[, FILTER (<expression>)]
;
注意map语句必须以一个分号结束;
Replicat命令(一)

Parameter Description
CHECKPARAMS 检查参数语法然后停止。
COMMENT 注释行。
REPLICAT 定义进程名称。
replicat repsz
USERID 指定登陆目标数据库的用户名和密码。
Userid goldengate, password 123456
OBEY 将外部文件包含到参数文件中。

Replicat命令(二)

Parameter Description
ASSUMETARGETDEFS 假定两端数据结构一致使用此参数。
SOURCEDEFS 假定两端数据结构不一致,使用此参数指定源端的数据
结构定义文件。该文件需要由GoldenGate工具产生。
MAPEXCLUDE 用于使用在map中使用*匹配时排除掉指定的表,类似
于于源端的tablexclude
mapexclude tiger.JC_GY_SWWSWH
MAP tiger.* ,TARGET tiger.*;
GETDELETES |
IGNOREDELETES
是否复制delete操作,缺省为复制。
GETUPDATES /
IGNOREUPDATES
是否复制update操作,缺省为复制。

Replicat命令(三)

Parameter Description
GETINSERTS |
IGNOREINSERTS
是否复制insert操作,缺省为复制。
GETUPDATEAFTERS |
IGNOREUPDATEAFTERS
是否读取后影像,缺省为读取。
GETUPDATEBEFORES |
IGNOREUPDATEBEFORES
是否读取前影像,缺省为不读取。
GETTRUNCATES |
IGNORETRUNCATES
是否复制truncate操作,缺省为不复制。
allownoopupdates 允许执行无实际变化的update。例如, update a=a会纪录一条
update,但是没有后影像,无法正确构筑where语句。

Replicat命令(四)

Parameter Description
REPERROR 定义出错以后replicat的响应,一般可以定义为两种:
Abend,即一旦出现错误即停止复制,此为缺省配置;
Discard,出现错误后继续复制,只把错误的数据放到
discard文件中。
REPERROR DEFAULT, DISCARD
DISCARDFILE 定义出错数据的输出文件。当数据出现错误后,可
以用于查找错误原因。
discardfile /oradata/goldengate/dirrpt/repsz.dsc,append,
megabytes 10
HANDLECOLLISIONS 自动过滤重复时段的数据冲突,用于不能停机执行初始化。
打开该参数后不会将数据错误报到discard文件中。
DYNAMICRESOLUTION 使replicat动态解析表的结构,加快启动速度。缺省为每
次启动解析所有要复制表的结构。
SQLEXEC 调用存储过程或者执行sql语句。可以将返回值作为依据
进行过滤条件,或者用户改变session变量。


Replicat命令(五) 

Parameter Description
GROUPTRANSOPS 将小的交易合并成为一个大的交易进行提交,减少提交次
数,降低系统IO消耗。
grouptransops 100
MAXTRANSOPS 将大交易拆分,每若干条纪录提交一次。
maxtransops 1000
BATCHSQL 针对批处理中针对某个表的大批量重复操作进行优化,提
高批处理的处理速度。
DBOPTIONS 定义与数据库类型相关的特殊处理方式。
NUMFILES 定义进程中表的最大数据量,缺省为 500.
PURGEOLDEXTRACTS 定义自动删除队列,一般建议在mgr进程配置。




 

一些prm文件示例和注解

cat excl.prm 
extract excl
--extract为抽取之意,定义excl为归集库抽取进程
userid ogg,password ogg
--ogg用户登陆数据库
rmthost localhost, mgrport 7809
--指定目标系统及其GoldengateManager进程的端口号
dynamicresolution
--动态为要进行抽取的表添加对象记彔
nocompressdeletes
--可以实现DELETE数据的同步,记录数据删除前的值,该参数可以记录所有列删除值
exttrail /oracle/ggs/dirdat/cl
--将捕获的日志数据指定写入到本地的哪个队列
reportrollover at 02:00
--设定切换一个日志的时间和间隔
--threadoptions maxcommitpropagationdelay 50000 iolatency 60000
--RAC环境下参考配置,此为50000,最大可以设置为90000(90秒)。默认为3秒,不小于2秒,不小于db中参数max_commit
--reperror default ,abend
--定义出错以后replicat的响应:Abend,即一旦出现错误即停止复制,此为缺省配置;Discard,出现错误后继续复制,只把错误的数据放到discard文件中。
--tranlogoptions excludeuser datapurge
--过滤用户,这个/这些用户生成的事务将根据GETRealPosiple或NealErrePrimeTrand规则处理
--table username.table_name;抽取数据库中如下数据表的信息
excl.prm
cat mgr.prm 
port 7809
--指定GoldenGate的mgr进程使用哪个 TCP/IP端口侦听请求
DYNAMICPORTLIST 7850-7950
--指定GoldenGate可以使用那些端口接受extract发送过来的数据
--autostart er *
--指定在mgr启动时自动启动那些进程.如:AUTOSTART extract extsz
--autorestart er *,retries 5,waitminutes 3,resetminutes 60
--指定在mgr可以定时重启那些进程。可以在网络中断等故障恢复后自动重起,避免人工干预.
--purgeoldextracts ./dirdat/*,usecheckpoints,minkeepdays 2
--定义自动删除过时的队列以节省硬盘空间。
--一般按照两个规则来删除:首先,要满足检查点要求,没有使用过的队列不能删除,保证无数据丢失;
--其次,可以保留一定的天数。只有当已经使用过且超过设定的天数后的队列会被自动删除。
--syslog none
--控制goldengate向系统日志发送的消息类型
mgr.prm
cat pucl1.prm 
extract pucl1
--定义抽取进程为pucl1
dynamicresolution
--动态为要进行抽取的表添加记录
passthru
--禁止extract与数据库交互,适用于Data Pump传输进程(dpeXX)
rmthost uatdb1, mgrport 7809, tcpbufsize 800000, tcpflushbytes 800000, timeout 600
--指定目标系统及其GoldengateManager进程的端口号,tcp缓冲区大小为800000字节,超过600秒自动清空缓存区数据
rmttrail /oracle/ggs/dirdat/cl
--将捕获的日志数据指定写入到目标端的哪个队列
reportrollover at 02:00
--设定切换一个日志的时间和间隔
--抽取数据库中如下数据表的信息:
table tiger.bc_account_balance;
pucl1.prm
cat reum.prm 
replicat reum
--定义应用进程为reum
userid ogg,password ogg
--以ogg用户登陆数据库
reportrollover at 02:00
--设定切换一个日志的时间和间隔
--reperror default ,abend
--定义出错以后replicat的响应:Abend,即一旦出现错误即停止复制,此为缺省配置;Discard,出现错误后继续复制,只把错误的数据放到discard文件中。
REPORT AT 02:00
--定义自动定时报告
REPORTCOUNT EVERY 300 SECONDS, RATE
--REPORTCONT:报告已经处理的纪录条数统计数字。每300秒统计一次
DISCARDROLLOVER AT 05:30 ON friday
--为了防止discard file被写满,每周五05:30做一次文件过期设定,自动重新建立一个dsc文件 
assumetargetdefs
--假定两端数据结构一致使用此参数
--不查询主库的表结构信息,前提是:使用MAP statement时,原库和目标库的表的字段结构必须一致,一般在replicat迚程使用此参数
discardfile /oracle/ggs/dirrpt/reum.dsc,append,megabytes 500
--将执行失败的记录保存在discard file中,该文件位于/oracle/ggs/dirrpt/reum.dsc,大小为500MB
--文件中已经包含记录的话,再后面继续追加,不删除之前的记录。
--batchsql
handlecollisions
--自动过滤重复时段的数据冲突,用于不能停机执行初始化
--打开该参数后不会将数据错误报到discard文件中
SOURCEDEFS ./dirdef/REUM.def
--SOURCEDEFS参数值对应表结构的定义文件
--在Replication端设置SourceDefs属性,这样Replicat才能正确解析Trail流
NODYNAMICRESOLUTION
--使对象记录在启动时生产,不支持Teradata
WILDCARDRESOLVE IMMEDIATE
--使对象记录在启动时生产,不支持Teradata
map tiger.d_gg_timestamp, target tiger.d_gg_stat, colmap (GG_SOURCE=GG_SOURCE, CURR_THREAD="REUM", last_update_time=last_update_time);
--用于指定源端与目标端表的映射关系
map tiger.d_gg, target tiger.d_gg_log, colmap (GG_SOURCE=GG_SOURCE, CURR_THREAD="REUM", source_time=source_time,CLCT_TIME=@DATENOW());
DYNAMICRESOLUTION
--使replicat动态解析表的结构,加快启动速度。缺省为每次启动解析所有要复制表的结构
MAP tiger.LOG_OPERATION_UMP, TARGET tiger.LOG_OPERATION_UMP, where (ump_operation_id <> 400000);
MAP tiger.LOG_OPERATION_UMP, TARGET tiger.LOG_OPERATION_UMP_URL, where (ump_operation_id = 400000);
mapexclude tiger.d_gg_timestamp
mapexclude tiger.d_gg
mapexclude tiger.LOG_OPERATION_UMP
--mapexclude用于使用在map中使用*匹配时排除掉指定的表,类似于源端的tablexclude
MAP tiger.*, TARGET tiger.*;
reum.prm

 


 

官方文档

https://docs.oracle.com/goldengate/1212/gg-winux/GWURF/gg_parameters174.htm#GWURF712

https://docs.oracle.com/goldengate/1212/gg-winux/index.html

官方页面顶部搜索关键字,即可获取相应帮助

posted @ 2018-04-23 11:03  Cslc-DaweiJ  阅读(1076)  评论(0)    收藏  举报