zoukankan      html  css  js  c++  java
  • oracle 11G OGG 配置指南

     

    OGG搭建文档

    一、OGG进程介绍

    ogg一般来说有4个进程,Manager进程,Extract进程,Pump进程,Replicat进程

    1.1 Manager进程

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

    1.2 Extract进程

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

    1.3 Pump进程

    (如果trail文件落本地才会用这个进程,一般OGG都会把traile文件落地)运行在数据库源端,其作用非常简单。如果源端使用了本地trail文件,那么Pump进程就会把Trail文件以数据块的形式通过 TCP/IP协议发送到目标端,我们下面的配置都是这种方式。Pump进程本质是Extract进程的一种特殊形式,如果不使用Trail文件,那么 Extract进程在抽取完数据后,直接投递到目标端。与Pump进程相对应的叫Server Collector进程,这个进程不需要引起我们关注,因为在实际操作过程中无需对其进行任何配置,它运行在目标端,任务就是把Extract/Pump进程投递过来的数据块重新组装成Trail文件。

    1.4 Replicat进程

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

    二、搭建过程

    2.1 环境介绍

    源端:

    IP:172.16.0.30 SID:prod

    目标;

    IP: 172.16.0.40 SID:prod(实例名可以不一致)

    同步hzq用户下的所有表

    2.1 实施步骤

    2.1.1 安装ogg软件,安装方式如下(两端均执行)

    oracle用户下创建ogg目录

    mkdir /home/oracle/ogg

    [oracle@localhost ~]$ cd ogg/

    [oracle@localhost ogg]$ unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip

    [oracle@localhost ogg]$ tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar

    #设置LD_LIBRARY_PATH参数

    #export LD_LIBRARY_PATH=$ORACLE_HOME/lib

    #查看运行./ggsci命令行接口所缺是的库文件,可能会出现libnnz11.so,libclntsh.so.11.1缺失,只需要将libnnz10.so,libclntsh.so.10.1软解析到缺失的文件即可

    [oracle@localhost ogg]$ ./ggsci

    2.1.2 数据库环境准备(两端均执行)

    打开最小附加日志

    SQL>alter database add supplemental log data;

    SQL>select supplemental_log_data_min from v$database;

    创建数据库ogg用户

    SQL>CREATE USER ogg IDENTIFIED BY ogg DEFAULT TABLESPACE USERS ;

    授权ogg用户,如果对用户权限要求不严格可以直接授予dba权限,否则授予如下权限

    源端:

    GRANT CONNECT TO goldengate;

    GRANT CREATE SESSION TO goldengate;

    GRANT ALTER SESSION TO goldengate;

    GRANT RESOURCE TO goldengate;

    GRANT SELECT ANY DICTIONARY TO goldengate;

    GRANT SELECT ANY TABLE TO goldengate;

    GRANT FLASHBACK ANY TABLE TO goldengate;

    GRANT ALTER ANY TABLE TO goldengate;

    目标端:

    GRANT ALTER SESSION TO goldengate;

    GRANT CREATE SESSION TO goldengate;

    GRANT CONNECT TO goldengate;

    GRANT RESOURCE TO goldengate;

    GRANT SELECT ANY DICTIONARY TO goldengate;

    GRANT SELECT ANY TABLE TO goldengate;

    GRANT FLASHBACK ANY TABLE TO goldengate;

    GRANT INSERT ANY TABLE TO goldengate;

    GRANT UPDATE ANY TABLE TO goldengate;

    GRANT DELETE ANY TABLE TO goldengate;

    2.1.3 主备库创建mgr管理进程,添加端口7809(两端均执行)

    创建ogg子目录

    [oracle@localhost ogg]$ ./ggsci

    GGSCI>create subdirs

    GGSCI (localhost.localdomain) 10> edit params mgr

    port 7809

    GGSCI (localhost.localdomain) 11> start mgr

    GGSCI (localhost.localdomain) 11> info all

    Program Status Group Lag at Chkpt Time Since Chkpt

    MANAGER RUNNING

    mgr可以添加如下参数:

    DYNAMICPORTLIST 7820-7830, 7833, 7835 (备用端口)

    autostart er *   (自动启动所有参数)

    autorestart er *, retries 5, waitminutes 3 (自动重新启动所有参数,会尝试5次,每次等待3分钟)

    purgeoldextracts ./dirdat/*,usecheckpoints, minkeepdays 7(自动清理过期的trail文件,会保留7天)

    2.1.4 添加表级附加日志(源端)

    ggsci>dblogin userid ogg, password ogg

    ggsci>add trandata hzq.*   -- 给同步的表添加日志,用于传输

    2.1.5 添加抽取进程 (源端)

    GGSCI> add ext exta, tranlog, begin now

    exta为进程名,一般为ext开头表示是extract进程,后面可以加1-2位字符标识;begin可以是now也可以是指定的时间

    为exta进程配置本地队列,本地的trail文件以lc开头

    GGSCI> add exttrail ./dirdat/lc, ext exta, MEGABYTES 20   -- magebytes 参数:设置队列文件大小

    添加投递进程pmpa,将本地的./dirdat/lc文件传送到目标端

    GGSCI> add extract pmpa, EXTTRAILSOURCE ./dirdat/lc

    为pmpa进程配置远程队列,队列的位置是源端的主机目录,传送到目标端后命名以rc开头。

    GGSCI> add rmttrail ./dirdat/rc, ext pmpa, MEGABYTES 20  -- magebytes 参数:设置队列文件大小

    GGSCI (localhost.localdomain) 23> info all

    Program Status Group Lag at Chkpt Time Since Chkpt

    MANAGER RUNNING

    EXTRACT STOPPED EXTA 00:00:00 00:00:02

    EXTRACT STOPPED PMPA 00:00:00 00:00:01

    2.1.6 配置进程参数(源端)

    GGSCI (localhost.localdomain) 25> edit params exta     --- 配置抽取进程参数。

    EXTRACT exta

    setenv ( NLS_LANG = "AMERICAN_AMERICA.ZHS16GBK" )

    setenv (ORACLE_SID = prod)

    USERID ogg, PASSWORD ogg

    EXTTRAIL ./dirdat/lc

    dynamicresolution    ---优化参数,当同步的表过多时,为一个表单独的建立一个记录存入磁盘中,加快OGG进程。

    --GETUPDATEBEFORES

    --DDL INCLUDE ALL (DDL复制参数)

    --DDLOPTIONS ADDTRANDATA NOCROSSRENAME REPORT (ddl复制参数)

    --NOCOMPRESSDELETES

    table hzq.*;  --- 要同步的表,结尾必须要";".

    GGSCI (localhost.localdomain) 28> edit params pmpa   --- 配置投递进程参数

    extract pmpa

    setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )

    passthru

    --REPORT AT 01:59

    --reportrollover at 02:00

    rmthost 172.16.0.40, mgrport 7809, compress

    rmttrail ./dirdat/rc

    dynamicresolution   --- 优化参数,当同步的表过多时,为一个表单独的建立一个记录存入磁盘中,加快OGG进程。

    table hzq.*;     --- 要同步的表,结尾必须要";".

    启动进程(源端)

    GGSCI>start ext *

    GGSCI (localhost.localdomain) 29> info all

    Program Status Group Lag at Chkpt Time Since Chkpt

    MANAGER RUNNING

    EXTRACT RUNNING EXTA 00:00:00 00:00:04

    EXTRACT RUNNING PMPA 00:00:00 00:00:05

    2.1.7 配置目标端进程和参数(目标端)

    GGSCI> add rep repa, exttrail ./dirdat/rc, nodbcheckpoint

    GGSCI>edit param repa

    replicat repa

    setenv ( NLS_LANG = "AMERICAN_AMERICA.ZHS16GBK" )

    setenv (ORACLE_SID = prod)

    userid ogg, password ogg

    reperror default,abend    --- 定义错误处理规则;abend为回滚事务,停止进程。

    discardfile ./dirrpt/repa.dsc,append, megabytes 10    ---  magebytes 参数:设置队列文件大小

    assumetargetdefs       ---    当MAP语句指定的源表和目标表有相同结构时,使用此参数

    --allownoopupdates

    dynamicresolution      ----- 优化参数,当同步的表过多时,为一个表单独的建立一个记录存入磁盘中,加快OGG进程。

    --DDL include all

    --ddloptions report

    --DDLERROR DEFAULT IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 5

    --INSERTALLRECORDS

    map hzq.*, target hzq.*;     --- 指定映射的表

    2.1.8 初始化数据(源端)  ## 同步历史数据,OGG只能同步增量

    Select current_scn from v$database;

    如:获取的scn号为:1405088

    expdp hzq/hzq DIRECTORY=oggd DUMPFILE=hzqdb.dmp.%U LOGFILE=hzqdb.og parallel=4 FLASHBACK_SCN=1405088

    2.1.9 导入数据(目标端)

    在导入前,如果系统有job,先把目标库的:job_queue_processes设置成0

    impdp hzq/hzq DIRECTORY=oggd DUMPFILE=hzqdb.dmp.%U LOGFILE=hzqdb.og parallel=4   ---parallel: 并行度 

    2.1.10 启动进程(目标端)

    GGSCI (localhost.localdomain) 12> start replicat ggsrep , aftercsn 1405088

    GGSCI (localhost.localdomain) 11> info all

    Program Status Group Lag at Chkpt Time Since Chkpt

    MANAGER RUNNING

    REPLICAT RUNNING REPA 00:00:00 00:00:06

    在启动目标端后,源端exta可能会absence进程,可以手动再次启动。

    整理后得,原文地址:

    https://www.cnblogs.com/houzhiqing/p/5289383.html

  • 相关阅读:
    Qt CheckBox选中与未选中的使用
    Qt Excel表格宽高的设置
    VTK三维重建 使用VTK读取DICOM,并动态输出
    VC++ VTK 读取序列CT图片三维重建
    VTK 读取序列图像
    Qt QWidget提升QVTKWidget
    ITK 介绍
    Qt QMainWindow中利用多个QDockWidget构成标签页tab || tabifyDockWidget
    Qt QDockWidget属性 setFeatures、setAllowedAreas
    Qt Designer中toolBar的allowedAreas属性
  • 原文地址:https://www.cnblogs.com/qgmzhn/p/13610886.html
Copyright © 2011-2022 走看看