zoukankan      html  css  js  c++  java
  • Oracle GoldenGate配置异构数据库数据传输(oracle到sqlserer)的dml操作(带pump进程)

    实验环境:
    os01:Red Hat Enterprise Linux Server release 5.1 (32位)
    db01:oracle 10.2.0.1.0

    os02:Windows 7 (32位)
    db02:Microsoft SQL Server Enterprise Edition(10.0.1600.22)

    实验目的:
    实现两异构数据库单向dml复制(oracle到sqlserver)并配置pump进程,db01为source,db02为target。

    实验思路:

    知识准备:

    1. Manager进程是GoldenGate的控制进程,它主要作用有以下几个方面:启动、监控、重启GoldenGate的其他进程,报告错误及时间,分配数据存储空间,发布阀值报告等。
    2. Extract进程运行在数据库源端负责从源端数据表或日志中捕获数据。Extract进程利用其内在的checkpoint机制,周期性地检查并记录其读写的位置,通常是写入到本地的trail文件。这种机制是为了保证如果Extract进程终止或者操作系统宕机,我们重启Extract进程后,GoldenGate能够恢复到以前的状态,从上一个断点处继续往下运行,而不会有任何数据损失。
    3. Pump进程运行在数据库源端。如果源端使用了local trail文件,那么Pump进程就会把local Trail目录中的文件文件以数据块的形式通过TCP/IP协议发送到目标端,我们下面的配置就是这种方式。Pump进程本质是Extract进程的一种特殊形式,如果不使用local Trail文件,那么Extract进程在抽取完数据后,直接投递到目标端。pump进程非必须,但其增加了一层,可以避免由网络问题引起的Extract进程异常终止最终导致日志没有捕获的问题,待网络问题解决后重新启动pump进程,可以保证故障期间的数据修改继续传输
    4. 与Pump进程相对应的叫Server Collector进程,这个进程不需要引起我们关注,因为在实际操作过程中无需对其进行任何配置,它运行在目标端,任务就是把Extract/Pump进程投递过来的数据块重新组装成Trail文件。
    5. Replicat进程运行在目标端,是数据投递的最后一站,负责读取目标端Trail文件中的内容,并将解析其解析为DML或DDL语句,然后应用到目标数据库中。

     环境准备

    1.准备OGG软件,OGG实现了异构数据库之间的数据同步,因此会有很多版本,请选取正确的ogg版本.这里我选取的是:

    fbo_ggs_Linux_ora10g_32bit.zip
    for sqlserver 2008_32.zip

    2.保证两台机器了网络连通,分别编辑/etc/hosts和C:WindowsSystem32driversetchosts,ping机器名测试。

    3.安装OGG软件
    a)解压软件
    [oracle@linux01 oracle]$ su - oracle
    [oracle@linux01 oracle]$ mkdir $ORACLE_BASE/gg
    [oracle@linux01 gg]$ unzip fbo_ggs_Linux_ora10g_32bit.zip
    [oracle@linux01 gg]$ tar -xvf fbo_ggs_Linux_x86_ora10g_32bit.tar

    b)进入ogg简历相关目录及文件,配置主进程端口号并启动
    [oracle@linux01 gg] ./ggsci
    GGSCI (linux01) n> create subdirs
    GGSCI (linux01) n> edit param mgr
    --添加如下内容并保存
    port 7809

    --启动并检查
    GGSCI (linux01) n> start mgr
    GGSCI (linux01) n> info all

    c)在target端也执行上述安装过程

    Source端配置:
    1.开启source端归档并设置最小附加日志模式
    SQL> select log_mode from v$database;
    --如没开启需启动数据库至mount并开启归档模式
    SQL> alter database archivelog;
    SQL> select supplemental_log_data_min from v$database;
    SQL> alter database add supplemental log data;

    2.在源端添加补充日志
    GGSCI (linux01) n> dblogin userid ann password xxxxxxxx
    GGSCI (linux01) n> add trandata ann.t01

    3.添加定义文件(因是异构之间的传输,需要转换字段类型等处理需用到defgen工具生成定义文件)
    GGSCI (linux01) n> edit param defgen
    添加如下内容
    --
    defsfile ./dirdef/t01.def
    userid ann, password xxxxxxxx
    table ann.t01;
    --
    退出ggsci到ogg安装目录,生成定义文件
    [oracle@linux01 gg]$ defgen paramfile ./dirprm/defgen.prm

    将生成文件传输至windows机器的ogg目录下的dirdef目录下供复制进程使用。

    4.添加抽取进程
    GGSCI (linux01) n> add extract ext01,tranlog,begin now
    GGSCI (linux01) n> add exttrail ./dirdat/et,extract ext01
    GGSCI (linux01) n> edit param etx01
    添加一下内容并保存
    --
    EXTRACT EXT01
    USERID ann, PASSWORD xxxxxxxx
    EXTTRAIL ./dirdat/et
    DYNAMICRESOLUTION
    GETTRUNCATES
    TABLE ann.t01;
    --

    5.添加pump传输进程pump01
    GGSCI (linux01) n> add extract pump01,exttrailsource ./dirdat/et,begin now
    GGSCI (linux01) n> add rmttrail D:AppsGGdirdat t,extract pump01
    GGSCI (linux01) n> edit param pump01
    添加如下内容并保存
    --
    EXTRACT pump01
    userid ann, password xxxxxxxx
    RMTHOST ann_pc, MGRPORT 7809
    RMTTRAIL D:AppsGGdirdat t
    PASSTHRU
    TABLE ann.mv_t01;
    --


    Target端配置

    1.添加ODBC数据源,控制面板-管理工具-数据源(ODBC),添加系统DNS,取名为test01,注意选择驱动程序类型为SQL Server Native Client 10.0。

    2.在sqlserver目标库中新建和源表结构相同的表

    3.添加复制replicat进程
    GGSCI (linux01) n> dblogin sourcedb test userid sa password xxxxxxxx
    GGSCI (linux01) n> add checkpointtable dbo.ckp
    GGSCI (linux01) n> edit param ./globals
    添加如下内容
    --
    CHECKPOINTTABLE dbo.ckp
    --
    GGSCI (linux01) n> add replicat rpl01,exttrail D:AppsGGdirdat t,begin now,checkpointtable dbo.ckp
    GGSCI (linux01) n> edit param rpl01
    添加如下内容
    --
    replicat rpl01
    sourcedefs d:appsggdirdef 01.def
    targetdb test01 userid sa, password xxxxxxxx
    reperror default,discard
    discardfile d:AppsGGdirrpt pltm
    gettruncates
    MAP ann.t01, TARGET dbo.t01;
    --

    运行

    启动source端进程
    GGSCI (linux01) n> start ext01
    GGSCI (linux01) n> start pump01

    启动target端进程
    GGSCI (linux01) n> start rpl01

    至此配置完成。

    其他一些命令:

    GGSCI (linux01) n> info trandata [schema.objectname]   --查看附加日志添加情况

    GGSCI (linux01) n> info all                                            --查看进程状态

    GGSCI (linux01) n> view report  ext01                           --查看进程报错信息

    GGSCI (linux01) n> info extract|replicat *,tasks              --查看所有抽取进程信息

    (待续DDL异构环境配置)

  • 相关阅读:
    YAR 并行RPC框架研究
    Yar
    Monolog
    laravel controller:make
    eclipse自动补全的设置(自动提示)
    如何在 PHP 中处理 Protocol Buffers 数据
    JAVA printWriter中write()和println()区别
    eclipse中启动tomcat
    Ajax简介
    div
  • 原文地址:https://www.cnblogs.com/assassinann/p/golden_gate_configure.html
Copyright © 2011-2022 走看看