Damon

天行健,君子以自强不息!

  • 博客访问: 2376802
  • 博文数量: 127
  • 用 户 组: 普通用户
  • 注册时间: 2014-02-08 10:51
  • 认证徽章:
个人简介

北漂 IT民工 攻城狮 Oracle DBA OCM RHCE QQ:583882103

ITPUB论坛APP

ITPUB论坛APP



APP发帖 享双倍积分

文章分类

全部博文(127)

文章存档

2017年(1)

2016年(59)

2015年(30)

2014年(37)

微信关注

IT168企业级官微



微信号:IT168qiye



系统架构师大会



微信号:SACC2013

订阅
热词专题
很多刚开始学习OGG的同学在学会基本配置后,想要进一步提高的阶段必不可少的要跟各种配置参数打交道。比如管理进程的参数、抽取进程的参数、投递进程的参数和复制进程的参数。这些参数文件中样式繁多的参数都是什么作用,怎样使用,真正的企业应用会怎样配置一定是初学者渴望了解的。

本文分为两篇,第一篇介绍生产端的管理进程配置参数、抽取进程配置参数、投递进程配置参数;第二篇介绍灾备端管理进程配置参数和复制进程配置参数。

本文来自一个真实的企业应用,生产端和灾备端位于不同的城市。让我们走出实验室看看真实的生产环境的OGG配置吧。


OGG的版本为:11.2.1.0.4

Oracle GoldenGate Command Interpreter for Oracle
Version 11.2.1.0.4 14636914 OGGCORE_11.2.1.0.4_PLATFORMS_121007.2020
HP/UX, IA64, 64bit (optimized), Oracle 10g on Oct  8 2012 02:26:37

Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.


启动的进程
GGSCI> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT     RUNNING     DPEYA       00:00:00      00:00:02
EXTRACT     RUNNING     EXTYA       00:00:02      00:00:05

EXTYA为抽取进程,DPEYA为投递进程


管理进程配置
GGSCI> view params mgr

PORT 7839
DYNAMICPORTLIST  7840-7914
--AUTORESTART EXTRACT *, RETRIES 5, WAITMINUTES 7
PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOINTS, MINKEEPDAYS 10
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
PORT 7839
通信端口7839。 生产端和灾备端需要保持一致。

DYNAMICPORTLIST  7840-7914
动态端口列表的范围从7840到7914。当制定端口被占用或者出现通信故障,管理进程将会从列表中选择下一个端口尝试连接,避免通信端口的单点故障。

--AUTORESTART EXTRACT *, RETRIES 5, WAITMINUTES 7
当提取进程中断后尝试自动重启,每隔7分钟尝试启动一次,尝试5次。OGG运维人员通常会注释掉这条配置,更喜欢用手工重启的方式来控制。

PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOINTS, MINKEEPDAYS 10
定期清理dirdat路径下的本地队列(local trail)。保留期限10天,过期后自动删除。从而控制队列文件的目录不会增长过大。

LAGREPORTHOURS 1
每隔一小时检查一次传输延迟情况

LAGINFOMINUTES 30
传输延时超过30分钟将写入错误日志

LAGCRITICALMINUTES 45
传输延时超过45分钟将写入警告日志

通常在一些海量数据的分区表中容易出现传输延时的现象。建议在灾备端启动多个复制进程(replicat),为这些大表单独的开启专用通道。


抽取进程配置
GGSCI 3> view params extya

EXTRACT extya
SETENV (NLS_LANG="AMERICAN_AMERICA.UTF8")
USERID goldengate, PASSWORD AACAAAAAAAAAAAJAPJYATHVIMGMAOFHIUCUEPFYGGJBFJGIH, ENCRYPTKEY default
REPORTCOUNT EVERY 30 MINUTES, RATE
DISCARDFILE ./dirrpt/extya.dsc, APPEND, MEGABYTES 1024
DISCARDROLLOVER AT 3:00
WARNLONGTRANS 2h, CHECKINTERVAL 3m
EXTTRAIL ./dirdat/ya
DYNAMICRESOLUTION
DBOPTIONS  ALLOWUNUSEDCOLUMN
FETCHOPTIONS NOUSESNAPSHOT
FETCHOPTIONS FETCHPKUPDATECOLS
--CACHEMGR CACHESIZE 8000MB, CACHEDIRECTORY  /goldengate/temp, CACHEDIRECTORY /goldengate/temp2
TRANLOGOPTIONS  CONVERTUCS2CLOBS
--tranlogoptions asmuser sys@asm, asmpassword  AACAAAAAAAAAAGAIF, ENCRYPTKEY default
TRANLOGOPTIONS altarchivelogdest primary instance sgpmdb1 /sgpmdb/arch altarchivelogdest  instance  sgpmdb2 /sgpmdb/arch
THREADOPTIONS   MAXCOMMITPROPAGATIONDELAY 60000 IOLATENCY 60000

—Schema名称涉及敏感字符,在此统一使用Schema来代替
—table名称涉及敏感字符,在此统一使用table来代替
mapexclude Schema1.table1;
mapexclude Schema1.table2;
mapexclude Schema2.table1;
mapexclude Schema2.table1;

TABLE Schema1.*;
TABLE Schema2.*;
TABLE Schema3.*;
TABLE Schema4.*;
TABLE Schema5.*;

sequence Schema1.*;
sequence Schema2.*;
sequence Schema3.*;
sequence Schema4.*;
sequence Schema5.*;

SETENV (NLS_LANG="AMERICAN_AMERICA.UTF8")
设置字符集环境变量为UTF8
如果系统中存在多个数据库有时候会用参数SETENV设置ORACLE_HOME、ORACLE_SID等,例如:
SETENV (ORACLE_HOME = “/home/oracle/product/10.2.0/db)
SETENV (ORACLE_SID = “PROD”)

REPORTCOUNT EVERY 30 MINUTES, RATE
每隔30分钟报告一次从程序开始到现在的抽取进程或者复制进程的事物记录数,并汇报进程的统计信息

DISCARDFILE ./dirrpt/extya.dsc, APPEND, MEGABYTES 1024
将执行失败的记录保存在discard file中,该文件位于./dirrpt/extya.dsc,大小为1024MB。 文件中已经包含记录的话,再后面继续追加,不删除之前的记录。 

DISCARDROLLOVER AT 3:00
为了防止discard file被写满,每天3:00做一次文件过期设定

WARNLONGTRANS 2h, CHECKINTERVAL 3m
每隔3分钟检查一下大事务,超过2小时还没结束的进行报告

EXTTRAIL ./dirdat/ya
队列文件路径

DYNAMICRESOLUTION
有时候开启OGG进程的时候较慢,可能是因为需要同步的表太多,OGG在开启进程之前会将需要同步的表建立一个记录并且存入到磁盘中,这样就需要耗费大量的时间。使用该参数来解决此问题。

DBOPTIONS  ALLOWUNUSEDCOLUMN
当抽取进程遇到一个没有使用的字段时只生成一个警告,进程会继续执行而不会被异常终止(abend)

FETCHOPTIONS NOUSESNAPSHOT
不会从闪回日志中获取数据

FETCHOPTIONS FETCHPKUPDATECOLS
当使用了HANDLECOLLISIONS时,请使用该参数。
复制进程出现丢失update记录(missing update)并且更新的是主键,update将转换成insert。由于插入的记录可能不是完整的行,若要保证完整需要加入此参数

--CACHEMGR CACHESIZE 8000MB, CACHEDIRECTORY  /goldengate/temp, CACHEDIRECTORY /goldengate/temp2
在/goldengate/temp,/goldengate/temp2 目录设置虚拟内存

TRANLOGOPTIONS  CONVERTUCS2CLOBS
指定在解析数据库日志时所需要的特殊参数
本参数只用在extract端 UTF字符类型,并且11.1.1前处理CLOB才需要。

TRANLOGOPTIONS altarchivelogdest primary instance rac1 /arch altarchivelogdest  instance  rac2 /arch
指定RAC环境下每个节点的归档日志地址

THREADOPTIONS   MAXCOMMITPROPAGATIONDELAY 60000 IOLATENCY 60000
RAC集群中的所有节点必须同步系统时钟。GoldenGate通过比较本地系统的时间和事务提交的时间点来做出关键决策。可以通过NTP来不同系统时间。所有节点上的COMPATIBLE参数设置也必须相同。
这个参数在Oracle11.2版本后就不在使用了。


投递进程配置
GGSCI 6> view params dpeya

EXTRACT dpeya
RMTHOST 10.10.10.1, MGRPORT 7839, COMPRESS
PASSTHRU
NUMFILES 5000
RMTTRAIL ./dirdat/yb
DYNAMICRESOLUTION

—要复制的表清单
TABLE Schema1.*;
TABLE Schema2.*;
TABLE Schema3.*;
TABLE Schema4.*;
TABLE Schema5.*;

RMTHOST 10.10.10.1, MGRPORT 7839, COMPRESS
灾备端主机IP,管理进程端口号,投递前压缩队列文件

NUMFILES 5000
最多处理5000张表

RMTTRAIL ./dirdat/yb
灾备端保存队列文件的目录

PASSTHRU
采用pass-through模式处理表

DYNAMICRESOLUTION
动态解析表名


关于参数的定义我们可以查阅OGG的官方文档《Oracle GoldenGate Windows and UNIX Reference Guide》,该文档详尽的描述了各个参数的概念和用法。
阅读(11331) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册