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 | 制定GoldenGate的mgr进程使用哪个 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;抽取数据库中如下数据表的信息
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向系统日志发送的消息类型
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;
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.*;
官方文档
https://docs.oracle.com/goldengate/1212/gg-winux/GWURF/gg_parameters174.htm#GWURF712
https://docs.oracle.com/goldengate/1212/gg-winux/index.html
官方页面顶部搜索关键字,即可获取相应帮助

浙公网安备 33010602011771号