Goldengate参数规范
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)
Goldengate参数规范的更多相关文章
- API接口通讯参数规范(2)
针对[API接口通讯参数规范]这篇文章留下的几个问题进行探讨. 问题1 试想一下,如果一个http请求返回一个500给我们,那我们是不是都不用看详情都知道该次请求发生了什么?这正是一个标准的结果码意义 ...
- goldengate 参数之GETTRUNCATES | IGNORETRUNCATES --转载
GETTRUNCATES | IGNORETRUNCATESValid ForExtract and ReplicatDescriptionUse the GETTRUNCATESand IGNORE ...
- API接口通讯参数规范
通常在很多的公司里面,对于接口的返回值没做太大规范,所以会比较常看到各个项目各自定义随意的返回值,比如以下情况: 1. 直接返回bool值(True或者False) 2. 返回void,只要不是异常信 ...
- plsql programming 17 过程, 函数与参数
代码模块化, 即将一大块代码拆成若干小块(过程), 然后就可以在其他模块调用这些模块了, 这样, 重用性更好, 也方便管理. 过程: 过程是一个可以像执行 PL/SQL 语句一样调用的程序, 一个过程 ...
- argparse - 命令行选项与参数解析(转)
argparse - 命令行选项与参数解析(译)Mar 30, 2013 原文:argparse – Command line option and argument parsing 译者:young ...
- 程序员的自我救赎---11.1:RPC接口使用规范
<前言> (一) Winner2.0 框架基础分析 (二)PLSQL报表系统 (三)SSO单点登录 (四) 短信中心与消息中心 (五)钱包系统 (六)GPU支付中心 (七)权限系统 (八) ...
- python 命令行参数——argparse模块的使用
以下内容主要来自:http://wiki.jikexueyuan.com/project/explore-python/Standard-Modules/argparse.html argparse ...
- 个人博客作业Week2 是否需要有代码规范
问题:是否需要有代码规范 对于是否需要有代码规范,请考虑下列论点并反驳/支持: 1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 2.我是个艺术家,手艺人,我有 ...
- argparse - 命令行选项与参数解析
argparse模块作为optparse的一个替代被添加到Python2.7.argparse的实现支持一些不易于添加到optparse以及要求向后不兼容API变化的特性,因此以一个新模块添加到标准库 ...
随机推荐
- php利用msqli访问数据库并实现分页,
<?php require_once 'login.php'; $num_rec_per_page=2; // 每页显示数量 //mysql_connect('localhost','jim', ...
- JAVA设计模式之【模板方法模式】
模板方法模式 提高代码的复用性 把常用的基本方法放入父类中 强调一种流程步骤 角色 抽象类 抽象方法 具体方法 钩子方法 空方法 通过bool控制 具体类 看例子 1.银行模板类 package Te ...
- apiCloud中openFrameGroup传参
apiCloud中openFrameGroup传参 1.无效的 api.openFrameGroup({ // 打开 frame 组 name: 'group', scrollEnabled: fal ...
- m_Orchestrate learning system---十四、数据表中字段命名规则
m_Orchestrate learning system---十四.数据表中字段命名规则 一.总结 一句话总结:a.保证唯一 b.见名知意 1.注意php中的数组类函数和字符串类函数的前缀? 数组类 ...
- javascript系列-class2.javascript 基本使用
欢迎加入前端交流群来py: 转载请标明出处! 逻辑运算 一门计算机语言,编程的核心在于逻辑思想,当我们在编写程序的时候,逻辑是否通顺,是能否正确写出程序的关键,可以说如 ...
- servlet中怎么注入service
在工作中使用到spring的mvc框架,分为controller/service/dao三个层次.偶尔会用到servlet替换掉controller,这就遇到如何在servlet中使用注入到sprin ...
- CentOS 安装 PHP7
下载地址:http://php.net/downloads.php 上传目录:/usr/local/src 安装目录:/usr/local/php ## 参考资料 PHP官网: http://php. ...
- MySQL内置函数uuid和uuid_short
MySQL的uuid这个函数.简要介绍一下. 用法 简单看到,这个值,每次执行都是不同的. 生成规则 第1 2 3 段是与时间有关的. time_low.time_mid.time_high_and_ ...
- Android ViewPager 动画效果
找到个不错的开源项目:https://github.com/jfeinstein10/JazzyViewPager Android ViewPager 动画效果
- (转载)Android中的Service:Binder,Messenger,AIDL(2)
前言 前面一篇博文介绍了关于Service的一些基本知识,包括service是什么,怎么创建一个service,创建了一个service之后如何启动它等等.在这一篇博文里有一些需要前一篇铺垫的东西,建 ...