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参数规范的更多相关文章

  1. API接口通讯参数规范(2)

    针对[API接口通讯参数规范]这篇文章留下的几个问题进行探讨. 问题1 试想一下,如果一个http请求返回一个500给我们,那我们是不是都不用看详情都知道该次请求发生了什么?这正是一个标准的结果码意义 ...

  2. goldengate 参数之GETTRUNCATES | IGNORETRUNCATES --转载

    GETTRUNCATES | IGNORETRUNCATESValid ForExtract and ReplicatDescriptionUse the GETTRUNCATESand IGNORE ...

  3. API接口通讯参数规范

    通常在很多的公司里面,对于接口的返回值没做太大规范,所以会比较常看到各个项目各自定义随意的返回值,比如以下情况: 1. 直接返回bool值(True或者False) 2. 返回void,只要不是异常信 ...

  4. plsql programming 17 过程, 函数与参数

    代码模块化, 即将一大块代码拆成若干小块(过程), 然后就可以在其他模块调用这些模块了, 这样, 重用性更好, 也方便管理. 过程: 过程是一个可以像执行 PL/SQL 语句一样调用的程序, 一个过程 ...

  5. argparse - 命令行选项与参数解析(转)

    argparse - 命令行选项与参数解析(译)Mar 30, 2013 原文:argparse – Command line option and argument parsing 译者:young ...

  6. 程序员的自我救赎---11.1:RPC接口使用规范

    <前言> (一) Winner2.0 框架基础分析 (二)PLSQL报表系统 (三)SSO单点登录 (四) 短信中心与消息中心 (五)钱包系统 (六)GPU支付中心 (七)权限系统 (八) ...

  7. python 命令行参数——argparse模块的使用

    以下内容主要来自:http://wiki.jikexueyuan.com/project/explore-python/Standard-Modules/argparse.html argparse ...

  8. 个人博客作业Week2 是否需要有代码规范

    问题:是否需要有代码规范 对于是否需要有代码规范,请考虑下列论点并反驳/支持: 1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 2.我是个艺术家,手艺人,我有 ...

  9. argparse - 命令行选项与参数解析

    argparse模块作为optparse的一个替代被添加到Python2.7.argparse的实现支持一些不易于添加到optparse以及要求向后不兼容API变化的特性,因此以一个新模块添加到标准库 ...

随机推荐

  1. mariadb克隆

    oracle有克隆安装,事实上mysql/mariadb相似.仅仅需简单几步就能够直接在异机直接启动. 环境: node01安装完毕的mariadb; node02一个新机器 如今将node01克隆到 ...

  2. node--19 moogose demo1

    db.js /** * Created by Danny on 2015/9/28 16:44. */ //引包 var mongoose = require('mongoose'); //创建数据库 ...

  3. hdoj--4501--小明系列故事——买年货(三维背包)

    小明系列故事--买年货 Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Tota ...

  4. zookeeper的节点类型

    Znode有两种类型: 短暂(ephemeral):客户端和服务器端断开连接后,创建的节点自己删除 持久(persistent):客户端和服务器端断开连接后,创建的节点不删除 2)Znode有四种形式 ...

  5. Homebrew的安装及使用

    Homebrew是Mac上的软件包管理工具,能在Mac中方便的搜索安装卸载软件. 1  安装 在终端输入一下代码,回车,即可下载. ruby -e "$(curl -fsSL https:/ ...

  6. [转] CentOS 7 为firewalld添加开放端口及相关资料

    转自http://www.cnblogs.com/hubing/p/6058932.html 1.运行.停止.禁用firewalld 启动:# systemctl start  firewalld 查 ...

  7. SQL中一次插入多条数据

    SQL中insert一次可以插入一条数据,我们有三种方法可以一次性插入多条数据. 1. 语法:select 字段列表 into 新表 from 源表 注意事项:此种方法新表是系统自动创建,语句执行前不 ...

  8. css 禁止文本被选中复制代码

    css 禁止文本被选中复制代码: .cus-text{ -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none ...

  9. javascript 继承之拷贝,原型,类式

    // 拷贝继承,在子类内调用父类并修正this指向,再通过for in 拷贝父类的方法实现继承,具体实现如下代码 : function Tab(){//父类构造函数 this.name='aaa'; ...

  10. JDBC读写MySQL的大字段数据

    JDBC读写MySQL的大字段数据   不管你是新手还是老手,大字段数据的操作常常令你感到很头痛.因为大字段有些特殊,不同数据库处理的方式不一样,大字段的操作常常是以流的方式 来处理的.而非一般的字段 ...