zoukankan      html  css  js  c++  java
  • oracle之ogg部署(单机到单机)

    1 GoldenGate简要说明

    GoldenGate现在是业内成熟的数据容灾与复制产品,经过多年的发展与完善,现在已经成为业内事实上的标准之一。

    GoldenGate软件是一种基于日志的结构化数据复制软件,它通过解析源数据库在线日志或归档日志获得数据的增删改变化,再将这些变化应用到目标数据库,实现源数据库与目标数据库同步。

    1.1  Golden Gate技术结构

    GoldenGate软件的技术结构如图1.1所示:

    从图中可以看到:GoldenGate主要包含Manager进程、Extract进程、Pump进程、Replicat进程,下面对其一一说明:

    Manager进程是GoldenGate的控制进程,它主要作用有以下几个方面:启动、监控、重启GoldenGate的其他进程,报告错误及时间,分配数据存储空间,发布阀值报告等。

    Extract进程运行在数据库源端,负责从源端数据表或日志中捕获数据。Extract进程利用其内在的checkpoint机制,周期性地检查并记录其读写的位置,通常是写入到本地的trail文件。这种机制是为了保证如果Extract进程终止或者操作系统宕机,我们重启Extract进程后,GoldenGate能够恢复到以前的状态,从上一个断点处继续往下运行,而不会有任何数据损失。

    Pump进程运行在数据库源端,其作用非常简单。如果源端使用了本地trail文件,那么Pump进程就会把Trail文件以数据块的形式通过TCP/IP协议发送到目标端,我们下面的配置都是这种方式。Pump进程本质是Extract进程的一种特殊形式,如果不使用Trail文件,那么Extract进程在抽取完数据后,直接投递到目标端。

    与Pump进程相对应的叫Server Collector进程,这个进程不需要引起我们关注,因为在实际操作过程中无需对其进行任何配置,它运行在目标端,任务就是把Extract/Pump进程投递过来的数据块重新组装成Trail文件。

    Replicat进程运行在目标端,是数据投递的最后一站,负责读取目标端Trail文件中的内容,并将解析其解析为DML或DDL语句,然后应用到目标数据库中。

    1.2  Golden Gate拓扑结构

    GoldenGate提供了灵活的应用方案,基于其先进、灵活的技术架构可以根据用户需求组成各种拓扑结构,如图1.2所示:

    根据实际需求情况,我们需要进行的是一对一复制,且只是复制部分表数据,所以这里仅探讨一对一复制的安装配置,而且对于DDL复制的支持这里也不做研究。

    2 单机à单机复制配置

    2.1  环境简介

    性质

    IP

    系统

    ORACLE版本

    源端

    10.122.0.110

    AIX 5.3

    10.2.0.1

    目标端

    10.122.0.113

    WINDOWS 2003

    10.2.0.1

    2.2  源端安装GoldenGate

    创建GoldenGate安装目录并解压安装文件

    unzip ogg112101_ggs_AIX_ppc_ora10.2_64bit.zip

    tar –xf ggs_AIX_ppc_ora10.2_64bit.tar

    注意:使用的安装包一定要与平台一致

     

    设置环境变量

    在用户参数文件中添加以下内容:

    export GGATE_HOME=/u01/oracle/oracle/ogg

    export LIBPATH=$GGATE_HOME:$ORACLE_HOME/lib

    注意:添加后需使参数文件生效

    HP及LINUX平台下用LD_LIBRARY_PATH替换LIBPATH

     

    安装GoldenGate

    进入OGG控制台创建OGG工作目录

    然后在安装目录下执行 ./ggsci  进入OGG控制台

    执行命令 create subdirs创建工作目录,显示如下:

    GGSCI (NDSCDB1) 1> create subdirs

    Creating subdirectories under current directory /u01/oracle/oracle/ogg

     

    Parameter files               /u01/oracle/oracle/ogg/dirprm: already exists

    Report files                  /u01/oracle/oracle/ogg/dirrpt: created

    Checkpoint files              /u01/oracle/oracle/ogg/dirchk: created

    Process status files            /u01/oracle/oracle/ogg/dirpcs: created

    SQL script files               /u01/oracle/oracle/ogg/dirsql: created

    Database definitions files       /u01/oracle/oracle/ogg/dirdef: created

    Extract data files              /u01/oracle/oracle/ogg/dirdat: created

    Temporary files               /u01/oracle/oracle/ogg/dirtmp: created

    Stdout files                   /u01/oracle/oracle/ogg/dirout: created

    2.3  目标端安装GoldenGate

    建立OGG安装目录,然后将压缩包解压到目录中,进入cmd控制台,创建工作目录,

    操作步骤显示如下:

    2.4  配置源端数据库

    数据库模式配置

    源端数据库必须开启归档模式

    Alter database archivelog;

    开启最小附加日志

    Alter database add supplemental log data;

    使用SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;

    可查看是否开启了最小附加日志;

     

    源端数据库创建GoldenGate数据库用户并授权:(我们这里以ogg为例,使用其他亦可)

    create user ogg identified by oracle default tablespace DATA_OL;

    grant connect,resource,unlimited tablespace to ogg;

    grant execute on utl_file to ogg;

    grant select any dictionary,select any table to ogg;

    grant alter any table to ogg;

    grant flashback any table to ogg;

    grant execute on DBMS_FLASHBACK to ogg;

    添加表级transdata

    GGSCI (NDSCDB1) 2> dblogin userid ogg,password oracle

    Successfully logged into database.

    GGSCI (NDSCDB1) 3> add trandata olive.ol$_objects

    Logging of supplemental redo data enabled for table OLIVE.OL$_OBJECTS.

     

    2.5  配置源端进程组

    配置管理进程mgr

    GGSCI (NDSCDB1) 1> edit param mgr

    (粘贴下面这段配置)

    PORT 7839

    DYNAMICPORTLIST 7840-7939

    --AUTOSTART ER *

    AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3

    PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 3

    LAGREPORTHOURS 1

    LAGINFOMINUTES 30

    LAGCRITICALMINUTES 45

    MANAGER进程参数配置说明:

    PORT指定服务监听端口;这里以7839为例,默认端口为7809

    DYNAMICPORTLIST动态端口:可以制定最大256个可用端口的动态列表,当指定的端口不可用时,管理进程将会从列表中选择一个可用的端口,源端和目标段的Collector、Replicat、GGSCI进程通信也会使用这些端口;

    COMMENT注释行,也可以用--来代替;

    AUTOSTART指定在管理进程启动时自动启动哪些进程;

    AUTORESTART自动重启参数设置:本处设置表示每3分钟尝试重新启动所有EXTRACT进程,共尝试5次;

    PURGEOLDEXTRACTS定期清理trail文件设置:本处设置表示对于超过3天的trail文件进行删除。

    LAGREPORTLAGINFOLAGCRITICAL

    定义数据延迟的预警机制:本处设置表示MGR进程每隔1小时检查EXTRACT的延迟情况,如果超过了30分钟就把延迟作为信息记录到错误日志中,如果延迟超过了45分钟,则把它作为警告写到错误日志中。

     

    启动管理进程:

    GGSCI (NDSCDB1) 2> start mgr

    Manager started.

    查看进程状态可发现 MANAGER 状态为 RUNNING

    GGSCI (NDSCDB1) 3> info all

     

    Program     Status      Group       Lag at Chkpt  Time Since Chkpt

     

    MANAGER     RUNNING

    配置抽取进程:

    GGSCI (NDSCDB1) 12> add extract extnd,tranlog,begin now

    EXTRACT added.

    GGSCI (NDSCDB1) 14> add exttrail ./dirdat/nd,extract extnd,megabytes 100

    EXTTRAIL added.

    Megabytes:指定队列大小,本处设置表示100M

    GGSCI (NDSCDB1) 15> edit params extnd

    (粘贴下面这段配置)

    EXTRACT extnd

    setenv (NLS_LANG = "AMERICAN_AMERICA.UTF8")

    SETENV (ORACLE_HOME = "/u01/oracle/oracle/product/10.2.0/db_1")

    SETENV (ORACLE_SID = "ndtest")

    USERID ogg, PASSWORD oracle

    --GETTRUNCATES

    REPORTCOUNT EVERY 1 MINUTES, RATE

    DISCARDFILE ./dirrpt/extnd.dsc,APPEND,MEGABYTES 1024

    --THREADOPTIONS  MAXCOMMITPROPAGATIONDELAY 60000 IOLATENS 60000

    DBOPTIONS  ALLOWUNUSEDCOLUMN

    WARNLONGTRANS 2h,CHECKINTERVAL 3m

    EXTTRAIL ./dirdat/nd

    --TRANLOGOPTIONS EXCLUDEUSER USERNAME

    FETCHOPTIONS NOUSESNAPSHOT

    TRANLOGOPTIONS  CONVERTUCS2CLOBS

    TABLE olive.ol$_objects

     

    添加传输进程,配置参数

    GGSCI (NDSCDB1) 2> add extract dpend,exttrailsource ./dirdat/nd

    EXTRACT added.

    GGSCI (NDSCDB1) 3> add rmttrail F:oggdirdat d, EXTRACT DPEND

    RMTTRAIL added.

     

    GGSCI (NDSCDB1) 4> edit params dpend

    (粘贴下面这段配置)

    EXTRACT dpend

    SETENV (NLS_LANG = "AMERICAN_AMERICA.UTF8")

    USERID ogg, PASSWORD oracle

    PASSTHRU

    RMTHOST 10.122.0.113, MGRPORT 7839, compress

    RMTTRAIL F:oggdirdat d

    TABLE olive.ol$_objects;

    抽取进程和传输进程其实都是EXTRACT进程,也可以配置在一个进程完成这两个功能,但是当网络传输有问题时,这样抽取也就不能继续运行了,所以推荐分开配置为两个进程;

    EXTRACT进程参数配置说明:

    SETENV配置系统环境变量

    USERID/ PASSWORD指定OGG连接数据库的用户名和密码,这里使用3.4部分中创建的数据库用户OGG;

    COMMENT注释行,也可以用--来代替;

    TABLE定义需复制的表,后面需以;结尾

    TABLEEXCLUDE定义需要排除的表,如果在TABLE参数中使用了通配符,可以使用该参数指定排除掉得表。

    GETUPDATEAFTERS|IGNOREUPDATEAFTERS

    是否在队列中写入后影像,缺省复制

    GETUPDATEBEFORES| IGNOREUPDATEBEFORES

    是否在队列中写入前影像,缺省不复制

    GETUPDATES|IGNOREUPDATES

    是否复制UPDATE操作,缺省复制

    GETDELETES|IGNOREDELETES

    是否复制DELETE操作,缺省复制

    GETINSERTS|IGNOREINSERTS

    是否复制INSERT操作,缺省复制

    GETTRUNCATES|IGNORETRUNDATES

    是否复制TRUNCATE操作,缺省不复制;

    RMTHOST指定目标系统及其Goldengate Manager进程的端口号,还用于定义是否使用压缩进行传输,本例中的compress为压缩传输;

    RMTTRAIL指定写入到目标断的哪个队列;

    EXTTRAIL指定写入到本地的哪个队列;

    SQLEXEC在extract进程运行时首先运行一个SQL语句;

    PASSTHRU禁止extract进程与数据库交互,适用于Data Pump传输进程;

    REPORT定义自动定时报告;

    STATOPTIONS定义每次使用stat时统计数字是否需要重置;

    REPORTCOUNT报告已经处理的记录条数统计数字;

    TLTRACE打开对于数据库日志的跟踪日志;

    DISCARDFILE定义discardfile文件位置,如果处理中油记录出错会写入到此文件中;

    DBOPTIONS指定对于某种特定数据库所需要的特殊参数;

    TRANLOGOPTIONS指定在解析数据库日志时所需要的特殊参数,例如:对于裸设备,可能需要加入以下参数 rawdeviceoggset 0

    WARNLONGTRANS指定对于超过一定时间的长交易可以在gsserr.log里面写入警告信息,本处配置为每隔3分钟检查一次场交易,对于超过2小时的进行警告;

     

    2.6  配置目标数据库

    目标库创建GoldenGate数据库用户并授权:

    create user ogg identified by oracle default tablespace DATA_OL;

    grant connect,resource,unlimited tablespace to ogg;

    grant execute on utl_file to ogg;

    grant select any dictionary,select any table to ogg;

    grant alter any table to ogg;

    grant flashback any table to ogg;

    grant execute on DBMS_FLASHBACK to ogg;

    grant insert any table to ogg;

    grant delete any table to ogg;

    grant update any table to ogg;

     

    添加checkpoint

    然后在参数文件中输入

    GGSCHEMA ogg

    CHECKPOINTTABLE ogg.checkpoint

    2.7  配置目标端进程组

    配置管理进程

    配置复制进程

     

    REPLICAT进程参数配置说明:

    ASSUMETARGETDEFS假定两端数据结构一致使用此参数;

    SOURCEDEFS假定两端数据结构不一致,使用此参数指定源端的数据结构定义文件,该文件需要由GlodenGate工具产生。

    MAP:用于指定源端与目标端表的映射关系;

    MAPEXCLUDE用于使用在MAP中使用*匹配时排除掉指定的表;

    REPERROR定义出错以后进程的响应,一般可以定义为两种:

    ABEND,即一旦出现错误即停止复制,此为缺省配置;

    DISCARD,出现错误后继续复制,只是把错误的数据放到discard文件中。

    DISCARDFILE定义discardfile文件位置,如果处理中油记录出错会写入到此文件中;

    SQLEXEC在进程运行时首先运行一个SQL语句;

    GROUPTRANSOPS将小交易合并成一个大的交易进行提交,减少提交次数,降低系统IO消耗。

    MAXTRANSOPS将大交易拆分,每XX条记录提交一次。

     

    2.8  启动进程进行数据同步

    启动源端进程组

    启动抽取进程和传输进程:

    start extnd

    start dpend

    启动后使用info all查看进程状态,正常status应该RUNNING,显示如下:

    GGSCI (NDSCDB1) 11> info all

     

    Program     Status      Group       Lag at Chkpt  Time Since Chkpt

     

    MANAGER     RUNNING                                     

    EXTRACT     RUNNING     DPEND       00:00:00      00:15:32

    EXTRACT     RUNNING     EXTND       00:00:00      00:00:04

     

    启动目标端进程

    start repnd

    显示如下:

    到此OGG的安装配置就完成了,可以进行数据同步测试了。

  • 相关阅读:
    中海洋朗讯杯比赛总结[2014年12月]
    青理工ACM比赛总结和反思[2014年11月]
    程序员技术练级攻略
    一天能学会的计算机技术
    UVa 1597
    回滚机制
    超时和重试机制
    降级特技
    限流详解
    隔离术
  • 原文地址:https://www.cnblogs.com/jiayan666/p/14291411.html
Copyright © 2011-2022 走看看