1. 文档综述
1.1. 文档说明
本文档规定了在实施Goldengate时,各个进程需要配置的参数.
该参数模板适合于Goldengate11.2.1.0版本;
**注:本文档为Goldengate实施规范系列文档内容之一。在Goldengate的实施过程中,需要严格遵循系列实施规范。
**注:无主键,大事务,这些都是OGG支持有问题的,需要进行应用调整,否则即使按照规范执行,某些情况下也会出现问题。
**注:本文档不涉及任何调优参数,如需使用性能调优参数需咨询oracle后谨慎使用。
**注:前提复制范围已确定,DML复制的对象都需要在DDL复制范围内。
1.2. 读者范围
本文档主要供容灾相关人员、纳入数据级容灾范围的应用系统相关人员使用,在Goldengate实施、运维的整个生命周期中,必须严格遵循本系列文档。
1.3. 术语说明
序号 |
完整说法 |
缩略说法 |
1 |
GoldenGate |
GG或OGG |
|
|
|
|
|
|
|
|
|
|
|
1.4. 输入输出
1.4.1. 输入条件
N/A
1.4.2. 文档产出
N/A
2. Goldengate进程参数模板
参数文件中的参数分为三类:
- 必选参数:进程必须配置的参数;
- 可选参数:可以根据应用的实际情况选择使用的参数,例如性能调优参数;
- 特定参数:特定环境或者特定平台使用的参数;
- 非选参数:该类参数不能进行配置
- DDL配置参数(在实施DDL复制时需要配置的参数,在参数模板文件中一律标红显示)
Global参数源端默认为 schema goldengate
目标端默认为 CHECKPOINTTABLE goldengate.ggschkpt 即可
注:请遵照本参数模板的参数顺序来进行配置;
2.1. 管理进程MGR参数配置
范例: --配置普通基本参数区域 PORT 7809 DYNAMICPORTLIST7840-7914 AUTOSTART ER * STARTUPVALIDATIONDELAY 5 AUTORESTART EXTRACT *, RETRIES 5, WAITMINUTES 7 PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOINTS, MINKEEPDAYS 3 --配置DDL参数区域 PURGEDDLHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10,FREQUENCYMINUTES 30 PURGEMARKERHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10 配置一般日志信息区域 LAGREPORTHOURS 1 LAGINFOMINUTES 30 LAGCRITICALMINUTES 45 PORT 7839 --必选参数 DYNAMICPORTLIST 7840-7914 --必选参数 --配置建议:一个传输进程(datapump)一般需要预留5个端口,其他监控端口另行考虑; 这些端口用于与goldengate的复制进程,collector进程,ggsci命令进行通信。 AUTOSTART ER * --非选参数 --此参数用于启动mgr进程时,自动启动下边的其它资源组。 AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3 --此参数表示extract进程由于网络中断或者其它原因停止时,goldengate会自动尝试启动5次,直到成功,每次自动启动间隔为3分钟。 STARTUPVALIDATIONDELAY 5 –-配合autostart ER *使用,表示启动每组资源是延时5S,建议稳定时候开启 --可选参数 --配置建议:在系统运行稳定时,打开该参数; PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 3 --必选参数 --配置建议:根据队列空间大小适当进行调整,建议>=3天; --purgeoldextracts参数用于定期删除维护不用的trail文件。此次含义为用checkpoints,删除超过3天且已经应用--完的trail文件。
PURGEDDLHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10,FREQUENCYMINUTES 30 --DDL 配置时需要的参数,此参数用于维护GGS_DDL_HIST表,默认清除1小时没有变更过的记录。此处为GGS_DDL_HIST表记录保存7-10天内没有变更过的记录。 PURGEMARKERHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10 --DDL配置时需要的参数,用于维护GGS_MARKER的记录数。默认为超过1小时的记录没有变更即删除。此处的参数含义为7-10天内的记录没有变更,就删除该记录,每30分钟检查并执行一次。 LAGREPORTHOURS 1 --必选参数 --配置建议:统一设定为1个小时; --表示mgr进程每隔一小时检查各进程延时情况,并记录到goldengate report文件。 LAGINFOMINUTES 30 --必选参数 --配置建议:统一设定为30分钟; --表示进程复制延时超过30分钟,goldengate即向日志文件记录一条info级别的延时信息。 . LAGCRITICALMINUTES 45 --必选参数 --配置建议:统一设定为45分钟; 表示进程复制延时超过45分钟,goldengate即向日志文件记录一条critical级别的延时信息。 |
2.2. 抽取进程EXTRACT参数配置
范例: --基础参数区域 EXTRACT extya SETENV (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK") USERID goldengate, PASSWORD AACAAAAAAAAAAGAIF, ENCRYPTKEY default REPORTCOUNT EVERY 30 MINUTES, RATE DISCARDFILE ./dirrpt/exta.dsc, APPEND, MEGABYTES 256 DISCARDROLLOVER AT 3:00 WARNLONGTRANS 2h, CHECKINTERVAL 3m EXTTRAIL ./dirdata/ya, MEGABYTES 256 DYNAMICRESOLUTION DBOPTIONSALLOWUNUSEDCOLUMN FETCHOPTIONS NOUSESNAPSHOT TRANLOGOPTIONSCONVERTUCS2CLOBS tranlogoptions asmuser sys@asm, asmpassword AACAAAAAAAAAAGAIF, ENCRYPTKEY default TRANLOGOPTIONS altarchivelogdest primary instance rac1 /arch1 altarchivelogdest instancerac2 /arch2 THREADOPTIONSMAXCOMMITPROPAGATIONDELAY 60000 THREADOPTIONSIOLATENCY 1000 --DDL参数区域,所有复制对象,屏蔽对象在源端体现。 DDL & INCLUDE MAPPED OBJTYPE 'TABLE' & INCLUDE MAPPED OBJTYPE 'INDEX' & INCLUDE MAPPED OBJTYPE 'SEQUENCE' & INCLUDE MAPPED OBJTYPE 'VIEW' & INCLUDE MAPPED OBJTYPE 'PROCEDURE' & INCLUDE MAPPED OBJTYPE 'FUNCTION' & INCLUDE MAPPED OBJTYPE 'PACKAGE' & EXCLUDE OPTYPE COMMENT DDLOPTIONS addtrandata REPORT --对象范围区域,总的原则为尽量将处在同一事物与业务,即相关联的对象放到同一进程,具体依据前期收集到的信息进--行归类。 TABLE SCHEMA.*; Sequence schema.*; -------------------------------------------- EXTRACT extxx --必选参数 setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK) --必选参数 --配置建议:需要根据数据库的字符集进行设置; --用于设置goldengate的字符集变量信息,此处值会覆盖操作系统级别的变量。该值需要和数据库字符集匹配一致。 USERID ggs, PASSWORD AACAAAAAAAAAAGAIF, ENCRYPTKEY default --必选参数 --配置建议:要求使用密文参数,添加需要的配置参数; --加密步骤:参考附录3.1; tranlogoptions asmuser sys@asm, asmpassword AACAAAAAAAAAAGAIF, ENCRYPTKEY default --TRANLOGOPTIONS DBLOGREADER --特定参数 --配置建议:在ASM情况下使用,要求使用密文参数,添加需要的配置参数; --加密步骤:参考附录3.1; --其他说明:需要注意配置ASM监听,关注listener.ora和tnsnames.ora配置文件。 --对于数据库版本等于或高于10.2.0.5,建议使用TRANLOGOPTIONS DBLOGREADER替代tnsnames连接方式 GETTRUNCATES --可选参数(复制truncate操作) --配置建议:在仅进行DML复制时,该参数需要打开;如果DDL和DML的复制同时打开,该参数必须关闭; --默认不复制truncate操作。 DDL & INCLUDE MAPPED OBJTYPE 'TABLE' & INCLUDE MAPPED OBJTYPE 'INDEX' & INCLUDE MAPPED OBJTYPE 'SEQUENCE' & INCLUDE MAPPED OBJTYPE 'VIEW' & INCLUDE MAPPED OBJTYPE 'PROCEDURE' & INCLUDE MAPPED OBJTYPE 'FUNCTION' & INCLUDE MAPPED OBJTYPE 'PACKAGE' & EXCLUDE OPTYPE COMMENT DDLOPTIONS addtrandata REPORT --匹配table/index/sequence/view/procedure/function/package对象进行DDL复制 此处参数为按对象类型进行匹配复制,还可以配合schema,操作类型进行匹配。需要oracle与应用确认范围后敲定。
REPORTCOUNT EVERY 25 MINUTES, RATE --可选参数 --配置建议:如果需要优化,可以适当进行调整; --此参数每隔25分钟,goldengate向日志文件生成一条记录(抽取进程自从启动后处理的记录数与计算处理速率的信息)。 DISCARDFILE ./dirrpt/extxx.dsc,APPEND,MEGABYTES 1024 --必选参数 --配置建议:该参数的路径必须为相对路径,该参数的值设置为1024M --discard文件用于记录goldengate不能处理的记录信息。该文件可以采用purge(删除覆盖)与append(追加)方式。 --此处参数设置了discard文件的路径与文件名./dirrpt/extxx,采用追加方式保存,文件大小最大为1024M。当文件大小超过1024M时,抽取进程就会abend,一般配合DISCARDROLLOVER使用,这样保证不会由于超过文件大小导致进程abend。 THREADOPTIONSMAXCOMMITPROPAGATIONDELAY 60000 IOLATENS 60000 --特定参数,在rac环境下需要配置,非Rac的生产环境不需要配置; --配置建议:设置为60000,最大可以设置为90000; --主要用于解决RAC两个节点时间有偏差造成transaction不准确。
AIXTHREAD_SCOPE=S export AIXTHREAD_SCOPE --对于aix系统建议在环境变量引入该变量,可以使goldengate使用多cpu,提高性能。 DBOPTIONS ALLOWUNUSEDCOLUMN --必选参数; --配置建议:在生产端库表中存在unused列时,需要配置该参数; --用于阻止抽取进程抽取数据时由于表含有unused列而导致进程abend。即使使用该参数,抽取进程抽取到unused列时也会向日志文件记录一条警告信息。 WARNLONGTRANS 2h,CHECKINTERVAL 3m --必选参数 --配置建议:要求设置为2h,3m,如有特殊需要,可以调整;表示向日志记录超过2小时的长事务信息,每隔3分钟检查一次。 EXTTRAIL ./dirdat/xx --必选参数 --配置建议:要求使用相对路径,遵循命名规范; --用于指定trail文件存放路径。 TRANLOGOPTIONS EXCLUDEUSER USERNAME --可选参数 --配置建议:可以使用来排除大事务用户 --排除不需要的用户的数据复制。主要用于双活拓扑结构的系统时,用来排除goldengate用户的数据。避免形成环路。 FETCHOPTIONS NOUSESNAPSHOT --必选参数 --配置建议:要求必须设置该参数 --默认值为 usesnapshot,表示利用数据库闪回读取数据。Nousesnapshot表示直接从原表读取相关数据。 所有需要添加的fetchoption参数需要oracle确认 TRANLOGOPTIONS CONVERTUCS2CLOBS --必选参数 --对CLOB字段进行处理 --此参数官方文档没有,需要oracle确认。 TRANLOGOPTIONS altarchivelogdest primary instance rac1 /arch1 altarchivelogdest instancerac2 /arch2 --特定参数 --配置建议:rac使用,解决归档路径不一致的问题;可以在一个实例上面配置多个归档路径; --需要保证goldengate能同时读到各节点的归档,一般采用NFS挂载rac另外节点的归档。 TRANLOGOPTIONSRAWDEVICEOFFSET 0 --特定参数 --配置建议:仅限于AIX平台下使用裸设备时使用,其它平台或非裸设备均不需要 --需要在Aix操作系统中去查有没有偏移量,如果有偏移量的话,该参数不需要进行设置,goldengate的默认就可以了; --如果没有偏移量,则需要设置为0; --该参数官方文档不存在,需要oracle确认 TABLE SCHEMA.*; --需要复制的对象列表,拆分需遵循拆分规范 |
2.3. 传输进程DATAPUMP参数配置
范例: --基础参数区域 EXTRACT dpeya RMTHOST hostname, MGRPORT 7809, COMPRESS PASSTHRU NUMFILES 5000 RMTTRAIL ./dirdata/ya DYNAMICRESOLUTION --对象区域,尽量保证与抽取进程一致。 TABLE schema.*; EXTRACT dpxx --必选参数 --表示进程名,需遵循设计规范。 PASSTHRU --必选参数 --表示传输进程直接跟抽取进程交互,而不再和数据库进行交互,减少数据库资源的利用。 RMTHOST *.*.*.*, MGRPORT 7839, compress, PARAMS –W 30 --必选参数 --配置建议:*.*.*.* 目标端的ip地址,7839为目标端的管理端口,要求配置compress压缩参数,节省网络带宽,但会增加CPU开销; 此参数用在HP NONSTOP系统上,建议删除,需讨论-- PARAMS –W 30 可以确保datadump进程宕掉以后,容灾端的server在30秒后自动停掉;
RMTTRAIL ./dirdat/xx --必选参数 --配置建议:要求使用相对路径,遵循命名规范;
TABLE SCHEMA.*; 复制范围和抽取进程对应即可,对于拆分情况参照拆分设计文档 |
2.4. 复制进程REPLICAT参数配置
范例: REPLICAT repya USERID ggs, PASSWORD AACAAAAAAAAAAGAIFAAAUDVHCFUGFIYF, ENCRYPTKEY default SETENV (NLS_LANG = "AMERICAN_AMERICA.ZHS16GBK") REPORT AT 01:59 REPORTCOUNT EVERY 25 MINUTES, RATE REPORTROLLOVER AT 02:00 REPERROR DEFAULT, ABEND ALLOWNOOPUPDATES ASSUMETARGETDEFS DISCARDFILE ./dirrpt/ya.dsc, APPEND, MEGABYTES 256M DISCARDROLLOVER AT 02:00 ALLOWNOOPUPDATES --DDL参数区域 需要屏蔽的操作类型在此区域屏蔽 DDL include mapped ddloptions report --DDL 错误过滤 DDLERROR <error1> IGNORE --复制对象区域,尽量与dpe进程保持一致。 MAP schema.*, TARGETschema.*; REPLICAT repxx --必选参数 --设置复制进程名字,需遵循命名规范 setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK) --必选参数 --配置建议:需要根据数据库源端的字符集进行设置; SQLEXEC "ALTER SESSION SET CONSTRAINTS=DEFERRED" --必选配置 --注:打开数据库中的延迟约束的特性,避免复制进程因拆分造成插入相关的约束错误。
USERID ggs, PASSWORD AACAAAAAAAAAAGAIFAAAUDVHCFUGFIYF, ENCRYPTKEY default --必选参数 --配置建议:要求使用密文参数,添加需要的配置参数; --加密步骤:参考附录3.1; DDL include mapped ddloptions report --以上标红为开启DDL复制时需要配置的参数; --复制所有匹配的DDL。 REPORT AT 01:59 --可选参数,定期生产进程相关的report文件。 --配置建议:该时间也根据需要进行修改 --每天01:59定期生成一个report文件 REPORTCOUNT EVERY 30 MINUTES, RATE --可选参数 --配置建议:可以根据需要进行调整; --此参数每隔30分钟,goldengate向日志文件生成一条记录(抽取进程自从启动后处理的记录数与计算处理速率的信息)。 REPERROR DEFAULT, ABEND --必选参数 --配置建议:使用abend参数; --goldengate遇错的处理原则,即遇到不能处理的错误就自动abend,启动需要人工干预处理。 HANDLECOLLISIONS --非选参数 --配置建议:用于goldengate自动过滤不能出来的冲突记录,为了严格保证数据一致性,该参数不允许打开,如需打开,请联系Oracle Support;
assumetargetdefs --必选参数 --表示源库与目标库表结构一致。 DISCARDFILE ./dirrpt/repya1.dsc, APPEND, MEGABYTES 1024 --必选参数 --配置建议:该参数的路径必须为相对路径,建议该参数的值设置为1024M; --discard文件用于记录goldengate不能处理的记录信息。该文件可以采用purge(删除覆盖)与append(追加)方式。 DISCARDROLLOVER AT 02:30 --可选参数 --配置建议:该参数统一设定为02:30,根据情况也可以进行调整; --表示discard文件每天02:30定期轮转。
GETTRUNCATES --可选参数 --配置建议:在仅进行DML复制时,该参数需要打开;如果DDL和DML的复制同时打开,该数据必须关闭; --默认不复制truncate操作。 ALLOWNOOPUPDATES --必选参数,默认值为NOALLOWNOOPUPDATES --注:当源表有排除列情况或者有目标表不存在的列时,当更新这列goldengate默认报错。应用该参数后,即可让goldengate生成一条警告信息而不是报错。 MAP SCHEMA.*; 对应需要复制的对象,默认一一对应传输进程,当有拆分时参考拆分规范。 |
3. 附录
3.1. 明文密码加密步骤
在参数文件的Login设置中,密码信息需要使用密文,加密步骤如下:
(一) 获取密码经过GG默认算法加密的密文
GGSCI>ENCRYPT PASSWORD ny14072 BLOWFISH ENCRYPTKEY DEFAULT
--其中,xxxxxxx为OGG用户实际的明文密码
Using default key...
Encrypted password:AACAAAAAAAAAAAHANGWARBMCFHHDCFMF
Algorithm used: BLOWFISH --得到加密后的密文
(二) 修改Extract参数文件:
USERID ggs, PASSWORD AACAAAAAAAAAAGAIFAAAUDVHCFUGFIYF, ENCRYPTKEY default
4.GoldenGate参数文档
Windows and UNIX Reference Guide 11g Release 2 Patch Set 1 (11.2.1.0.1)