LinuxでのOracle GoldenGateの使用:Oracle 11gとDB2 9.7の異種環境間での双方向レプリケーション

概要

    目的

    このOracle By Example(OBE)チュートリアルでは、Oracle 11g RDBMSとDB2 Release 9.7 RDBMSを実行しているLinuxホストのペアにおけるOracle GoldenGateバージョン11.2.1.0.2のインストール、構成、管理について説明します。

    所要時間

    約3時間

    はじめに

    Oracle GoldenGateでは、1つまたは複数のターゲット・データベースに対してトランザクション・ログの読取りと変更の書込みを実行できるため、異種データベースのレプリケーションを非常に高速に実行できます。 一般的な環境では、次の5つのプロセスを使用します。

    Manager:
    ソース・ホストとターゲット・ホストの両方で他のプロセスを開始および停止します。 ExtractまたはReplicatを実行している場合は不要です。
    Initial Load:
    オプションです。 ターゲット表を1回移入するために使用します。 ソース表から直接読み取ることも、ログから読み取ることもできます。 このOBEでは、Initial Loadは使用しません。
    Extract:
    トランザクション・データを証跡ファイルに取得するために、ソースで実行します。
    Data Pump:
    オプションですが、強くお勧めします。 IPネットワーク経由で証跡ファイルをソースからターゲットに送信します。 技術的には、セカンダリのExtractです。
    Replicat:
    ターゲット・データベースにデータを提供します。 通常、Replicatはターゲットで実行します。

    シナリオ

    2台のLinuxホスト(または2つの仮想マシン)で、64ビット・バージョンのLinuxを実行しています。 1台のホスト(赤のホストhost01)は、Oracle 11gを実行しています。 もう1台のホストは(青のホストhost02)は、DB2 9.7を実行しています。 host01にはユーザー/スキーマsrc_user01があり、パスワードWelcome1が設定されています。 ユーザー/スキーマsrc_user01は、Oracleがレプリケーション・ソースの場合に使用されます。 さらに、ユーザー/スキーマtrg_user01があり、パスワードWelcome1が設定されています。 ユーザー/スキーマtrg_user01は、Oracleがレプリケーション・ターゲットの場合に使用されます。

    host02には2つのデータベースがあり、OGG_SRCはDB2がレプリケーション・ソースの場合に使用され、GGS_TRGはDB2がレプリケーション・ターゲットの場合に使用されます。 OracleとDB2の両方のソース環境で定義された3つの表(ECONOMIC_ENTITYGDP_BY_YEARGDP_GROWTH_BY_YEAR)があり、それぞれに世界経済のデータが含まれています。これらの表を、それぞれのターゲット環境にレプリケートする必要があります。

    画面のバナーの色に注意して、どのコマンドがどのホストに対して実行されるのか把握するようにしてください。 また、GGSCIコマンド、SQLコマンド、OSコマンドのいずれを入力するのか(プロンプトに表示されます)に注意してください。

    環境の概要は次のとおりです。

    ホスト名 OS SID/DB名 ユーザー パスワード 管理ポートのソース側 管理ポートのターゲット側 デフォルトのディレクトリ
    host01 Linux 64ビット ogg11r2 user01 Welcome1 7809 7909 /home/user01
    host02 Linux 64ビット orcl02 user01 Welcome1 7809 7909 /home/user01

    OracleとDB2の両方が、"標準"の場所にインストールされています。 IBM DB2は/opt/ibm/db2/V9.7にインストールされ、またOracle 11g Release 2は/u01/app/oracle/product/11.2.0/dbhome_1にインストールされています。

    赤のホスト(Oracle)に存在しているユーザー"user01"は、次のようなディレクトリ構造を持っています。

    ディレクトリ 目的
    /home/user01 デフォルトのディレクトリ
    /home/user01/oracle Oracleのレプリケーション・ソフトウェア
    /home/user01/oracle/ggs_src レプリケーション・ソースの
    Oracle GoldenGateインストール
    /home/user01/oracle/ggs_trg レプリケーション・ターゲットの
    Oracle GoldenGateインストール

    青のホスト(DB2)に存在しているユーザー"user01"は、次のようなディレクトリ構造を持っています。

    ディレクトリ 目的
    /home/user01 デフォルトのディレクトリ
    /home/user01/db2 DB2のレプリケーション・ソフトウェア
    /home/user01/db2/ggs_src レプリケーション・ソースの
    Oracle GoldenGateインストール
    /home/user01/db2/ggs_trg レプリケーション・ターゲットの
    Oracle GoldenGateインストール

    代替構成

    このOBEは、Oracle RDBMSとDB2 RDBMSの両方がインストールされている単一のホストで実行することもできます。

    環境の概要は次のとおりです。

    ホスト名 OS SID ユーザー パスワード 管理ポートのソース側 管理ポートのターゲット側 デフォルトのディレクトリ
    host01 赤/青 Linux 64ビット ogg11r2 user01 Welcome1 7809 7909 /home/user01

    単一のホスト(赤/青)に存在しているユーザー"user01"は、次のようなディレクトリ構造を持っています。

    ディレクトリ 目的
    /home/user01 デフォルトのディレクトリ
    /home/user01/db2 DB2のレプリケーション・ソフトウェア
    /home/user01/db2/ggs_src DB2のレプリケーション・ソースとして
    使用するOracle GoldenGateインストール
    /home/user01/db2/ggs_trg DB2のレプリケーション・ターゲットとして
    使用するOracle GoldenGateインストール
    /home/user01/oracle Oracleのレプリケーション・ソフトウェア
    /home/user01/oracle/ggs_src Oracleのレプリケーション・ソースとして
    使用するOracle GoldenGateインストール
    /home/user01/oracle/ggs_trg Oracleのレプリケーション・ターゲットとして
    使用するOracle GoldenGateインストール

    単一のホストで2つの環境をシミュレートする場合は、/etc/hostsファイルを変更して、host01.example.comhost02.example.comのエイリアスを作成すると便利です。 さらに、単一ホストの環境では、ユーザーuser01がsqlplusdb2の両方を実行できる必要があります。 したがって、環境変数LD_LIBRARY_PATHには、以下のようにOracleライブラリとDB2ライブラリへの参照が両方とも含まれている必要があります。

    [user01@host1 ~]$ echo $LD_LIBRARY_PATH 
    /u01/app/oracle/product/11.2.0/dbhome_1/lib:/home/db2inst1/sqllib/lib64:/home/db2inst1/sqllib/lib32

    同様に、環境変数PATHも、以下のようにOracle実行可能ファイルとDB2実行可能ファイルへの参照が両方とも含まれるように設定する必要があります。

    [user01@host1 ~]$ echo $PATH 
    /home/db2inst1/sqllib/db2tss/bin:/home/db2inst1/sqllib/misc:/home/db2inst1/sqllib/adm:/home/db2inst1/sqllib/bin:/u01/app/oracle
    /product/11.2.0/dbhome_1/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/user01/bin:/home/user01/bin
    

    ハードウェアとソフトウェアの要件

    ハードウェアとソフトウェアの要件リストは、以下のとおりです。

    ハードウェア
    • 2台のLinuxホスト: 1台はソース、もう1台はターゲットとなっています。 この例では、Oracle Enterprise Linux OEL 5.7(64ビット)を使用しています。 Windowsまたは32ビットLinuxでも、Oracle GoldenGateソフトウェアの別のバージョンが動作します。 ソースとターゲットを同じホスト上に配置することもできますが、何が起こっているのかを把握するのが概念的に難しくなります。
    ソフトウェア
    • 64ビットLinux用のOracle GoldenGate on Oracle( Oracle Software Delivery Cloud)、バージョン11.2.1.0.2、部品番号V34339-01。 これは、64ビットLinux用の部品番号です。
    • 64ビットLinux用のOracle GoldenGate for DB2 9.7( Oracle Software Delivery Cloud)、バージョン11.2.1.0.1、部品番号V32402-01。 これは、64ビットLinux用の部品番号です。
    • Oracle 11g Release 2 Database(赤のホストにインストール)
    • DB2 9.7データベース(青のホストにインストール)
    • このOBEに必要なOracleとDB2のDDLファイルおよびDMLファイル(こちらからダウンロードが可能)

    前提条件

    このチュートリアルを始める前に、以下のことを確認してください。

    • Linuxソフトウェアへのrootアクセスを設定する。(/etcへの書込みアクセス)
    • Webにアクセスしてソフトウェアとドキュメントをダウンロードする。
    • host01(赤のホスト)でSID=ogg11r2のデータベース・インスタンスを作成し、host02(青のホスト)で2つのデータベースGGS_SRCGGS_TRGを作成する。

    host01とhost02の2つのホストがあり、各ホストでOS、GGSCI、およびSQLの3つの環境プロンプトを使用します。 そのため、6つの異なる場所に入力します。 どのコマンドをどの場所に入力するのかに、特に注意してください。 誤ったコンテキストで誤ったコマンドを使用するのが、もっともよくある誤りです。

    表記規則

    指示と画面のテキストの色とフォントは、次のように解釈します。

    Some_Command
    コマンドまたは値として入力します。 例:
    ./ggsci と入力して、コマンドライン・インタプリタを開始します。
    Some_Prompt
    システムがプロンプトまたは応答としてこれに対応します。 例:
    ウェルカム・スプラッシュ・バナーの後、GGSCI (host01) 1>プロンプトでコマンドを入力できます。
    Some_Button
    画面に表示されるこのボタンをクリックします。 例:
    必要なバージョンを選択したら、「Continue」をクリックしてダウンロードを開始します。
    Some_Variable
    実際の値に置き換える変数。 例:
    プロンプトで、userid/passwordを入力します。
    Some_Filename
    ファイル名、パス、またはフォルダ/ディレクトリ。 例:
    /etcディレクトリのhostsファイルを編集します。
    Some_Code
    キーワードまたはコード要素。 例:
    初期ロードの後で、パラメータHandleCollisionsNoHandleCollisionsに変更します。

    ファイルとプロセスのネーミング規則

    ファイルとプロセスのネーミング規則が役立つことがあります。 次に、このOBEで使用している規則の例を示します。
      pxxxxhh.ext
    内訳は次のとおりです。

    p=process=
    e(xtract), p(ump), r(eplicat), i(nitial), d(efgen), s(tartup).
    xxxx=project=
    共通のプロジェクトxxxxに関連するすべてのファイル。たとえば、hr、sales、engrなどがあります。
    hh=host-to-host=
    ソースとターゲットのホスト名で示され、a=host01およびb=host02の場合、aa、ab、ba、bb。 後で説明しますが、一部のファイル名には数字を含めることができないため、数字は使用しないことをお勧めします。
    ext=extension=
    prm=parameter(dirprm/に保存)、dsc=discard、rpt=report(dirrpt/に保存)、def=definition(dirdef/に保存)、oby=obey(インストール・ディレクトリに保存)、sql=SQL(dirsql/に保存)。

1. ソフトウェアのインストール

    ソフトウェアをインストールするには、Webからzipファイルをフェッチして解凍するだけです。 Oracle GoldenGateソフトウェアをインストールするには、以下の手順を実行します。

    1.1 Oracle GoldenGateドキュメントにアクセスする

      ドキュメント・ライブラリにアクセスします。

      Webブラウザを使用して、http://www.oracle.com/technetwork/middleware/goldengate/documentation/index.htmlにアクセスします。 ドキュメントをオンラインで参照するのか、PDFまたはHTML形式でローカルのワークステーションにライブラリをダウンロードするのか、選択できます。

      こちらから日本語のドキュメントにもアクセスできます。

      View Library」をクリックします。

      Oracle Installation and Setup Guide」をクリックします。 オラクルのインストレーション・ガイドを読みます。

      ソフトウェアをインストールするための前提条件として、Oracle GoldenGateのドキュメントにアクセスしました。

    1.2 LinuxにOracle GoldenGateをインストールする

      Oracle Software Delivery Cloudからソフトウェアをコピーします。

      Webブラウザを使用して、https://edelivery.oracle.comにアクセスし、「Sign In」をクリックします。 Terms and Conditionsページで、両方の契約について「Yes」を選択し、「Continue」をクリックします。

      Media Pack Searchページで、「Product Pack = Oracle Fusion Middleware」と「Platform = Linux x86-64」を選択します。

      Go」をクリックします。

      Oracle GoldenGate on Oracle v11.2.1 Media Pack for Linux x86-64」を選択します。

      Continue」をクリックします。

      "Oracle GoldenGate V11.2.1.0.3 for Oracle 11g on Linux x86-64"の部品番号V34339-01が表示されていることを確認します。

      Download」をクリックします。

      Back」ブラウザ・ボタンをクリックします。

      Oracle GoldenGate for Non Oracle Database v11.2.1 Media Pack for Linux x86-64」を選択します。

      Oracle GoldenGate v11.2.1 for DB2 9.7 on Linux x86-64」を選択します。

      部品番号V32402-01が表示されていることを確認します。

      Download」をクリックします。

      コピーまたはFTPを使用して、V32402-01.zipファイルを青のホスト(DB2)に移動します。

      ソフトウェアをhost01(赤)のディレクトリにアンパックします。

      Oracle GoldenGateソフトウェアを受け取るインストール・ディレクトリを作成します。

      Host01 - Linux
      [user01@host01 ~]$ cd ~ 
      [user01@host01 ~]$ mkdir -p oracle/ggs_src 
      [user01@host01 ~]$ mkdir -p oracle/ggs_trg 
      [user01@host01 ~]$ cd ~/oracle/ggs_src 
      [user01@host01 ggs_src]$                                                         
      

      ダウンロードしたzipをダウンロードした場所から~/oracle/ggs_src/にコピーします。 zipを解凍して展開(抽出)します。

      Host01 - Linux
      [user01@host01 ggs_src]$ cp /stage/V34339-01.zip . 
      [user01@host01 ggs_src]$ unzip V34339-01.zip  
      Archive:  V34339-01.zip
        inflating: fbo_ggs_Linux_x64_ora11g_64bit.tar
        inflating: Oracle_GoldenGate_11.2.1.0.3_README.doc
        inflating: Oracle GoldenGate_11.2.1.0.3_README.txt
        inflating: OGG_WinUnix_Rel_Notes_11.2.1.0.3.pdf
      [user01@host01 ggs_src]$ tar -xvpf fbo_ggs_Linux_x64_ora11g_64bit.tar 
      UserExitExamples/
      UserExitExamples/ExitDemo_more_recs/
      UserExitExamples/ExitDemo_more_recs/Makefile_more_recs.HPUX
      
       ... many lines omitted for clarity ... 
      
      ulg.sql
      usrdecs.h
      zlib.txt
      [user01@host01 ggs_src]$                                                         
      

      コピー・コマンドの最後のドットに注意してください。

      GoldenGate Software Command Interface(GGSCI)を開始します。 デフォルトの空のサブディレクトリを作成します。
      重要: Oracle用のGGSCIは、LD_LIBRARY_PATH環境変数が未定義または${ORACLE_HOME}/libディレクトリを指していない場合は起動しません。

      GGSCIを起動する前に、LD_LIBRARY_PATHが正しく設定されていることを確認します。

      Host01 - Linux
      [user01@host01 ggs_src]$ ./ggsci 
      
      Oracle GoldenGate Command Interpreter for Oracle
      Version 11.2.1.0.3 14400833 OGGCORE_11.2.1.0.3_PLATFORMS_120823.1258_FBO
      Linux, x64, 64bit (optimized), Oracle 11g on Aug 23 2012 20:20:21
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      GGSCI (host01) 1> Create Subdirs 
      
      Creating subdirectories under current directory /home/user01/oracle/ggs_src
      
      Parameter files            /home/user01/oracle/ggs_src/dirprm: already exists
      Report files               /home/user01/oracle/ggs_src/dirrpt: created
      Checkpoint files           /home/user01/oracle/ggs_src/dirchk: created
      Process status files       /home/user01/oracle/ggs_src/dirpcs: created
      SQL script files           /home/user01/oracle/ggs_src/dirsql: created
      Database definitions files /home/user01/oracle/ggs_src/dirdef: created
      Extract data files         /home/user01/oracle/ggs_src/dirdat: created
      Temporary files            /home/user01/oracle/ggs_src/dirtmp: created
      Stdout files               /home/user01/oracle/ggs_src/dirout: created
      
      GGSCI (host01) 2> Exit 
      [user01@host01 ggs_src]$                                                         
      

      ディレクトリがすでに存在する場合、インストールを実行しても、そのディレクトリのコンテンツはそのままです。

      レプリケーション・ターゲット・ディレクトリ(ggs_trg)があるホストに対して、同じ手順を実行します。 ソフトウェアをターゲット・ディレクトリ(ggs_trg)にアンパックします。

      ディレクトリを、レプリケーション・ターゲット・ディレクトリから、Oracle GoldenGateソフトウェアを受け取るディレクトリに変更します。

      Host01 - Linux
      [user01@host01 ~]$ cd ~ 
      [user01@host01 ~]$ cd oracle/ggs_trg 
      [user01@host01 ggs_trg]$                                                         
      

      ダウンロードしたzipをダウンロードした場所からggs_trg/にコピーします。 zipを解凍して展開(抽出)します。

      Host01 - Linux
      [user01@host01 ggs_trg]$ cp /stage/V34339-01.zip . 
      [user01@host01 ggs_trg]$ unzip V34339-01.zip  
      Archive:  V34339-01.zip
        inflating: fbo_ggs_Linux_x64_ora11g_64bit.tar
        inflating: Oracle_GoldenGate_11.2.1.0.3_README.doc
        inflating: Oracle GoldenGate_11.2.1.0.3_README.txt
        inflating: OGG_WinUnix_Rel_Notes_11.2.1.0.3.pdf
      [user01@host01 ggs_trg]$ tar -xvpf fbo_ggs_Linux_x64_ora11g_64bit.tar 
      UserExitExamples/
      UserExitExamples/ExitDemo_more_recs/
      UserExitExamples/ExitDemo_more_recs/Makefile_more_recs.HPUX
      
       ... many lines omitted for clarity ... 
      
      ulg.sql
      usrdecs.h
      zlib.txt
      [user01@host01 ggs_trg]$                                                         
      

      GoldenGate Software Command Interface(GGSCI)を開始します。 デフォルトの空のサブディレクトリを作成します。

      Host01 - Linux
      [user01@host01 ggs_trg]$ ./ggsci 
      
      Oracle GoldenGate Command Interpreter for Oracle
      Version 11.2.1.0.3 14400833 OGGCORE_11.2.1.0.3_PLATFORMS_120823.1258_FBO
      Linux, x64, 64bit (optimized), Oracle 11g on Aug 23 2012 20:20:21
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      GGSCI (host01) 1> Create Subdirs 
      
      Creating subdirectories under current directory /home/user01/oracle/ggs_trg
      
      Parameter files            /home/user01/oracle/ggs_trg/dirprm: already exists
      Report files               /home/user01/oracle/ggs_trg/dirrpt: created
      Checkpoint files           /home/user01/oracle/ggs_trg/dirchk: created
      Process status files       /home/user01/oracle/ggs_trg/dirpcs: created
      SQL script files           /home/user01/oracle/ggs_trg/dirsql: created
      Database definitions files /home/user01/oracle/ggs_trg/dirdef: created
      Extract data files         /home/user01/oracle/ggs_trg/dirdat: created
      Temporary files            /home/user01/oracle/ggs_trg/dirtmp: created
      Stdout files               /home/user01/oracle/ggs_trg/dirout: created
      
      GGSCI (host01) 2> Exit 
      [user01@host01 ggs_trg]$                                                         
      

      ディレクトリがすでに存在する場合、インストールを実行しても、そのディレクトリのコンテンツはそのままです。 これで、ソースとターゲットの両方のGoldenGateインスタンスに対応する
      Oracle GoldenGateを、赤のホストに正常にインストールできました。

      次に、Oracle GoldenGateソフトウェアを青のホスト(DB2)にインストールする必要があります。

      青のホスト(host02)に、"user01"として接続します。

      ソフトウェアをhost02(青)のディレクトリにアンパックします。

      Oracle GoldenGateソフトウェアを受け取るインストール・ディレクトリを作成します。

      Host02 - Linux
      [user01@host02 ~]$ cd ~ 
      [user01@host02 ~]$ mkdir -p db2/ggs_src 
      [user01@host02 ~]$ mkdir -p db2/ggs_trg 
      [user01@host02 ~]$ cd ~/db2/ggs_src 
      [user01@host02 ggs_src]$                                                         
      

      ダウンロードしたzipをダウンロードした場所から~/db2/ggs_src/にコピーします。 zipを解凍して展開(抽出)します。

      Host02 - Linux
      [user01@host02 ggs_src]$ cp /stage/V32402-01.zip . 
      [user01@host02 ggs_src]$ unzip V32402-01.zip  
      Archive:  V32402-01.zip
        inflating: ggs_Linux_x64_db297_64bit.tar
        inflating: OGG_WinUnix_Rel_Notes_11.2.1.0.1.pdf
        inflating: Oracle GoldenGate 11.2.1.0.1 README.txt
        inflating: Oracle GoldenGate 11.2.1.0.1 README.doc
      [user01@host02 ggs_src]$ tar -xvpf ggs_Linux_x64_db297_64bit.tar 
      ./
      ./chkpt_db2_create.sql
      ./demo_db2_create.sql
      ./extract
      ./server
      ./sqlldr.tpl
      ./zlib.txt
      
       ... many lines omitted for clarity ... 
      
      ./UserExitExamples/ExitDemo/readme.txt
      ./freeBSD.txt
      ./convchk
      ./retrace
      ./dirprm/
      ./dirprm/jagent.prm
      [user01@host02 ggs_src]$                                                         
      

      コピー・コマンドの最後のドットに注意してください。

      GoldenGate Software Command Interface(GGSCI)を開始します。 デフォルトの空のサブディレクトリを作成します。

      ディレクトリがすでに存在する場合

      Host02 - Linux
      [user01@host02 ggs_src]$ ./ggsci 
      
      Oracle GoldenGate Command Interpreter for DB2
      Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230
      Linux, x64, 64bit (optimized), DB2 9.7 on Apr 23 2012 06:02:54
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      GGSCI (host02) 1> Create Subdirs 
      
      Creating subdirectories under current directory /home/user01/db2/ggs_src
      
      Parameter files                /home/user01/db2/ggs_src/dirprm: already exists
      Report files                   /home/user01/db2/ggs_src/dirrpt: created
      Checkpoint files               /home/user01/db2/ggs_src/dirchk: created
      Process status files           /home/user01/db2/ggs_src/dirpcs: created
      SQL script files               /home/user01/db2/ggs_src/dirsql: created
      Database definitions files     /home/user01/db2/ggs_src/dirdef: created
      Extract data files             /home/user01/db2/ggs_src/dirdat: created
      Temporary files                /home/user01/db2/ggs_src/dirtmp: created
      Stdout files                   /home/user01/db2/ggs_src/dirout: created
      
      GGSCI (host02) 2> Exit 
      [user01@host02 ggs_src]$                                                         
                              

      、インストールを実行しても、そのディレクトリのコンテンツはそのままです。

      レプリケーション・ターゲット・ディレクトリ(ggs_trg)があるホストに対して、同じ手順を実行します。 ソフトウェアをターゲット・ディレクトリ(ggs_trg)にアンパックします。

      Oracle GoldenGateソフトウェアを受け取るインストール・ディレクトリを作成します。

      Host02 - Linux
      [user01@host02 ~]$ cd ~ 
      [user01@host02 ~]$ cd db2/ggs_trg 
      [user01@host02 ggs_trg]$                                                         
      

      ダウンロードしたzipをダウンロードした場所からggs_trg/にコピーします。 zipを解凍して展開(抽出)します。

      Host02 - Linux
      [user01@host01 ggs_trg]$ cp /stage/V32402-01.zip .
      [user01@host02 ggs_trg]$ unzip V32402-01.zip  
      Archive:  V32402-01.zip
        inflating: ggs_Linux_x64_db297_64bit.tar
        inflating: OGG_WinUnix_Rel_Notes_11.2.1.0.1.pdf
        inflating: Oracle GoldenGate 11.2.1.0.1 README.txt
        inflating: Oracle GoldenGate 11.2.1.0.1 README.doc
      [user01@host01 ggs_trg]$ tar -xvpf ggs_Linux_x64_db297_64bit.tar 
      ./
      ./chkpt_db2_create.sql
      ./demo_db2_create.sql
      ./extract
      ./server
      ./sqlldr.tpl
      ./zlib.txt
      
       ... many lines omitted for clarity ... 
      
      ./UserExitExamples/ExitDemo/readme.txt
      ./freeBSD.txt
      ./convchk
      ./retrace
      ./dirprm/
      ./dirprm/jagent.prm
      [user01@host02 ggs_trg]$                                                         
      

      GoldenGate Software Command Interface(GGSCI)を開始します。 デフォルトの空のサブディレクトリを作成します。

      Host02 - Linux
      [user01@host02 ggs_trg]$ ./ggsci 
      
      Oracle GoldenGate Command Interpreter for DB2
      Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230
      Linux, x64, 64bit (optimized), DB2 9.7 on Apr 23 2012 06:02:54
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      GGSCI (host02) 1> Create Subdirs 
      
      Creating subdirectories under current directory /home/user01/db2/ggs_trg
      
      Parameter files                /home/user01/db2/ggs_trg/dirprm: already exists
      Report files                   /home/user01/db2/ggs_trg/dirrpt: created
      Checkpoint files               /home/user01/db2/ggs_trg/dirchk: created
      Process status files           /home/user01/db2/ggs_trg/dirpcs: created
      SQL script files               /home/user01/db2/ggs_trg/dirsql: created
      Database definitions files     /home/user01/db2/ggs_trg/dirdef: created
      Extract data files             /home/user01/db2/ggs_trg/dirdat: created
      Temporary files                /home/user01/db2/ggs_trg/dirtmp: created
      Stdout files                   /home/user01/db2/ggs_trg/dirout: created
      
      
      GGSCI (host02) 2> Exit 
      [user01@host02 ggs_trg]$                                                         
      

      これで、ソースとターゲットの両方のGoldenGateインスタンスに対応するOracle GoldenGateを、青のホストに正常にインストールできました。

2. データベースの作成と準備

    赤のホスト(Oracle)側では、DBCAユーティリティを使用してOGG11R2インスタンスを作成する必要があります。

    src_user01trg_user01ユーザー/スキーマを作成します。

    青のホスト(DB2)側では、GGS_SRCデータベースとGGS_TRGデータベースを作成する必要があります。

    OracleスキーマとDB2データベースの作成が完了した後は、いくつかのDDLスクリプトを実行して必須のレプリケーション・オブジェクトを作成する必要があります。

    データベース・ファイル用ディレクトリの作成

    両方のホストで、データベース・ファイル用のコンテナを作成する必要があります。

    赤のホスト(Oracle)に"root"として接続し、/u02/oradataディレクトリを作成します。
    新しく作成したディレクトリの所有権を、oracleユーザーに変更します。
    Host01 - Linux
    [root@host01 ~]# mkdir -p /u02/oradata 
    [root@host01 ~]# chown -R oracle.oinstall /u02/oradata                                 
    
    青のホスト(DB2)に"root"として接続し、/u02/db2/GGS_SRCディレクトリと/u02/db2/GGS_TRGディレクトリを作成します。
    新しく作成したディレクトリの所有権を、db2inst1ユーザーに変更します。
    Host02 - Linux
    [root@host02 ~]# mkdir -p /u02/db2/GGS_SRC 
    [root@host02 ~]# mkdir -p /u02/db2/GGS_TRG
    [root@host02 ~]# chown -R db2inst1.dasadm1 /u02/db2               
    
    DB2データベースのバックアップ用ディレクトリを作成して、バックアップ用ディレクトリの所有権をdb2inst1に変更します。
    Host02 - Linux
    [root@host02 ~]# mkdir -p /u02/db2_backups/GGS_SRC 
    [root@host02 ~]# mkdir -p /u02/db2_backups/GGS_TRG
    [root@host02 ~]# chown -R db2inst1.dasadm1 /u02/db2_backups               
    

    2.1 OracleのOGG11R2インスタンスを作成する

      赤のホスト(host01)に、"oracle"として接続します。 インスタンスが実行されていないことを確認します。 実行されている場合は、sqlplusを使用して、赤のホストで実行中のインスタンスを停止します。
      OSプロンプトで、小文字で"dbca"と入力してDBCAユーティリティを起動します。
      DBCAユーティリティの最初の画面で、「Create a Database」を選択して「Next」をクリックします。
      次のフォームで「General Purpose or Transaction Processing」を選択して「Next」をクリックします。
      その次のフォームでは、データベース名を指定するように指示されます。 ogg11r2(小文字)と入力します。 フォーム内にある2番目のフィールドには、データベース名が自動的に設定されます。 「Next」をクリックします。
      画面に次のフォームが表示されたら「Configure Enterprise Manager」の選択を解除し、「Next」をクリックします。
      Use the Same Administrative Password for All Accounts」オプションをクリックし、パスワードとして"oracle"を入力します。 "Confirm Password"フィールドに、"oracle"と入力します。 「Next」をクリックします。
      ポップアップ・ウィンドウが表示され、"oracle"のようなパスワードがパスワード複雑度ポリシーに適合していないことが警告されます。 この警告は無視し、"Do you want to continue?"という質問に対して「Yes」をクリックします。
      次の画面では、データベース・ファイルの場所を設定するように指示されます。 「Use Common Location for All Database Files」オプションをクリックし、場所として"/u02/oradata"を入力します。 「Next」をクリックします。
      次のフォームでは、データベースのリカバリに関する構成情報を提供するように指示されます。 "Specify Fast Recovery Area"ではデフォルトの場所を受け入れ、「Enable Archiving」(重要!)を選択します。 「Next」をクリックします。

      次のフォームは、サンプル・スキーマとカスタム・スクリプトをインストールする必要があるかどうかを確認するためのものなので、空きのままにしておきます。 「Next」をクリックします。
      次のフォームでは、メモリ・サイズなどの初期化パラメータを指定します。 メモリ・サイズを1024 MBに設定し、「Use Automatic Memory Management」を選択します。 「Character Sets」タブをクリックし、「Use Unicode」を選択します。 「Next」をクリックします。

      次のフォームはデータベース記憶域に関係していますが、変更する項目はありません。 デフォルト値を受け入れて、「Next」をクリックします。
      "Create Database"でデフォルトのティックを受け入れ、「Finish」をクリックします。
      確認フォームで、「Ok」をクリックします。

      データベース作成の操作が開始されます。 しばらくすると画面に"Database Configuration Feedback"ページが表示され、データベースが正しく設定されたどうかが示されます。
      Exit」をクリックします。

      すべてのユーザーがOracle REDOログを読み取れるように、REDOログのファイルが設定されていることを確認します。 Oracle GoldenGateソフトウェアはユーザーuser01のもとで実行されるので、このユーザーはOracle REDOログにアクセスできる必要があります。 ディレクトリを/u02/oradata/ogg11r2に変更し、chmodコマンドを使用してすべてのユーザーがREDOログを読み取れるようにファイルを設定します。
      Host01 - Linux
      [oracle@host01 ~] cd /u02/oradata/ogg11r2/
      [user01@host01 ~]$ ls -l 
      total 1725748
      -rw-r-----. 1 oracle oinstall   9781248 Oct 15 10:50 control01.ctl
      -rw-r-----. 1 oracle oinstall  52429312 Oct 14 15:04 redo01.log
      -rw-r-----. 1 oracle oinstall  52429312 Oct 15 02:00 redo02.log
      -rw-r-----. 1 oracle oinstall  52429312 Oct 15 10:48 redo03.log
      -rw-r-----. 1 oracle oinstall 754982912 Oct 15 10:40 sysaux01.dbf
      -rw-r-----. 1 oracle oinstall 754982912 Oct 15 10:46 system01.dbf
      -rw-r-----. 1 oracle oinstall  30416896 Oct 14 23:04 temp01.dbf
      -rw-r-----. 1 oracle oinstall  78651392 Oct 15 10:46 undotbs01.dbf            
      -rw-r-----. 1 oracle oinstall   5251072 Oct 15 05:15 users01.dbf
      [oracle@host01 ogg11r2]$ chmod +r *.log
      [oracle@host01 ogg11r2]$ ls -l
      total 1725748
      -rw-r-----. 1 oracle oinstall   9781248 Oct 15 10:50 control01.ctl
      -rw-r--r--. 1 oracle oinstall  52429312 Oct 14 15:04 redo01.log
      -rw-r--r--. 1 oracle oinstall  52429312 Oct 15 02:00 redo02.log
      -rw-r--r--. 1 oracle oinstall  52429312 Oct 15 10:50 redo03.log
      -rw-r-----. 1 oracle oinstall 754982912 Oct 15 10:50 sysaux01.dbf
      -rw-r-----. 1 oracle oinstall 754982912 Oct 15 10:46 system01.dbf
      -rw-r-----. 1 oracle oinstall  30416896 Oct 14 23:04 temp01.dbf
      -rw-r-----. 1 oracle oinstall  78651392 Oct 15 10:50 undotbs01.dbf
      -rw-r-----. 1 oracle oinstall   5251072 Oct 15 05:15 users01.dbf
      [oracle@oraol62 ogg11r2]$
                                                               
      

      ユーザーuser01がOracle REDOログのファイルにアクセスできることを確認します。 ターミナル・ウィンドウを開き、user01として赤のホストに接続し、lsコマンドを使用して/u02/oradata/ogg11r2ディレクトリのコンテンツを表示します。

      次に、Oracle Listner(リスナーがまだ作成されていない場合)を設定し、新しく作成されたデータベース用のTNSエントリを設定する必要があります。 OSプロンプトでnetcaと入力して、NETCAアプリケーションを起動します。
      画面に、Oracle Net Configuration Assistantウィザードのダイアログ・ウィンドウが表示されます。

      Listener configuration」を選択し、「Next」をクリックします。 Addオプションだけが利用可能な状態で、Reconfigure、Delete、Renameなどの他のオプションがグレーアウト表示になっている場合は、リスナーがまだ作成されていないことを意味しています。 この状況では、利用可能なただ1つのオプションである「Add」を選択し、「Next」をクリックします。


      一方、すべてのオプションが利用できる状態になっている場合(リスナーがすでに設定されている場合)は、「Reconfigure」をクリックし、LISTENERという名前のリスナーが設定されていることを確認します。

      ドロップダウン・リスト・ボックスにLISTENERという名前のリスナーが表示されている場合は、「Back」ボタンをクリックして最初の画面に戻ると、Local Net Service Name Configurationオプションを選択できる状態になります。

      リスナーLISTENERが存在しない場合は、先へ進んでリスナーを作成します。 リスナーLISTENERが存在している場合は、Local Net Service Name Configurationオプションを選択するところまで手順をスキップします。

      Listener Configuration」をクリックし、続いて「Add」をクリックします。 Listener nameフィールドにLISTENERと入力し、「Next」をクリックします。

      リスナー・プロトコルとして「TCP」を選択し、「Next」をクリックします。

      LISTENERという名前のリスナーによって使用されるデフォルトのポート番号(1521)を受け入れます。 「Next」をクリックします。

      別のリスナーを作成するかどうかを確認するオプションが表示されるので、デフォルト・オプション(No)を受け入れます。 「Next」をクリックします。

      最初の画面に戻り、Local Net Service Name Configurationオプションを選択できる状態になります。 「Next」をクリックします。

      Add」を選択して、新しいネット・サービス名を作成します。 「Next」をクリックします。

      新しいネット・サービス名として、ogg11r2を入力します。 「Next」をクリックします。

      ogg11r2によって使用されるプロトコルとして、「TCP」を選択します。 「Next」をクリックします。

      ネット・サービス名ogg11r2に対応するホスト名として、host01を入力します。 デフォルトのTCP/IPポート番号(1521)を受け入れます。 「Next」をクリックします。

      デフォルト・オプション(No, do not test)を受け入れて、データベースのテストをスキップします。 「Next」をクリックします。

      新しいネット・サービス名のogg11r2を受け入れます。 「Next」をクリックします。

      別のネット・サービス名は設定しないので、デフォルト・オプション(No)を受け入れて、「Next」をクリックします。

      Net Service Name Configurationウィザードを完了します。 「Next」をクリックし、続いて「Finish」をクリックして構成ウィザードを終了します。

      "oracle"アカウントからログアウトします。

    2.2 DB2のデータベースGGS_SRCGGS_TRGを作成する

      青のホスト(host02)に、"db2inst1"として接続します。
      OSプロンプトで、小文字で"db2cc &"と入力してControl Centerユーティリティを起動します。
      "Control Center"画面が表示されるので、「Advanced View」を選択します。
      All Systems」ツリーを展開して"Databases"ノードを表示します。
      Databases」ノードを右クリックしてポップアップ・ウィンドウを表示し、「Create Database」→「Standard」を選択します。
      "Create Database Wizard"のフォームが表示されます。 Database Nameフィールドに"GGS_SRC"、Aliasフィールドに"GGS_SRC"、Commentフィールドに"DB2 Replication Source DB"と入力します。 「Next」をクリックします。

      次の"Specify where to store your data"フォームで、「Use the database path as a storage path」の選択を解除し、「Add」ボタンをクリックします。
      "Add storage path"フォームが表示されます。 ディレクトリ名として、/u02/db2/GGS_SRCを入力します。「Ok」をクリックして"Specify where to store your data"フォームに戻り、続いて「Next」をクリックします。

      "Specify the locale for this database"フォームが表示されます。 デフォルトのオプションを受け入れ、「Next」をクリックします。
      データベース作成の各オプションを再確認し、「Finish」をクリックします。
      前記の手順をもう一度実行して、2番目のデータベースGGS_TRGを作成します。
      Databases」ノードを右クリックしてポップアップ・ウィンドウを表示し、「Create Database」→「Standard」を選択します。
      "Create Database Wizard"のフォームが表示されます。 Database Nameフィールドに"GGS_TRG"、Aliasフィールドに"GGS_TRG"、Commentフィールドに"DB2 Replication Target DB"と入力します。 「Next」をクリックします。

      次の"Specify where to store your data"フォームで、「Use the database path as a storage path」の選択を解除し、「Add」ボタンをクリックします。
      "Add storage path"フォームが表示されます。 ディレクトリ名として、/u02/db2/GGS_TRGを入力します。「Ok」をクリックして"Specify where to store your data"フォームに戻り、続いて「Next」をクリックします。

      "Specify the locale for this database"フォームが表示されます。 デフォルトのオプションを受け入れ、「Next」をクリックします。
      データベース作成の各オプションを再確認し、「Finish」をクリックします。
      これで、2つのデータベースの作成が完了しました。 Control Centerで、All Systemsツリーの「Database」ノードをクリックします。 GGS_SRC GGS_TRGのエントリが表示されます。


      重要! 作成した2つのデータベースは、DB2によって自動的に"バックアップ待機"モードに入ります。
      つまり、バックアップを実行するまでは、これらのデータベースに接続することができません。Control Centerを使用すると、2つのデータベースGGS_SRCGGS_TRGをバックアップできます。
      以前に作成したディレクトリ(/u02/db2_backups/GGS_SRC/u02/db2_backups/GGS_SRC)を使用して、データベースのバックアップを保存します。

      Control Centerで、「All Databases」ノードを展開し、「GGS_SRC」を選択します。 選択された状態の「GGS_SRC」を右クリックして、ドロップダウン・リスト・ボックスを表示します。 「Backup...」をクリックします。


      ADB2バックアップのデフォルト・オプションを受け入れ、「Next」をクリックします。


      Media Typeのデフォルト設定(File System)を受け入れ、「Add」をクリックします。
      Path Browserダイアログ・ウィンドウが表示されます。 /u02/db2_backups/GGS_SRCディレクトリへと移動し「Ok」をクリックします。


      Backup Wizardの最後のページにあるすべてのデフォルト設定を受け入れ、「Finish」をクリックします。
      データベースのバックアップが開始されます。


      前記の手順をもう一度実行して、GGS_TRGデータベースをバックアップします。

      DB2に接続するOracle GoldenGate Extractのプロセスを実行するユーザーには、接続先のデータベースを操作するためのDBADM権限が付与されている必要があります。
      DB2のレプリケーション・ソースとして使用するデータベースGGS_SRCは、ユーザーuser01によってアクセスされます。 ユーザーuser01には、DBADM権限を付与する必要があります。
      Control Centerで、「GGS_SRC」データベース・ノードを右クリックしてポップアップ・ウィンドウを表示し、「Authorities...」をクリックします。 Database Authoritiesウィンドウが表示されるので、「Add User...」をクリックし、ドロップダウン・リスト・ボックスから「user01」を選択します。
      DBADM権限の下にあるドロップダウン・リスト・ボックスをクリックし、「Yes」を選択してDBADM権限をユーザーuser01に付与します。

      "db2inst1"アカウントからログアウトします。

    2.3 SQLスクリプトをダウンロードしてアンパックする

      赤のホスト(Oracle)と青のホスト(DB2)の両方で、このOBE用のSQLスクリプトを含むzip fileをダウンロードします。
      また、デフォルトのディレクトリの下にddlディレクトリを作成し、OBE_DDL_files.zipをそこに展開します。
      この例では、OBE_DDL_files.zipファイルを/tmpディレクトリにダウンロードします。
      Host01 - Linux
      [user01@host01 ~] cd ~ 
      [user01@host01 ~]$ mkdir ddl 
      [user01@host01 ~]$ cd ddl 
      [user01@host01 ddl]$ unzip /tmp/OBE_DDL_files.zip 
      Archive:  /tmp/OBE_DDL_files.zip
        inflating: oracle_table_creation.sql
        inflating: db2_table_creation.sql
        inflating: drop_tables.sql
        inflating: economic_entity.sql
        inflating: gdp_by_year.sql
        inflating: gdp_by_year_2008.sql
        inflating: gdp_by_year_2009.sql
        inflating: gdp_by_year_2010.sql
        inflating: gdp_growth_by_year.sql
        inflating: gdp_growth_by_year_2008.sql
        inflating: gdp_growth_by_year_2009.sql
        inflating: gdp_growth_by_year_2010.sql
                                                                                     
      

      同じ手順を、青のホストに対してもう一度実行します。

      Host02 - Linux
      [user01@host02 ~] cd ~ 
      [user01@host02 ~]$ mkdir ddl 
      [user01@host02 ~]$ cd ddl 
      [user01@host02 ddl]$ unzip /tmp/OBE_DDL_files.zip 
      Archive:  /tmp/OBE_DDL_files.zip
        inflating: oracle_table_creation.sql
        inflating: db2_table_creation.sql
        inflating: drop_tables.sql
        inflating: economic_entity.sql
        inflating: gdp_by_year.sql
        inflating: gdp_by_year_2008.sql
        inflating: gdp_by_year_2009.sql
        inflating: gdp_by_year_2010.sql
        inflating: gdp_growth_by_year.sql
        inflating: gdp_growth_by_year_2008.sql
        inflating: gdp_growth_by_year_2009.sql
        inflating: gdp_growth_by_year_2010.sql
                                                                                     
      

3. 環境の設定

    環境を設定するには、ASCIIファイルを編集してOSユーティリティを実行します。 環境を設定するには、以下の手順を実行します。

    3.1 赤のホストでOracle 11g Databaseを設定する

      このセクションでは、SQL*Plusをsysdbaとして使用する必要があります。

      host01で、LOG_MODEARCHIVELOGに設定されていることを確認します。

      Host01 - Linux
      [user01@host01 ~]$ sqlplus / as sysdba 
      SQL*Plus: Release 11.2.0.3.0 Production on Mon Sep 17 17:19:01 2012
      Copyright (c) 1982, 2011, Oracle.  All rights reserved.
      
      Connected to:
      Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
      With the Partitioning, OLAP, Data Mining and Real Application Testing options
      
      SQL> SELECT log_mode FROM v$database; 
      
      LOG_MODE
      ------------
      ARCHIVELOG
      
      SQL>                                                                          
      

      結果はARCHIVELOGになるはずです。 これは、DBCAを使用してデータベースを作成する際に、ARCHIVELOGモードを指定したからです。 データベースをARCHIVELOGモードで作成していなかった場合には、次の操作を行います。

      Host01 - Linux
      LOG_MODE
      ------------
      NOARCHIVELOG
      
      SQL> shutdown immediate 
      Database closed.
      Database dismounted.
      ORACLE instance shut down.
      SQL> startup mount 
      ORACLE instance started.
      
      Total System Global Area 3340451840 bytes
      Fixed Size                  2232960 bytes
      Variable Size            1811942784 bytes
      Database Buffers         1509949440 bytes
      Redo Buffers               16326656 bytes
      Database mounted.
      SQL> ALTER DATABASE ARCHIVELOG; 
      Database altered.
      
      SQL> ALTER DATABASE OPEN; 
      Database altered.
      
      SQL> SELECT log_mode FROM v$database; 
      
      LOG_MODE
      ------------
      ARCHIVELOG
      
      SQL>                                                                          
      

      サプリメンタル・ロギングと強制ロギングが正しく設定されていることを確認します。

      Host01 - Linux
      SQL> SELECT force_logging, supplemental_log_data_min FROM v$database;
      
      FOR SUPPLEME
      --- --------
      YES YES
      
      SQL>                                                                          
      

      結果は両方ともYESになるはずです。 その場合、次の手順にスキップします。 いずれかの結果がNOの場合は、以下のコマンドを入力します。

      Host01 - Linux
      FOR SUPPLEME
      --- --------
      NO  NO
      
      SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; 
      Database altered.
      
      SQL> ALTER DATABASE FORCE LOGGING; 
      Database altered.
      
      SQL> ALTER SYSTEM SWITCH LOGFILE; 
      System altered.
      
      SQL> SELECT force_logging, supplemental_log_data_min FROM v$database;
      
      FOR SUPPLEME
      --- --------
      YES YES
      
      SQL>                                                                          
      

      コマンドを2回入力しても問題はありません。

      host01でOracle GoldenGate管理者とユーザー/スキーマの所有者を作成します。

      実際の環境では、ユーザー/スキーマの所有者にはより多くの権限が割り当てられており、管理者にはより少ない権限が割り当てられていることが多いです。 DBMS_GOLDENGATE_AUTHパッケージはこのOBEでは必要ありませんが、さらに高度な設定でよく使用されるため、ここでこのパッケージを確認することをお勧めします。 不思議に思われるかもしれませんが、高度なシナリオではDBAロールは十分でないため、DBMS_GOLDENGATE_AUTHパッケージを実行する必要があります。 DBMS_GOLDENGATE_AUTHコマンドの入力時に、EXECの後ろのすべての文字列にスペースや改行を含めないでください。

      Host01 - Linux
      SQL> CREATE USER src_user01 IDENTIFIED BY Welcome1; 
      User created.
      
      SQL> CREATE USER trg_user01 IDENTIFIED BY Welcome1; 
      User created.
      
      SQL> CREATE USER oggadm IDENTIFIED BY Welcome1; 
      User created.
      
      SQL> GRANT CONNECT, RESOURCE, UNLIMITED TABLESPACE TO src_user01; 
      Grant succeeded.
      SQL> GRANT CONNECT, RESOURCE, UNLIMITED TABLESPACE TO trg_user01; 
      Grant succeeded.
      SQL> GRANT dba TO oggadm; 
      Grant succeeded.
      
      SQL> EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE (grantee=>'OGGADM',privile
      ge_type=>'capture',grant_select_privileges=>true, do_grants=>TRUE); 
      PL/SQL procedure successfully completed.
      
      SQL> exit 
      [user01@host01 ~]$                                                             
      

      host01のデータベースは、Oracle GoldenGateをサポートするように設定されています。 赤のホストでは、1人のユーザーと管理者がプロビジョニングされています。

    3.2 青のホストでDB2 9.7データベースを設定する

      このセクションでは、DB2コマンドライン・ユーティリティdb2を使用する必要があります。

      host02で、GGS_SRCデータベースに対して、LOGRETAIN構成パラメータがRECOVERYに設定されていること、およびUSEREXIT構成パラメータがONに設定されていることを確認します。

      青のホストにdb2inst1として接続し、データベース・パラメータを変更します。 ユーザーuser01は、SYSADM権限が付与されない限り、データベース・パラメータを変更することができません。

      Host02 - Linux
      [db2inst1@host02 ~]$ db2 get db cfg for ggs_src | grep -i logretain 
       Log retain for recovery enabled             (LOGRETAIN) = OFF
      [db2inst1@host02 ~]$ db2 get db cfg for ggs_src | grep -i userexit 
       User exit for logging enabled                (USEREXIT) = OFF
      [db2inst1@host02 ~]$ db2 update db cfg for ggs_src using logretain recovery
      [db2inst1@host02 ~]$ db2 update db cfg for ggs_src using userexit on [db2inst1@host02 ~]$ db2 get db cfg for ggs_src | grep -i logretain Log retain for recovery enabled (LOGRETAIN) = RECOVERY First log archive method (LOGARCHMETH1) = LOGRETAIN
      [db2inst1@host02 ~]$ db2 get db cfg for ggs_src | grep -i userexit User exit for logging enabled (USEREXIT) = ON First log archive method (LOGARCHMETH1) = USEREXIT [db2inst1@host02 ~]$  

    3.3 スタートアップ・ファイルとManagerを作成する

      任意のテキスト・エディタを使用して、host01(赤)のOracle GoldenGateインストール・ディレクトリにGLOBALSファイルを作成します。

      名前の前に"./"を追加すると、GGSCIを使ってGLOBALSファイルを作成したり編集したりできます。 例:
      GGSCI> Edit Param ./GLOBALS
      これを適用する場合を除き、GGSCIを終了して再起動する必要があります。つまり、GGSCIを初めて開始する前にGGSCIを使わずに編集することもできます。

      GLOBALSファイルの名前はすべて大文字にする必要があります。また、チェックポイント表のスキーマと名前を定義する1行(および--comments)のみ含まれます。 任意のスキーマと名前を使用できます。 vigeditなどの任意のテキスト・エディタを使用できます。

      Host01 - Linux
      [user01@host01 ~]$ cd ~/oracle/ggs_trg
      [user01@host01 ggs_trg]$ vi GLOBALS
      
      CheckpointTable oggadm.oggchkpt 
      
      [user01@host01 ggs_trg]$                                                       
      

      チェックポイント表はReplicatでのみ使用されるため、ソースのOracle GoldenGateインスタンス(ggs_src)でチェックポイント表を作成する必要はありません。

      青のホスト(host02)で、レプリケーション・ターゲットのOracle GoldenGateインストール・ディレクトリ(ggs_trg)に、GLOBALSファイルを作成します。

      Host02 - Linux
      [user01@host02 ~]$ cd ~/db2/ggs_trg
      [user01@host02 ggs_trg]$ vi GLOBALS
      
      CheckpointTable user01.oggchkpt 
      
      [user01@host02 ggs_trg]$                                                       
      

      GLOBALSファイルを変更した場合は、GGSCIを再起動する必要があります。

      host01(赤)のOracle GoldenGateインストール・ディレクトリに、オプションのstartup.oby(Obey)ファイルを作成します。

      以下は、GGSCIの開始時にほぼ毎回入力するGGSCIコマンドです。これらのコマンドはセッション間で保持されず、何度も入力する必要があるため、スタートアップobeyファイルを作成しておくと便利です。

      定期的にログインする複数の異なるデータベースやスキーマがある場合は、startup01.obystartup02.obystartup03.obyなどのようにできます。 これについては、後で、プロセス・ファイルのネーミング規則で再度説明します。

      Host01 - Linux
      [user01@host01 ~] cd ~/oracle/ggs_src
      [user01@host01 ggs_src]$ vi startup.oby
      DBLogin UserID oggadm@ogg11r2, Password Welcome1
      Start Mgr
      Info Mgr
      Info CheckpointTable
      Set Editor gedit 
      
      [user01@host01 ggs_src]$                                                       
      

      レプリケーション・ターゲット・ディレクトリ(ggs_trg)で、前記のOBEYファイルに関する手順をもう一度実行します。

      Host01 - Linux
      [user01@host01 ~]$ cd ~/oracle/ggs_trg
      [user01@host01 ggs_trg]$ vi startup.oby
      DBLogin UserID oggadm@ogg11r2, Password Welcome1
      Start Mgr
      Info Mgr
      Info CheckpointTable
      Set Editor gedit 
      
      [user01@host01 ggs_trg]$                                                       
      
      DBLogin:
      指定のuserid@SID/passwordを使用してDBに接続します。 曖昧さがない場合は、@SIDはオプションです。
      Start Mgr:
      Managerがすでに開始されている場合、再度開始しようとしても問題ありません。 これはセッション間で保持されます。
      Info Mgr:
      Managerが正常に開始されたかどうか、および正常に開始された場合に使用されているポート番号をレポートします。
      Info CheckpointTable:
      チェックポイント表(Replicatで使用される)が検出されたかどうかをレポートします。
      Set Editor:
      デフォルトはviです。 このデフォルトをgeditなどのGUIエディタに一時的に変更できます。

      青のホスト(host02)において、両方のOracle GoldenGateインストール・ディレクトリ(ggs_srcggs_trg)でオプションのstartup.oby(Obey)ファイルを作成します。

      Host02 - Linux
      [user01@host02 ~]$ cd ~/db2/ggs_src
      [user01@host02 ggs_src]$ vi startup.oby
      DBLogin SourceDb ggs_src, UserID user01, Password Welcome1
      Start Mgr
      Info Mgr
      Info CheckpointTable
      Set Editor gedit 
      
      [user01@host02 ggs_src]$                                                       
      

      レプリケーション・ターゲット・ディレクトリ(ggs_trg)に対して、前記と同じ手順をもう一度実行します。

      Host02 - Linux
      [user01@host02 ~]$ cd ~/db2/ggs_trg
      [user01@host02 ggs_trg]$ vi startup.oby
      DBLogin SourceDb ggs_trg, UserID user01, Password Welcome1
      Start Mgr
      Info Mgr
      Info CheckpointTable
      Set Editor gedit 
      
      [user01@host02 ggs_trg]$                                                       
      

      host01のdirprm/にManagerパラメータ(mgr.prm)ファイルを作成します。

      GGSCIを開始します。 拡張子のないファイルを編集します。 2行を追加します。

      Host01 - Linux
      [user01@host01 ~]$ cd ~/oracle/ggs_src
      [user01@host01 ggs_src]$ ./ggsci 
      Oracle GoldenGate Command Interpreter for Oracle
      Version 11.2.1.0.3 14400833 OGGCORE_11.2.1.0.3_PLATFORMS_120823.1258_FBO
      Linux, x64, 64bit (optimized), Oracle 11g on Aug 23 2012 20:20:21
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.   
      
      GGSCI (host01) 1> Edit Param mgr
      Port 7809
      PurgeOldExtracts ./dirdat/*, UseCheckpoints 
      
      GGSCI (host01) 2> Info mgr 
      Manager is DOWN!
      
      GGSCI (host01) 3> exit                                               
      [user01@host01 ggs_src]$                        
      
      注: 上記を正しく実行すると、GGSCIによって自動的に拡張子.prmが追加されて、ファイルがdirprm/ディレクトリに保存されます。 ユーザーが誤って拡張子を追加した場合は、GGSCIによってファイル名が大文字に変換され、ファイルがインストール・ディレクトリに保存されて実質的に使用できなくなります。

      ggs_trgディレクトリに、レプリケーション・ターゲット・インスタンス用のManagerパラメータ・ファイルを作成します。

      Host01 - Linux
      [user01@host01 ggs_src]$ cd ~/oracle/ggs_trg
      [user01@host01 ggs_trg]$ ./ggsci 
      Oracle GoldenGate Command Interpreter for Oracle
      Version 11.2.1.0.3 14400833 OGGCORE_11.2.1.0.3_PLATFORMS_120823.1258_FBO
      Linux, x64, 64bit (optimized), Oracle 11g on Aug 23 2012 20:20:21
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.   
      
      GGSCI (host01) 1> Edit Param mgr
      Port 7909
      PurgeOldExtracts ./dirdat/*, UseCheckpoints 
      
      GGSCI (host01) 2> Info mgr 
      Manager is DOWN!
      
      GGSCI (host01) 3> exit                                                 
      [user01@host01 ggs_trg]$
      

      青のホスト(host02)において、レプリケーション・ソース・ディレクトリとレプリケーション・ターゲット・ディレクトリの両方で、dirprm/にManagerパラメータ(mgr.prm)ファイルを作成します。

      Host02 - Linux
      [user01@host02 ~]$ cd ~/db2/ggs_src 
      [user01@host02 ggs_src]$ ./ggsci 
      Oracle GoldenGate Command Interpreter for DB2
      Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230
      Linux, x64, 64bit (optimized), DB2 9.7 on Apr 23 2012 06:02:54
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      GGSCI (host02) 1> Edit Param mgr Port 7809 PurgeOldExtracts ./dirdat/*, UseCheckpoints GGSCI (host02) 2> Info mgr Manager is DOWN! GGSCI (host02) 3> [user01@host01 ggs_src]$  

      レプリケーション・ターゲットに対しても、同様の操作を実行します。

      Host02 - Linux
      [user01@host02 ggs_src]$ cd ~/db2/ggs_trg 
      [user01@host02 ggs_trg]$ ./ggsci 
      Oracle GoldenGate Command Interpreter for DB2
      Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230
      Linux, x64, 64bit (optimized), DB2 9.7 on Apr 23 2012 06:02:54
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      
      GGSCI (host02) 1> Edit Param mgr
      Port 7909
      PurgeOldExtracts ./dirdat/*, UseCheckpoints 
      
      GGSCI (host02) 2> Info mgr 
      Manager is DOWN!
      
      GGSCI (host02) 3>                                                              
      [user01@host01 ggs_trg]$                            
      

      赤のホストで、Obeyファイルを使用して、レプリケーション・ソース・インスタンスに対応するManagerを起動します。 または、GGSCIを開始するたびに各行を入力することもできます。

      Host01 - Linux
      [user01@host01 ~]$ cd ~/oracle/ggs_src
      [user01@host01 ggs_src]$ ./ggsci 
      Oracle GoldenGate Command Interpreter for Oracle
      Version 11.2.1.0.3 14400833 OGGCORE_11.2.1.0.3_PLATFORMS_120823.1258_FBO
      Linux, x64, 64bit (optimized), Oracle 11g on Aug 23 2012 20:20:21
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      GGSCI (host01) 1> Obey startup.oby 
      
      GGSCI (host01) 2> DBLogin UserID oggadm@ogg11r2, Password Welcome1
      Successfully logged into database.
      
      GGSCI (host01) 3> Start Mgr
      Manager started.
      
      GGSCI (host01) 4> Info Mgr
      Manager is running (IP port host01.example.com.7809).
      
      GGSCI (host01) 5> Info CheckpointTable
      No checkpoint table specified, using GLOBALS specification (oggadm.oggchkpt)... 
      Checkpoint table oggadm.oggchkpt does not exist. GGSCI (host01) 6> Set Editor gedit GGSCI (host01) 7> exit [user01@host01 ggs_src]$  

      レプリケーション・ターゲット・インスタンスに対応するManagerを起動します。

      Host01 - Linux
      [user01@host01 ggs_src]$ cd ~/oracle/ggs_trg 
      [user01@host01 ggs_trg]$ ./ggsci 
      Oracle GoldenGate Command Interpreter for Oracle
      Version 11.2.1.0.3 14400833 OGGCORE_11.2.1.0.3_PLATFORMS_120823.1258_FBO
      Linux, x64, 64bit (optimized), Oracle 11g on Aug 23 2012 20:20:21
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      GGSCI (host01) 1> Obey startup.oby 
      
      GGSCI (host01) 2> DBLogin UserID oggadm@ogg11r2, Password Welcome1
      Successfully logged into database.
      
      GGSCI (host01) 3> Start Mgr
      Manager started.
      
      GGSCI (host01) 4> Info Mgr
      Manager is running (IP port host01.example.com.7909).
      
      GGSCI (host01) 5> Info CheckpointTable
      
      No checkpoint table specified, using GLOBALS specification (oggadm.oggchkpt)...    
      Checkpoint table oggadm.oggchkpt does not exist.
      
      GGSCI (host01) 6> Set Editor gedit
      
      GGSCI (host01) 7> exit                                                           
      [user01@host01 ggs_trg]$       
      

      青のホスト(host02)で、Obeyファイルを使用して、レプリケーション・ソースに対応するManagerを起動します。

      重要: 2つの環境をシミュレートする1台のホストでこのOBEを実行している場合は、最初に、2つのOracleインスタンスのそれぞれに対応するOracle GoldenGate Managerプロセスを停止する必要があります(/home/user01/oracle/ggs_srcディレクトリと/home/user01/oracle/ggs_trgディレクトリ)。 2台の異なるホストでこのOBEを実行している場合は、赤のホスト側で2つのManagerプロセスを停止する必要はありません。

      Host02 - Linux
      [user01@host02 ~]$ cd ~/db2/ggs_src 
      [user01@host02 ggs_src]$ ./ggsci
      Oracle GoldenGate Command Interpreter for DB2
      Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230
      Linux, x64, 64bit (optimized), DB2 9.7 on Apr 23 2012 06:02:54
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      GGSCI (host02) 1> Obey startup.oby 
      
      
      GGSCI (host02) 2> DBLogin SourceDb ggs_src, UserID user01, Password Welcome1
      Successfully logged into database.
      
      GGSCI (host02) 3> Start Mgr
      Manager started.
      
      GGSCI (host02) 4> Info Mgr
      Manager is running (IP port host02.example.com.7809).
      
      GGSCI (host02) 5> Info CheckpointTable
      
      No checkpoint table specified, using GLOBALS specification (user01.oggchkpt)...
      Checkpoint table user01.oggchkpt does not exist. GGSCI (host02) 6> Set Editor gedit GGSCI (host02) 7> exit [user01@host02 ggs_src]$  

      青のホスト(host02)で、Obeyファイルを使用して、レプリケーション・ターゲットに対応するManagerを起動します。

      Host02 - Linux
      [user01@host02 ggs_src]$ cd ~/db2/ggs_trg 
      [user01@host02 ggs_trg]$ ./ggsci
      Oracle GoldenGate Command Interpreter for DB2
      Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230
      Linux, x64, 64bit (optimized), DB2 9.7 on Apr 23 2012 06:02:54
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      GGSCI (host02) 1> Obey startup.oby 
      
      
      GGSCI (host02) 2> DBLogin SourceDb ggs_trg, UserID user01, Password Welcome1
      Successfully logged into database.
      
      GGSCI (host02) 3> Start Mgr
      Manager started.
      
      GGSCI (host02) 4> Info Mgr
      Manager is running (IP port host02.example.com.7909).
      
      GGSCI (host02) 5> Info CheckpointTable
      
      No checkpoint table specified, using GLOBALS specification (user01.oggchkpt)...    
      Checkpoint table user01.oggchkpt does not exist.
      
      GGSCI (host02) 6> Set Editor gedit
      
      GGSCI (host02) 7>  exit                                                           
      [user01@host02 ggs_trg]$     
      

      グローバル・ファイルとスタートアップ・ファイルがすべて作成されると、バックグラウンドのManagerプロセスが開始されます。 以下のコマンドを入力すると、どのプロセスが実行されているのか、いつでも確認できます。
      GGSCI (host) > Info All

    3.4 表を作成する

      host01でチェックポイント表を作成します これはレプリケーション・ソース・インスタンスでは不要であるため、レプリケーション・ターゲットのOracle GoldenGateインスタンスでのみチェックポイント表を作成する必要があります。

      Host01 - Linux
      [user01@host01 ~] cd ~/oracle/ggs_trg
      [user01@host01 ggs_trg]$ ./ggsci 
      Oracle GoldenGate Command Interpreter for Oracle
      Version 11.2.1.0.3 14400833 OGGCORE_11.2.1.0.3_PLATFORMS_120823.1258_FBO
      Linux, x64, 64bit (optimized), Oracle 11g on Aug 23 2012 20:20:21
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      GGSCI (host01) 1>  DBLogin UserID oggadm@ogg11r2, Password Welcome1
      Successfully logged into database.
      
      GGSCI (host01) 2>  Add CheckpointTable 
      
      No checkpoint table specified, using GLOBALS specification (oggadm.oggchkpt).      
      Successfully created checkpoint table oggadm.oggchkpt.
      
      GGSCI (host01) 3>  Exit 
      
      [user01@host01 ggs_trg]$                                                          
      

      1つのチェックポイント表でスキーマ全体に十分です。

      青のホスト(host02)で、チェックポイント表を作成します。

      Host02 - Linux
      [user01@host02 ~]$ cd ~/db2/ggs_trg 
      [user01@host02 ggs_trg]$ ./ggsci
      Oracle GoldenGate Command Interpreter for DB2
      Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230
      Linux, x64, 64bit (optimized), DB2 9.7 on Apr 23 2012 06:02:54
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      GGSCI (host02) 1> DBLogin SourceDb ggs_trg, UserID user01, Password Welcome1
      Successfully logged into database.
      
      GGSCI (host02) 2>  Add CheckpointTable 
      
      No checkpoint table specified, using GLOBALS specification (user01.oggchkpt).      
      Successfully created checkpoint table user01.oggchkpt.
      
      GGSCI (host02) 2>  Exit 
      
      [user01@host02 ggs_trg]$                                                         
      

      host01で、スキーマsrc_user01とtrg_user01に、ソースとターゲット用のサンプルとして空の表を作成します。

      任意のSQLユーティリティを使用してスクリプトを実行できます。 特に好んで使用しているユーティリティがない場合は、sqlplusを使用します。

      Host01 - Linux
      [user01@host01 ~] cd ~/ddl
      [user01@host01 ddl]sqlplus src_user01/Welcome1@ogg11r2
      
      SQL*Plus: Release 11.2.0.3.0 Production on Tue Sep 18 14:38:50 2012
      Copyright (c) 1982, 2011, Oracle.  All rights reserved.
      
      Connected to:
      Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
      With the Partitioning, OLAP, Data Mining and Real Application Testing options      
      
      SQL> @oracle_table_creation.sql
      Table created.
      
      
      Table created.
      
      
      Table created.
      
      SQL> select * from cat; 
      
      TABLE_NAME                     TABLE_TYPE
      ------------------------------ -----------
      ECONOMIC_ENTITY                TABLE
      GDP_BY_YEAR                    TABLE
      GDP_GROWTH_BY_YEAR             TABLE
      
      SQL> connect trg_user01/Welcome1@ogg11r2
      Connected.
      SQL> @oracle_table_creation.sql
      Table created.
      
      
      Table created.
      
      
      Table created.
      
      SQL> select * from cat;
      
      TABLE_NAME                     TABLE_TYPE
      ------------------------------ -----------
      ECONOMIC_ENTITY                TABLE
      GDP_BY_YEAR                    TABLE
      GDP_GROWTH_BY_YEAR             TABLE
      
      SQL> exit 
      [user01@host01 ddl]$                                                          
      

      青のホスト(host02)で、データベースggs_srcとggs_trgに、ソースとターゲット用のサンプルとして空の表を作成します。

      Host02 - Linux
      [user01@host02 ~] cd ~/ddl
      [user01@host02 ddl]$ db2 connect to ggs_src user user01 using Welcome1 
         Database Connection Information
      
       Database server        = DB2/LINUXX8664 9.7.5
       SQL authorization ID   = USER01
       Local database alias   = GGS_SRC
      
      [user01@host02 ddl]$ ls
      drop_tables.sql      gdp_by_year_2008.sql  gdp_by_year_2010.sql  gdp_growth_by_year_2008.sql
      gdp_growth_by_year_2010.sql oracle_table_creation.sql db2_table_creation.sql
      economic_entity.sql gdp_by_year_2009.sql gdp_by_year.sql gdp_growth_by_year_2009.sql
      gdp_growth_by_year.sql [user01@host02 ddl]$ db2 -tvf db2_table_creation.sql create table economic_entity ( entity_id integer not null,
      economic_entity varchar(128) not null,
      continent varchar(20) , PRIMARY KEY(entity_id) ) DB20000I The SQL command completed successfully. create table gdp_by_year ( entity_id integer not null, gdp_year
      integer not null, gdp_value
      decimal(15,5) not null, PRIMARY KEY (entity_id,gdp_year) ) DB20000I The SQL command completed successfully. create table gdp_growth_by_year ( entity_id integer not null, gdp_year
      integer not null, gdp_value
      decimal(15,5) not null, PRIMARY KEY (entity_id,gdp_year) ) DB20000I The SQL command completed successfully. [user01@host02 ddl]$ db2 disconnect ggs_src DB20000I The SQL DISCONNECT command completed successfully. [user01@oraol62 ddl]$ db2 connect to ggs_trg user user01 using Welcome1 Database Connection Information Database server = DB2/LINUXX8664 9.7.5 SQL authorization ID = USER01 Local database alias = GGS_TRG [user01@oraol62 ddl]$ db2 -tvf db2_table_creation.sql create table economic_entity ( entity_id integer not null, economic_entity
      varchar(128) not null,
      continent varchar(20) , PRIMARY KEY(entity_id) ) DB20000I The SQL command completed successfully. create table gdp_by_year ( entity_id integer not null, gdp_year integer not null,
      gdp_value decimal(15,5) not null, PRIMARY KEY (entity_id,gdp_year) ) DB20000I The SQL command completed successfully. create table gdp_growth_by_year ( entity_id integer not null, gdp_year integer not null,
      gdp_value decimal(15,5) not null, PRIMARY KEY (entity_id,gdp_year) ) DB20000I The SQL command completed successfully. [user01@host02 ddl]$  

    3.5 トランザクション・データを追加する

      GGSCIを再起動し、レプリケーション・ソース(ggs_src)として使用されるユーザー・スキーマのすべてに対してAdd TranDataを実行します。

      Host01 - Linux
      [user01@host01 ~]$ cd ~/oracle/ggs_trg 
      [user01@host01 ggs_trg]$ ./ggsci 
      Oracle GoldenGate Command Interpreter for Oracle
      Version 11.2.1.0.3 14400833 OGGCORE_11.2.1.0.3_PLATFORMS_120823.1258_FBO
      Linux, x64, 64bit (optimized), Oracle 11g on Aug 23 2012 20:20:21
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      GGSCI (host01) 1> dblogin userid oggadm@ogg11r2, password Welcome1
      Successfully logged into database.
      
      GGSCI (host01) 2> info trandata src_user01.*
      
      Logging of supplemental redo log data is disabled for table SRC_USER01.ECONOMIC_ENTITY.
      
      Logging of supplemental redo log data is disabled for table SRC_USER01.GDP_BY_YEAR.
      
      Logging of supplemental redo log data is disabled for table SRC_USER01.GDP_GROWTH_BY_YEAR.  
      
      GGSCI (host01) 3> add trandata src_user01.*
      
      Logging of supplemental redo data enabled for table SRC_USER01.ECONOMIC_ENTITY.
      
      Logging of supplemental redo data enabled for table SRC_USER01.GDP_BY_YEAR.
      
      Logging of supplemental redo data enabled for table SRC_USER01.GDP_GROWTH_BY_YEAR.
      
      GGSCI (host01) 4> info trandata src_user01.*
      
      Logging of supplemental redo log data is enabled for table SRC_USER01.ECONOMIC_ENTITY.
      
      Columns supplementally logged for table SRC_USER01.ECONOMIC_ENTITY: ENTITY_ID.
      
      Logging of supplemental redo log data is enabled for table SRC_USER01.GDP_BY_YEAR.
      
      Columns supplementally logged for table SRC_USER01.GDP_BY_YEAR: ENTITY_ID, GDP_YEAR.
      
      Logging of supplemental redo log data is enabled for table SRC_USER01.GDP_GROWTH_BY_YEAR.
      
      Columns supplementally logged for table SRC_USER01.GDP_GROWTH_BY_YEAR: ENTITY_ID, GDP_YEAR.
      
      
      GGSCI (host01) 5>                                                            
      

      個々の表またはワイルド・カードに対してトランザクション・データを追加できます。 ワイルド・カードは1つのスキーマ全体にも使用できますが、複数のスキーマ全体に使用することをお勧めします。 トランザクション・データを2回追加しても、問題ありません。

      青のホスト(host02)でも、レプリケーション・ソース・スキーマ(ggs_src)に対してTranData情報を追加する必要があります。

      Host02 - Linux
      [user01@host02 ~]$ cd ~/db2/ggs_src 
      [user01@host02 ggs_src]$ ./ggsci
      Oracle GoldenGate Command Interpreter for DB2
      Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230
      Linux, x64, 64bit (optimized), DB2 9.7 on Apr 23 2012 06:02:54
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      GGSCI (host02) 1> dblogin sourcedb ggs_src, userid user01, password Welcome1
      
      2012-10-02 15:37:36  INFO    OGG-03036  Database character set identified as UTF-8. 
      Locale: en_US. 2012-10-02 15:37:36 INFO OGG-03037 Session character set identified as UTF-8. Successfully logged into database. GGSCI (host02) 2> info trandata user01.* Logging of supplemental log data is disabled for table USER01 .ECONOMIC_ENTITY Logging of supplemental log data is disabled for table USER01 .GDP_BY_YEAR Logging of supplemental log data is disabled for table USER01 .GDP_GROWTH_BY_YEAR GGSCI (host02) 3> add trandata user01.* Logging of supplemental log data (include longvar) is enabled for table USER01 .ECONOMIC_ENTITY Logging of supplemental log data (include longvar) is enabled for table USER01 .GDP_BY_YEAR Logging of supplemental log data (include longvar) is enabled for table USER01 .GDP_GROWTH_BY_YEAR GGSCI (host02) 4> info trandata user01.* Logging of supplemental log data (include longvar) is enabled for table USER01 .ECONOMIC_ENTITY Logging of supplemental log data (include longvar) is enabled for table USER01 .GDP_BY_YEAR Logging of supplemental log data (include longvar) is enabled for table USER01 .GDP_GROWTH_BY_YEAR GGSCI (host02) 5>  

      トランザクション・データが、Oracle GoldenGateに関連するすべてのユーザー表に対して有効になりました。

    3.6 列定義を作成する(defgen)

      OSユーティリティを使用して、ソース表からターゲット表への列マッピングを作成します。

      このユーティリティは、表の構造が異なる(異種)場合に必要ですが、表の構造が同じ(同種)場合でも、このユーティリティを使用することを強くお勧めします。 表の構造が同じである場合は、SourceDefs パラメータの代わりにAssumeTargetDefsパラメータを使用することもできます。 これについては、後で説明します。

      概要ファイルとプロセスのネーミング規則を確認してください。

      Host01 - Linux
      [user01@host01 ~]$ cd ~/oracle/ggs_src 
      [user01@host01 ggs_src]$ ./ggsci 
      Oracle GoldenGate Command Interpreter for Oracle
      Version 11.2.1.0.3 14400833 OGGCORE_11.2.1.0.3_PLATFORMS_120823.1258_FBO
      Linux, x64, 64bit (optimized), Oracle 11g on Aug 23 2012 20:20:21
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      GGSCI (host01) >  Edit Param usr1tabs
      -- defgen column definitions for src_user01.* from host01 (a) to host02 (b)
      DefsFile dirdef/usr1tabs.def, Purge
      UserID oggadm@ogg11r2, Password Welcome1
      Table src_user01.*; 
      
      GGSCI (host01) >  Exit 
      
      [user01@host01 ggs_src] ./defgen paramfile dirprm/usr1tabs.prm 
      ***********************************************************************               
            Oracle GoldenGate Table Definition Generator for Oracle
      
       ... many lines omitted for clarity ... 
      
      DefsFile dirdef/usr1tabs.def, Purge
      UserID oggadm@ogg11r2, Password ********
      Table src_user01.*;
      Expanding wildcard src_user01.*:
      
      Retrieving definition for SRC_USER01.ECONOMIC_ENTITY
      Retrieving definition for SRC_USER01.GDP_BY_YEAR
      Retrieving definition for SRC_USER01.GDP_GROWTH_BY_YEAR
      
      Definitions generated for 3 tables in dirdef/usr1tabs.def
      
      [user01@host01 ggs_src]$                                                          
      

      単一の表、複数の表(ワイルド・カードを使用)、1つのスキーマ全体、または複数のスキーマに同時に定義を作成できます。 ファイルに"余分な"(Oracle GoldenGateで使用されない)定義が含まれていても、問題ありません。 host02に送信する前に、dirdef/usr1tabs.defの内容を確認できます。

      ソースのhost01からターゲットのhost02にファイルをコピーします。

      .defファイルをターゲットのdirdefディレクトリにコピーする際、カット・アンド・ペースト、scpftpなどの任意の方法を使用できます。 この例では、Secure Shell Copy(scp)を使用します。 /home/user01/db2/ggs_trgの後でコマンドラインを中断しないでください。scpコマンドはすべて1行で入力してください。

      Host01 - Linux
      [user01@host01 ggs_src] scp dirdef/usr1tabs.def user01@host02:/home/user01/db2/ggs_trg
      /dirdef
      he authenticity of host 'host02 (127.0.0.1)' can't be established.
      RSA key fingerprint is 82:e2:d9:21:9e:a7:9c:7d:d8:c9:cf:92:ee:80:13:9e.
      Are you sure you want to continue connecting (yes/no)? yes
      Warning: Permanently added 'host02' (RSA) to the list of known hosts.
      user01@host02's password:
      usr1tabs.def                                             100% 1816     1.8KB/s   00:00
      
      
      [user01@host01 ggs_src]$                                                          
      

      アスタリスクをパスワード(Welcome1など)に置き換えます。

      host02の適切なディレクトリにファイルがそのまま配置されていることを確認します。

      Host02 - Linux
      [user01@host02 ~]$ cd ~/db2/ggs_trg
      [user01@host02 ggs_trg]$ ls -l dirdef
      total 4
      -rw-r--r--. 1 user01 oggusers 1816 Oct  2 18:29 usr1tabs.def
      
      [user01@host02 ggs_trg]$                                                              
      

      OSユーティリティを使用して、DB2のソース表からOracleのターゲット表への列マッピングを作成します。

      Host02 - Linux
      [user01@host02 ggs_trg]$ cd ~/db2/ggs_src 
      [user01@host02 ggs_src]$ ./ggsci 
      Oracle GoldenGate Command Interpreter for DB2
      Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230
      Linux, x64, 64bit (optimized), DB2 9.7 on Apr 23 2012 06:02:54
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      
      GGSCI (host02) >  Edit Param usr1tabs
      -- defgen column definitions for user01.* from host02 (b) to host01 (a)
      DefsFile dirdef/usr1tabs.def, Purge
      SourceDB ggs_src, UserID user01, Password Welcome1
      Table user01.*;
      
      
      GGSCI (host02) >  Exit 
      
      [user01@host01 ggs_src] ./defgen paramfile dirprm/usr1tabs.prm 
      ***********************************************************************
               Oracle GoldenGate Table Definition Generator for DB2
      
      
       ... many lines omitted for clarity ... 
      
      DefsFile dirdef/usr1tabs.def, Purge
      SourceDB ggs_src, UserID user01, Password ********
      
      2012-10-02 18:44:48  INFO    OGG-03036  Database character set identified as UTF-8. Locale: en_US.
      
      2012-10-02 18:44:48  INFO    OGG-03037  Session character set identified as UTF-8.
      Table user01.*;
      Expanding wildcard user01.*:
      
      Retrieving definition for USER01.ECONOMIC_ENTITY
      Retrieving definition for USER01.GDP_BY_YEAR
      Retrieving definition for USER01.GDP_GROWTH_BY_YEAR
      
      Definitions generated for 3 tables in dirdef/usr1tabs.def
      
      [user01@host02 ggs_src]$                                                          
      

      ソースのhost02からターゲットのhost01にファイルをコピーします。

      Host02 - Linux
      [user01@host02 ggs_src]$ scp dirdef/usr1tabs.def user01@host01:/home/user01/oracle/ggs_trg
      /dirdef
      The authenticity of host 'host02 (127.0.0.1)' can't be established.
      RSA key fingerprint is 82:e2:d9:21:9e:a7:9c:7d:d8:c9:cf:92:ee:80:13:9e.
      Are you sure you want to continue connecting (yes/no)? yes
      Warning: Permanently added 'host01' (RSA) to the list of known hosts.
      user01@host01's password:
      usr1tabs.def                                             100% 1816     1.8KB/s   00:00
      
      
      [user01@host01 ggs_src]$                                                        
      

      アスタリスクをパスワード(Welcome1など)に置き換えます。

      host01の適切なディレクトリにファイルがそのまま配置されていることを確認します。

      Host01 - Linux
      [user01@host01 ~]$ cd ~/oracle/ggs_trg
      [user01@host01 ggs_trg]$ ls -l dirdef
      total 4
      -rw-r--r--. 1 user01 oggusers 1816 Oct  2 18:29 usr1tabs.def
      
      [user01@host01 ggs_trg]$                                                                 
      

      列定義を作成してコピーしました。 表の構造に変更があった場合は、この手順を再度実行する必要があります。

4. Extractを使用したデータ取得の設定(OracleからDB2)

    データ取得(Extractとも呼ばれます)は、ソース側で実行します。 プライマリのExtractは必須です。セカンダリのExtract(Data Pumpとも呼ばれます)はオプションですが、強くお勧めします。 データ取得を設定するには、次の手順を実行します。

    4.1 Oracleソース・インスタンスでプライマリのExtractを設定する

      ソースのhost01で、プライマリExtractパラメータ・ファイルを作成します。

      概要で説明しているネーミング規則を使用して、path/filename.extdirprm/efinaa.prmにします。 パスと拡張子は自動的に追加されます (プライマリのExtractでは、証跡ファイルをターゲット・ホストに直接書き込むことができ、その場合、接尾辞は"ab"になります。ただし、ソース・ホストから読み取られる前にローカルのデータ・ポンプに渡されるため、接尾辞は"aa"になります。 これらすべては単なる規則であり、プロセスには任意の名前を指定できます)。

      Host01 - Linux
      [user01@host01 ~] cd ~/oracle/ggs_src 
      [user01@host01 ogg01] ./ggsci 
      Oracle GoldenGate Command Interpreter for Oracle
       ... many lines omitted for clarity ... 
      
      GGSCI (host01) 1> Obey startup.oby 
      
       ... many lines omitted for clarity ... but make sure everything started.
      
      GGSCI (host01) > Edit Param efinaa
      -- Primary Extract from host01 to host02
      -- SETENV(ORACLE_SID = "ogg11r2")
      Extract efinaa
      ExtTrail ./dirdat/aa
      UserID oggadm@ogg11r2, Password Welcome1
      Table src_user01.*; 
      
      GGSCI (host01) >                                                                        
      

      使用しているパラメータには、次のようなものがあります。

      -- :
      コメント。 自己記述的なファイルや、後で使用するパラメータのインライン保存に便利です。
      SETENV:
      SID(データベース・システム識別子)を.profileまたはUserIDのいずれかを使用して任意の場所に定義するか、SETENVを使用してここで定義する必要があります。 必要なのは1箇所のみですが、ここで定義すると、.profileの以前の定義よりも優先されます。
      ExtTrail:
      データ・ポンプを使用する場合は、"外部"(external)ではありません。
      aa:
      順序番号が、このアルファベットの接頭辞に追加されます。 たとえば、証跡ファイルにaa000000、aa000001、aa000002などの名前が付与されて、ファイルが指定のサイズ(デフォルトは100MB)よりも大きくなると、ロールオーバーされます。
      TranLogOptions:
      ループを防ぐため、双方向レプリケーションにより後で使用されます。
      Table:
      複数のTable文を使用できます。それぞれの文に、ゼロ、1つ、または複数の表になる1つの表名(オプションのワイルド・カードを使用)が含まれます。 スキーマ名にワイルド・カードを使用することはできません。

      ファイル内のパスワードを暗号化できますが、この演習の範囲外になります。

      View Param efinaaと入力すると、作業内容をいつでも確認できます。

      ExtractグループとローカルのExtract証跡ファイルを作成します。

      Host01 - Linux
      GGSCI (host01) > Add Extract efinaa, TranLog, Begin Now 
      EXTRACT added.
      
      GGSCI (host01) > Add ExtTrail ./dirdat/aa, Extract efinaa, Megabytes 5
      EXTTRAIL added.
      
      GGSCI (host01) >                                                                       
      

      Megabytes 5はオプションです。 デフォルトは100メガバイトです。

      プライマリのExtractが作成および設定されましたが、開始されていません。 次の手順のために、GGSCIを実行したままにします。

    4.2 Data Pumpを設定する(OracleからDB2)

      セカンダリExtract(Data Pump)パラメータ・ファイルを作成します。

      概要で説明しているネーミング規則を使用して、path/filename.extdirprm/pfinab.prmにします。 パスと拡張子は自動的に追加されます。

      Host01 - Linux
      GGSCI (host01) > Edit Param pfinab
      -- Data pump (secondary Extract) from host01 to host02
      Extract pfinab
      RmtHost host02, MgrPort 7909, Compress
      RmtTrail ./dirdat/ab
      Passthru
      Table src_user01.*; 
      
      GGSCI (host01) >                                                                      
      

      このTableスキーマはソースです。

      View Param pfinabと入力すると、作業内容をいつでも確認できます。

      Data PumpグループとリモートのExtract証跡ファイルを作成します。

      Host01 - Linux
      GGSCI (host01) > Add Extract pfinab, ExtTrailSource ./dirdat/aa 
      EXTRACT added.
      
      GGSCI (host01) > Add RmtTrail ./dirdat/ab, Extract pfinab, Megabytes 5
      RMTTRAIL added.
      
      GGSCI (host01) >                                                                     
      

      Megabytes 5はオプションです。 デフォルトは100メガバイトです。

      Data Pumpでは、ローカルの証跡ファイルaaからの読取りとリモートの証跡ファイルabへの書込みが実行されます。 作成されるリモートの証跡ファイルにはdirdat/ab000000という名前が付与され、この証跡ファイルがいっぱいになると、次の証跡ファイルはdirdat/ab000001という名前になり、その次はdirdat/ab000002となります。 2セットの証跡ファイルは異なるホストに配置されるため(同じ名前のディレクトリに配置される場合でも)、同じ名前(abなど)になる可能性があります。 異なるファイル名は、単にパラメータRmtTrailで別の証跡ファイルが作成されることを示すために選択されます。

      セカンダリのExtractが作成および設定されましたが、開始されていません。 次の手順のために、GGSCIを実行したままにします。

    4.3 Extractプロセスを検証する(オプション)

      Extractプロセスが正しく作成および登録されていることを確認します。

      Host01 - Linux
      GGSCI (host01) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING
      EXTRACT     STOPPED     EFINAA    00:00:00      00:03:24
      EXTRACT     STOPPED     PFINAB    00:00:00      00:01:22
      
      GGSCI (host01) >                                                                    
      

      Manager以外はまだ何も開始されていないため、ExtractのステータスはSTOPPEDと表示されます。

      証跡ファイルが正しく作成および登録されていることを確認します。

      Host01 - Linux
      GGSCI (host01) > Info ExtTrail *
      
             Extract Trail: ./dirdat/aa
                   Extract: EFINAA
                     Seqno: 0
                       RBA: 0
                 File Size: 5M
      
             Extract Trail: ./dirdat/ab
                   Extract: PFINAB
                     Seqno: 0
                       RBA: 0
                 File Size: 5M
      
      GGSCI (host01) >                                                                    
      

      まだ何も開始されていないため、順序番号(Seqno)と相対バイト・アドレス(RBA)は0と表示されます。

      次の手順のために、GGSCIを実行したままにします。

5. Replicatを使用したデータ配信の設定(OracleからDB2)

    データ配信(Replicatとも呼ばれます。"e"は意図的に省略されています)は、ターゲット側で実行します。 データ配信を設定するには、次の手順を実行します。

    5.1 Replicatを設定する(OracleからDB2)

      ターゲットのhost02で、Replicatパラメータ・ファイルを作成します。

      青のホスト(host02)で新しいターミナル・ウィンドウを作成し、ターゲットのOracle GoldenGateインスタンスをホストするggs_trgディレクトリに移動します。

      Host02 - Linux
      [user01@host02 ~]$ cd ~/db2/ggs_trg 
      [user01@host02 ggs_trg]$ ./ggsci 
      Oracle GoldenGate Command Interpreter for Oracle
       ... many lines omitted for clarity ... 
      
      GGSCI (host02) 1> Obey startup.oby 
      
       ... many lines omitted for clarity ... but make sure everything started.
      
      GGSCI (host02) > Edit Param rfinab
      -- Delivery from host01 to host02
      Replicat rfinab
      TargetDB ggs_trg, UserID user01, Password Welcome1
      SourceDefs dirdef/usr1tabs.def
      DiscardFile dirrpt/rfinab.dsc, Append
      Map src_user01.*, Target user01.*;
      
      GGSCI (host02) >                                                                   
      

      Map文は、列とフィールドを変換して、(ここに示すように)シンプルにも非常に複雑にもできます。 たとえば、3つのソース列first_name、middle_init、last_nameを組み合わせて1つのターゲット列full_nameにすることができます。

      Replicatプロセスを作成します。

      Host02 - Linux
      GGSCI (host02) > Add Replicat rfinab, ExtTrail ./dirdat/ab 
      REPLICAT added.
        
      GGSCI (host02) >                                                                   
      

      View Param rfinabと入力すると、作業内容をいつでも確認できます。

      Replicatプロセスが正しく作成および登録されていることを確認します。

      Host02 - Linux
      GGSCI (host02) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING
      REPLICAT    STOPPED     RFINAB    00:00:00      00:00:33
      
      GGSCI (host02) >                                                                   
      

      Manager以外はまだ何も開始されていないため、ReplicatのステータスはSTOPPEDと表示されます。

    5.2 すべてのプロセスを開始する

      ソースですべてのExtractプロセスを開始します。

      Host01 - Linux
      GGSCI (host01) > Start Extract * 
      
      Sending START request to MANAGER ...
      EXTRACT EFINAA starting
      
      Sending START request to MANAGER ...
      EXTRACT PFINAB starting
      
      GGSCI (host01) >                                                                   
      

      Start *と入力するか、 Start e01*および Start p01*と入力することもできます。

      ターゲットですべてのReplicatプロセスを開始します。

      Host02 - Linux
      GGSCI (host02) > Start Replicat *
      
      Sending START request to MANAGER ...
      REPLICAT RFINAB starting
      
      GGSCI (host02) >                                                                   
      

      Start *または Start rfin*と入力することもできます。

      ターゲットのすべてのプロセスに関する情報を表示します。

      概要情報を表示します。

      Host02 - Linux
      GGSCI (host02) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING
      REPLICAT    RUNNING     RFINAB    00:00:00      00:00:03
      
      GGSCI (host02) >                                                                  
      

      さらに情報を表示します。

      Host02 - Linux
      GGSCI (host02) > Info rfinab 
      
      REPLICAT   RFINAB    Last Started 2012-10-02 21:04   Status RUNNING
      Checkpoint Lag       00:00:00 (updated 00:00:05 ago)
      Log Read Checkpoint  File ./dirdat/ab000000
                           First Record  RBA 0
      
      GGSCI (host02) >                                                                  
      

      さらに詳細情報を表示します。

      Host02 - Linux
      GGSCI (host02) > Info rfinab, Detail 
      
      REPLICAT   RFINAB    Last Started 2012-10-02 21:04   Status RUNNING
      Checkpoint Lag       00:00:00 (updated 00:00:02 ago)
      Log Read Checkpoint  File ./dirdat/ab000000
                           First Record  RBA 0
      
        Extract Source                          Begin             End
      
        ./dirdat/ab000000                       * Initialized *   First Record
        ./dirdat/ab000000                       * Initialized *   First Record
      
      
      Current directory    /home/user01/db2/ggs_trg
      
      Report file          /home/user01/db2/ggs_trg/dirrpt/RFINAB.rpt
      Parameter file       /home/user01/db2/ggs_trg/dirprm/rfinab.prm
      Checkpoint file      /home/user01/db2/ggs_trg/dirchk/RFINAB.cpr
      Checkpoint table     user01.oggchkpt
      Process file         /home/user01/db2/ggs_trg/dirpcs/RFINAB.pcr
      Stdout file          /home/user01/db2/ggs_trg/dirout/RFINAB.out
      Error log            /home/user01/db2/ggs_trg/ggserr.log
      
      
      GGSCI (host02) >                                                                  
      

      どの場合にも、StatusRUNNINGになり、前回の更新またはチェックポイントからの時間は10秒未満になります。

      ソースのすべてのプロセスに関する情報を表示します。

      概要情報を表示します。

      Host01 - Linux
      GGSCI (host01) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING
      EXTRACT     RUNNING     EFINAA      00:14:14      00:00:00
      EXTRACT     RUNNING     PFINAB      00:00:00      00:04:09
      
      
      GGSCI (host01) >                                                                  
      

      詳細情報を表示します。

      Host01 - Linux
      GGSCI (host01) > Info Extract *
      
      EXTRACT    EFINAA    Last Started 2012-10-02 21:04   Status RUNNING
      Checkpoint Lag       00:00:00 (updated 00:00:02 ago)
      Log Read Checkpoint  Oracle Redo Logs
                           2012-10-02 21:07:33  Seqno 9, RBA 10427392
                           SCN 0.1166534 (1166534)
      
      EXTRACT    PFINAB    Last Started 2012-10-02 21:04   Status RUNNING
      Checkpoint Lag       00:00:00 (updated 00:00:00 ago)
      Log Read Checkpoint  File ./dirdat/aa000000
                           First Record  RBA 1041
      
      
      GGSCI (host01) > Exit
      [user01@host01 ggs_src]$                                                          
      

      Replicatと同様に、StatusRUNNINGになり、前回の更新またはチェックポイントからの時間は10秒未満になります。

      どの場合でも、ステータスRUNNINGが表示されます。 ソース表は空のままです。 まだデータが配置されておらず、何もレプリケートされていません。

6. データの生成(OracleからDB2)

    既存の表をレプリケートする方法(複雑)と新しい空の表を使って始める方法(簡単)は、異なります。 空の表セットにサンプル・データを生成するには、次の手順を実行します。

    6.1 INSERTを生成する(Initial Load)

      SQLスクリプトを実行して行を挿入(INSERT)します。

      ソースのhost01で、OSプロンプトを使用してsqlpluseconomic_entity.sqlスクリプトを実行し、ECONOMIC_ENTITY表を移入します。

      Host01 - Linux
      [user01@host01 ~]$ cd ~/ddl
      [user01@host01 ddl]$ sqlplus src_user01/Welcome1@ogg11r2 @economic_entity.sql
      
      SQL*Plus: Release 11.2.0.3.0 Production on Wed Sep 19 19:27:03 2012
      Copyright (c) 1982, 2011, Oracle.  All rights reserved.
      
      Connected to:
      Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
      With the Partitioning, OLAP, Data Mining and Real Application Testing options
      
      1 row created.
      
       ... many lines omitted for clarity ... 
      
      1 row created.
      
      Commit complete.
      
      SQL>                                                                             
      

      エラーは表示されないはずです。 次の手順のために、SQL*Plusを実行したままにします。

      ソース表に行が挿入されたことを確認します。

      Host01 - Linux
      SQL> SELECT count(*) FROM economic_entity; 
      
        COUNT(*)
      ----------
             235
      
      SQL> set linesize 132 
      SQL> column economic_entity format a60 
      SQL> set pagesize 999 
      SQL> SELECT * FROM economic_entity WHERE continent = 'EUROPE' order by ENTITY_ID;
      
       ENTITY_ID ECONOMIC_ENTITY                         CONTINENT
      ---------- --------------------------------------- --------------------
              48 Austria                                 EUROPE
              49 Belgium-Luxembourg                      EUROPE
              50 Belgium                                 EUROPE
              51 Luxembourg                              EUROPE
              52 Denmark                                 EUROPE
              53 Finland                                 EUROPE
              54 France                                  EUROPE
              55 Germany                                 EUROPE
              56 Greece                                  EUROPE
              57 Ireland                                 EUROPE
              58 Italy                                   EUROPE
              59 Netherlands                             EUROPE
              60 Portugal                                EUROPE
              61 Spain                                   EUROPE
              62 Sweden                                  EUROPE
              63 United Kingdom                          EUROPE
              65 Bulgaria                                EUROPE
              66 Cyprus                                  EUROPE
              67 Czech Republic                          EUROPE
              68 Estonia                                 EUROPE
              69 Hungary                                 EUROPE
              70 Latvia                                  EUROPE
              71 Lithuania                               EUROPE
              72 Malta and Gozo                          EUROPE
              73 Poland                                  EUROPE
              74 Romania                                 EUROPE
              75 Slovakia                                EUROPE
              76 Slovenia                                EUROPE
              77 Other Europe                            EUROPE
              79 Iceland                                 EUROPE
              80 Norway                                  EUROPE
              81 Switzerland                             EUROPE
              83 Albania                                 EUROPE
              84 Bosnia Herzegovina                      EUROPE
              85 Croatia                                 EUROPE
              86 Macedonia                               EUROPE
              87 Serbia                                  EUROPE
              89 Russia                                  EUROPE
              90 Ukraine                                 EUROPE
              92 Armenia                                 EUROPE
              93 Azerbaijan                              EUROPE
              94 Belarus                                 EUROPE
              95 Georgia                                 EUROPE
              96 Kazakhstan                              EUROPE
              97 Kyrgyzstan                              EUROPE
              98 Moldova                                 EUROPE
              99 Tajikistan                              EUROPE
             100 Turkmenistan                            EUROPE
             101 Uzbekistan                              EUROPE
      
      49 rows selected.
      
      
      SQL> exit 
      [user01@host01 ddl]$                                                       
      

      ソースのGGSCI Extractプロセスがまだ実行されていることを確認します。

      ソースのhost01で、以下のコマンドを入力します。

      Host01 - Linux
      [user01@host01 ~]$  cd ~/oracle/ggs_src
      [user01@host01 ggs_src]$ ./ggsci 
      GGSCI (host01) 1> Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING
      EXTRACT     RUNNING     EFINAA      00:00:00      00:00:07
      EXTRACT     RUNNING     PFINAB      00:00:00      00:00:08
      
      
      GGSCI (host01) 2> Exit 
      [user01@host01 ggs_src]$                                                         
      

      StatusABENDEDと表示される場合は、プロセス・レポート(後述のトピックで説明)でエラーの内容を確認します。

      中間にあるGGSCI Replicatプロセスがまだ実行されていることを確認します。

      中間にあるhost02で、GGSCIはまだ実行されているはずです。 以下のコマンドを入力します。

      Host02 - Linux
      GGSCI (host02) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING
      REPLICAT    RUNNING     RFINAB      00:00:00      00:00:07
      
      GGSCI (host02) > Exit 
      [user01@host02 ggs_trg]$                                                        
      

      StatusABENDEDと表示される場合は、プロセス・レポート(後述のトピックで説明)でエラーの内容を確認します。

      ターゲット表に行が挿入されたことを確認します。

      レプリケーション・ターゲットの青のホストで、OSプロンプトを使用して、次のDB2問合せを実行します。

      Host02 - Linux
      [user01@host02 ~]$  db2 connect to ggs_trg user user01 using Welcome1 
      
         Database Connection Information
      
       Database server        = DB2/LINUXX8664 9.7.5
       SQL authorization ID   = USER01
       Local database alias   = GGS_TRG
      
      [user01@host02 ~]$ db2 select count\(*\) from economic_entity
      
      1
      -----------
              235
      
        1 record(s) selected.
      
      
      [user01@host02 ~]$ db2 select entity_id,economic_entity,continent from \
      economic_entity where continent = \'EUROPE\' order by entity_id ENTITY_ID ECONOMIC_ENTITY CONTINENT ----------- ------------------------------------------- ----------- 48 Austria EUROPE 49 Belgium-Luxembourg EUROPE 50 Belgium EUROPE 51 Luxembourg EUROPE 52 Denmark EUROPE 53 Finland EUROPE 54 France EUROPE 55 Germany EUROPE 56 Greece EUROPE 57 Ireland EUROPE 58 Italy EUROPE 59 Netherlands EUROPE 60 Portugal EUROPE 61 Spain EUROPE 62 Sweden EUROPE 63 United Kingdom EUROPE 65 Bulgaria EUROPE 66 Cyprus EUROPE 67 Czech Republic EUROPE 68 Estonia EUROPE 69 Hungary EUROPE 70 Latvia EUROPE 71 Lithuania EUROPE 72 Malta and Gozo EUROPE 73 Poland EUROPE 74 Romania EUROPE 75 Slovakia EUROPE 76 Slovenia EUROPE 77 Other Europe EUROPE 79 Iceland EUROPE 80 Norway EUROPE 81 Switzerland EUROPE 83 Albania EUROPE 84 Bosnia Herzegovina EUROPE 85 Croatia EUROPE 86 Macedonia EUROPE 87 Serbia EUROPE 89 Russia EUROPE 90 Ukraine EUROPE 92 Armenia EUROPE 93 Azerbaijan EUROPE 94 Belarus EUROPE 95 Georgia EUROPE 96 Kazakhstan EUROPE 97 Kyrgyzstan EUROPE 98 Moldova EUROPE 99 Tajikistan EUROPE 100 Turkmenistan EUROPE 101 Uzbekistan EUROPE 49 record(s) selected. [user01@host02 ~]$  

      ソース・データベースとターゲット・データベースのECONOMIC_ENTITY表が一致しているはずです。

      追加の経済データをレプリケーション・ソース(赤のホストにあるggs_src)にアップロードします。 ddlディレクトリには、いくつかのSQLスクリプトが含まれています。 gdp_by_year.sqlスクリプトとgdp_growth_by_year.sqlスクリプトは、世界のGDPデータを、それぞれGDP_BY_YEAR表とGDP_GROWTH_BY_YEAR表にアップロードします。

      赤のホストで、OSプロンプトを使用して2つのSQLスクリプトを実行します。

      Host01 - Linux
      [user01@host01 ~]$ cd ~/ddl
      [user01@host01 ddl]$ sqlplus src_user01/Welcome1@ogg11r2 @gdp_by_year.sql 
      SQL*Plus: Release 11.2.0.3.0 Production on Wed Oct 3 01:14:24 2012
      
      Copyright (c) 1982, 2011, Oracle.  All rights reserved.
      
      
      Connected to:
      Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
      With the Partitioning, OLAP, Data Mining and Real Application Testing options
      
      1 row created.
      
       ... many lines omitted for clarity ... 
      
      1 row created.
      
      commit;
      
      Commit complete.
      SQL> @gdp_growth_by_year.sql
      
      1 row created.
      
       ... many lines omitted for clarity ... 
      
      1 row created.
      
      commit;
      
      SQL> select count(*) from gdp_by_year;
      
        COUNT(*)
      ----------
             705
      
      SQL> select count(*) from gdp_growth_by_year;
      
        COUNT(*)
      ----------
             705
      
      SQL> exit
      [user01@host01 ddl]$                                                          
      

      ターゲット表に行が挿入されたことを確認します。

      レプリケーション・ターゲットの青のホストで、OSプロンプトを使用して、次のDB2問合せを実行します。

      Host02 - Linux
      [user01@host02 ~]$  db2 connect to ggs_trg user user01 using Welcome1 
      
         Database Connection Information
      
       Database server        = DB2/LINUXX8664 9.7.5
       SQL authorization ID   = USER01
       Local database alias   = GGS_TRG
      
      [user01@host02 ~]$ db2 select count\(*\) from gdp_by_year
      
      1
      -----------
              705
      
        1 record(s) selected.
      
      [user01@host02 ~]$ db2 select count\(*\) from gdp_growth_by_year
      
      1
      -----------
              705
      
        1 record(s) selected.
      
      
      [user01@host02 ~]$                                                           
      

      ソース・データベースとターゲット・データベースのGDP_BY_YEAR表とGDP_GROWTH_BY_YEAR表が一致しているはずです。

    6.2 UPDATE/DELETEを生成する

      赤のホストで、OSプロンプトを使用して、src_user01ユーザーとしてsqlplusに接続します。
      ECONOMIC_ENTITYでは、"日本を除く東アジア圏"または"他の西欧圏"のような単一国家ではない経済主体はすべて、CONTINENT列に"N/A"と表示されます。 "N/A""Not a continent"に変更します。
      また、GDP_BY_YEAR表とGDP_GROWTH_BY_YEAR表には、2005~2007年の経済データが含まれています。 2005年のデータに関連するエントリをすべて消去します。

      Host01 - Linux
      [user01@host01 ~] sqlplus src_user01/Welcome1@ogg11r2
      SQL*Plus: Release 11.2.0.3.0 Production on Wed Oct 3 01:14:24 2012
      
      Copyright (c) 1982, 2011, Oracle.  All rights reserved.
      
      Connected to:
      Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
      With the Partitioning, OLAP, Data Mining and Real Application Testing options
      
      SQL> UPDATE ECONOMIC_ENTITY set CONTINENT = 'Not a continent' WHERE CONTINENT = 'N/A'; 
      
      36 rows updated.
      
      SQL> DELETE FROM GDP_BY_YEAR where GDP_YEAR=2005; 
      
      235 rows deleted.
      
      SQL> DELETE FROM GDP_GROWTH_BY_YEAR where GDP_YEAR=2005; 
      
      235 rows deleted.
      
      SQL>commit;
      
      Commit complete.
      
      SQL>exit
      
      [user01@host01 ~]$                                                          
      

      ターゲット表の行が更新および削除されたことを確認します。

      Host02 - Linux
      [user01@host02 ~]$ db2 connect to ggs_trg user user01 using Welcome1
      
      
         Database Connection Information
      
       Database server        = DB2/LINUXX8664 9.7.5
       SQL authorization ID   = USER01
       Local database alias   = GGS_TRG
      
      
      [user01@host02 ~]$ db2 select min\(gdp_year\) from gdp_by_year
      
      1
      -----------
             2006
      
        1 record(s) selected.
      
      [user01@host02 ~]$ db2 select min\(gdp_year\) from gdp_growth_by_year
      
      1
      -----------
             2006
      
        1 record(s) selected.
      
      [user01@host02 ~]$ db2 select distinct continent from economic_entity
      
      CONTINENT
      --------------------
      AFRICA
      AMERICAS
      ASIA
      EUROPE
      Not a continent
      OCEANIA
      
        6 record(s) selected.
      
      
      [user01@host02 ~]$                                                             
      

      2005年に関連した経済データが削除されたかどうかは、ターゲット・データベースでGDP_BY_YEARGDP_GROWTH_BY_YEARの最初の年が2006年になっているかで確認できます。 また、ECONOMIC_ENTITY表の更新が成功した場合は、SELECT DISTINCT文で、大陸として'N/A'が表示される行はなくなります。

      ソースのGGSCI Extractプロセスがまだ実行されていることを確認します。

      ソースのhost01で、以下のコマンドを入力します。

      Host01 - Linux
      [user01@host01 ~]$ cd ~/oracle/ggs_src 
      [user01@host01 ggs_src]$ ./ggsci 
      
      Oracle GoldenGate Command Interpreter for Oracle
      Version 11.2.1.0.0 OGGCORE_11.2.1.0.0_PLATFORMS_120131.1910_FBO
      Linux, x64, 64bit (optimized), Oracle 11g on Feb  1 2012 00:55:59
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      GGSCI (host01) 1> Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING
      EXTRACT     RUNNING     EFINAA      00:00:00      00:00:07
      EXTRACT     RUNNING     PFINAB      00:00:00      00:00:05
      
      
      GGSCI (host01) 2>                                                              
      

      GGSCI Replicatプロセスがまだ実行されていることを確認します。

      青のホストで、ターゲットのGGSCIがまだ実行されているはずです。 以下のコマンドを入力します。

      Host02 - Linux
      [user01@host02 ~]$ cd ~/db2/ggs_trg 
      [user01@host02 ggs_trg]$ ./ggsci 
      
      Oracle GoldenGate Command Interpreter for DB2
      Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230
      Linux, x64, 64bit (optimized), DB2 9.7 on Apr 23 2012 06:02:54
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      GGSCI (host02) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING
      REPLICAT    RUNNING     RFINAB      00:00:00      00:00:07
      
      
      GGSCI (host02) >                                                               
      

      StatusはまだRUNNINGとなっているはずです。

      異種環境間におけるOracle GoldenGateの基本的な一方向機能であるExtract、Data Pump、Replicatの構成と操作が完了しました。

7. Oracle GoldenGate環境の管理(OracleからDB2)

    プロセスの実行中と実行後にレポートが生成されます。 このレポートには、プロセスの実行に関連する情報、警告、およびエラー(発生した場合)が含まれています。 レポートを表示するには、次の手順を実行します。

    7.1 レポートを表示する

      ソースのプロセス・レポートを表示します。

      Extractのプロセス・レポートを表示します。

      Host01 - Linux
      GGSCI (host01) > Send Extract efinaa, Report 
      
      Sending REPORT request to EXTRACT EFINAA ...
      Request processed.
      
      GGSCI (host01) > View Report efinaa 
      
      **********************************************************************
                       Oracle GoldenGate Capture for Oracle
          Version 11.2.1.0.0 OGGCORE_11.2.1.0.0_PLATFORMS_120131.1910_FBO
         Linux, x64, 64bit (optimized), Oracle 11g on Feb  1 2012 01:04:34
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
       ... many lines omitted for clarity ... 
      
                          Starting at 2012-10-02 21:04:21
      ***********************************************************************
      
      2012-10-03 10:40:02  INFO    OGG-01021  Command received from GGSCI: REPORT.

      *********************************************************************** * ** Run Time Statistics ** * *********************************************************************** Report at 2012-10-03 10:40:02 (activity since 2012-10-02 21:20:37) Output to ./dirdat/aa: From Table SRC_USER01.ECONOMIC_ENTITY: # inserts: 235 # updates: 36 # deletes: 0 # discards: 0 From Table SRC_USER01.GDP_BY_YEAR: # inserts: 705 # updates: 0 # deletes: 235 # discards: 0 From Table SRC_USER01.GDP_GROWTH_BY_YEAR: # inserts: 705 # updates: 0 # deletes: 235 # discards: 0 ... many lines omitted for clarity ... GGSCI (host01) >  
       

      [Enter]を押すと、一度1行ずつ移動できます。[Space]を押すと、一度に1ページずつ移動できます。 レポートの一番下に移動します。

      同じ手順を実行してData Pumpのpfinabレポートを表示できます。

      ターゲットのプロセス・レポートを表示します。

      ターゲットの青のホストで、Replicatのプロセス・レポートを表示します。

      Host02 - Linux
      GGSCI (host02) > Send Replicat rfinab, Report 
      
      Sending REPORT request to REPLICAT RFINAB ...
      Request processed.
      
      GGSCI (host02)> View Report rfinab 
      ***********************************************************************
                        Oracle GoldenGate Delivery for DB2
            Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230
          Linux, x64, 64bit (optimized), DB2 9.7 on Apr 23 2012 06:13:13
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      
                          Starting at 2012-10-02 21:04:38
      ***********************************************************************
      
       ... many lines omitted for clarity ... 
      
      Reading ./dirdat/ab000000, current RBA 299495, 2151 records
      
      Report at 2012-10-03 11:21:06 (activity since 2012-10-02 21:20:38)
      
      From Table SRC_USER01.ECONOMIC_ENTITY to USER01.ECONOMIC_ENTITY:
             #                   inserts:       235
             #                   updates:        36
             #                   deletes:         0
             #                  discards:         0
      From Table SRC_USER01.GDP_BY_YEAR to USER01.GDP_BY_YEAR:
             #                   inserts:       705
             #                   updates:         0
             #                   deletes:       235
             #                  discards:         0
      From Table SRC_USER01.GDP_GROWTH_BY_YEAR to USER01.GDP_GROWTH_BY_YEAR:
             #                   inserts:       705
             #                   updates:         0
             #                   deletes:       235
             #                  discards:         0
      
      
      
      --More--(75%)                                                                   
      

      [Enter]を押すと、一度1行ずつ移動できます。[Space]を押すと、一度に1ページずつ移動できます。 レポートの一番下に移動します。

      Replicatのinserts/updates/deletesの数が、Extractでの数と一致するはずです。 discardsがあった場合は、破棄された理由を確認する必要があります。

      レポートは、ユーザーがレポートの送信を指定した(上記の操作)場合、またはプロセスが停止した場合に生成されます。 レポートの名前と番号は、最新のレポートにはprocessname.rptが付与され、最近のレポートはprocessname0.rptprocessname1.rptprocessname2.rptとなり、もっとも古いレポートはprocessname9.rptとなります。 新しいレポートが作成されるたびに、もっとも古いレポートが破棄されるまで、古いレポートはすべて名前/番号が変更されて"番号が1つ大きく"なります。 最大11のレポート(番号のない最新のレポートと、0~9の以前のレポート)が同時に保持されます。

    7.2 統計情報を表示する

      ソースのExtractの統計情報を表示します。

      Host01 - Linux
      GGSCI (host01) > Send Extract efinaa, Stats 
      
      Sending STATS request to EXTRACT EFINAA ...
      
      Start of Statistics at 2012-10-03 11:32:54.
      
      Output to ./dirdat/aa:
      
      Extracting from SRC_USER01.ECONOMIC_ENTITY to SRC_USER01.ECONOMIC_ENTITY:
      
      *** Total statistics since 2012-10-02 21:20:37 ***
              Total inserts                                    235.00
              Total updates                                     36.00
              Total deletes                                      0.00
              Total discards                                     0.00
              Total operations                                 271.00
      
      *** Daily statistics since 2012-10-03 00:00:00 ***
              Total inserts                                      0.00
              Total updates                                     36.00
              Total deletes                                      0.00
              Total discards                                     0.00
              Total operations                                  36.00
      
      *** Hourly statistics since 2012-10-03 11:00:00 ***
      
              No database operations have been performed.
      
      *** Latest statistics since 2012-10-02 21:20:37 ***
              Total inserts                                    235.00
              Total updates                                     36.00
              Total deletes                                      0.00
              Total discards                                     0.00
              Total operations                                 271.00
      
      Extracting from SRC_USER01.GDP_BY_YEAR to SRC_USER01.GDP_BY_YEAR:
      
      *** Total statistics since 2012-10-02 21:20:37 ***
              Total inserts                                    705.00
              Total updates                                      0.00
              Total deletes                                    235.00
              Total discards                                     0.00
              Total operations                                 940.00
      
      *** Daily statistics since 2012-10-03 00:00:00 ***
              Total inserts                                    705.00
              Total updates                                      0.00
              Total deletes                                    235.00
              Total discards                                     0.00
              Total operations                                 940.00
      
      *** Hourly statistics since 2012-10-03 11:00:00 ***
      
              No database operations have been performed.
      
      *** Latest statistics since 2012-10-02 21:20:37 ***
              Total inserts                                    705.00
              Total updates                                      0.00
              Total deletes                                    235.00
              Total discards                                     0.00
              Total operations                                 940.00
      
      Extracting from SRC_USER01.GDP_GROWTH_BY_YEAR to SRC_USER01.GDP_GROWTH_BY_YEAR:
      
      *** Total statistics since 2012-10-02 21:20:37 ***
              Total inserts                                    705.00
              Total updates                                      0.00
              Total deletes                                    235.00
              Total discards                                     0.00
              Total operations                                 940.00
      
      *** Daily statistics since 2012-10-03 00:00:00 ***
              Total inserts                                    705.00
              Total updates                                      0.00
              Total deletes                                    235.00
              Total discards                                     0.00
              Total operations                                 940.00
      
      *** Hourly statistics since 2012-10-03 11:00:00 ***
      
              No database operations have been performed.
      
      *** Latest statistics since 2012-10-02 21:20:37 ***
              Total inserts                                    705.00
              Total updates                                      0.00
              Total deletes                                    235.00
              Total discards                                     0.00
              Total operations                                 940.00
      
      End of Statistics.
      
      
      GGSCI (host01) >                                                               
      

      コマンドStats efinaaで、同じ処理が実行されます。 何らかの理由でプロセスが停止した場合は、統計情報はすべて失われます。

      ターゲットのReplicatの統計情報を表示します。

      Host02 - Linux
      GGSCI (host02) > Send Replicat rfinab, Stats
      
      Sending STATS request to REPLICAT RFINAB ...
      
      Start of Statistics at 2012-10-03 11:36:29.
      
      Replicating from SRC_USER01.ECONOMIC_ENTITY to USER01.ECONOMIC_ENTITY:
      
      *** Total statistics since 2012-10-02 21:20:38 ***
              Total inserts                                    235.00
              Total updates                                     36.00
              Total deletes                                      0.00
              Total discards                                     0.00
              Total operations                                 271.00
      
      *** Daily statistics since 2012-10-03 00:00:00 ***
              Total inserts                                      0.00
              Total updates                                     36.00
              Total deletes                                      0.00
              Total discards                                     0.00
              Total operations                                  36.00
      
      *** Hourly statistics since 2012-10-03 11:00:00 ***
      
              No database operations have been performed.
      
      *** Latest statistics since 2012-10-02 21:20:38 ***
              Total inserts                                    235.00
              Total updates                                     36.00
              Total deletes                                      0.00
              Total discards                                     0.00
              Total operations                                 271.00
      
      Replicating from SRC_USER01.GDP_BY_YEAR to USER01.GDP_BY_YEAR:
      
      *** Total statistics since 2012-10-02 21:20:38 ***
              Total inserts                                    705.00
              Total updates                                      0.00
              Total deletes                                    235.00
              Total discards                                     0.00
              Total operations                                 940.00
      
      *** Daily statistics since 2012-10-03 00:00:00 ***
              Total inserts                                    705.00
              Total updates                                      0.00
              Total deletes                                    235.00
              Total discards                                     0.00
              Total operations                                 940.00
      
      *** Hourly statistics since 2012-10-03 11:00:00 ***
      
              No database operations have been performed.
      
      *** Latest statistics since 2012-10-02 21:20:38 ***
              Total inserts                                    705.00
              Total updates                                      0.00
              Total deletes                                    235.00
              Total discards                                     0.00
              Total operations                                 940.00
      
      Replicating from SRC_USER01.GDP_GROWTH_BY_YEAR to USER01.GDP_GROWTH_BY_YEAR:
      
      *** Total statistics since 2012-10-02 21:20:38 ***
              Total inserts                                    705.00
              Total updates                                      0.00
              Total deletes                                    235.00
              Total discards                                     0.00
              Total operations                                 940.00
      
      *** Daily statistics since 2012-10-03 00:00:00 ***
              Total inserts                                    705.00
              Total updates                                      0.00
              Total deletes                                    235.00
              Total discards                                     0.00
              Total operations                                 940.00
      
      *** Hourly statistics since 2012-10-03 11:00:00 ***
      
              No database operations have been performed.
      
      *** Latest statistics since 2012-10-02 21:20:38 ***
              Total inserts                                    705.00
              Total updates                                      0.00
              Total deletes                                    235.00
              Total discards                                     0.00
              Total operations                                 940.00
      
      End of Statistics.
      
      
      GGSCI (host02) >                                                               
      

      !!!確認!!! 前のプライマリのExtractの統計情報は、Data Pumpが関連していたため、スキーマSRC_USER01からSRC_USER01でした。 これはより明確になり、スキーマSRC_USER01からUSER01となっています。

      他の種類の統計情報も利用できます。

    7.3 プロセスを停止および削除する

      このOBEでの操作を先に進めるには、いくつかのプロセスを停止する必要があるため、Stop Extract efinaaを入力するか、またはStop *を入力してホスト上のすべてのプロセスを停止します。 efinaaを停止するプロセス名に置き換えます。

      個々のプロセスを削除する場合は、最初にデータベースに接続していることを確認してから(DBLogin)、Delete Extract efinaaと入力するか、またはDelete ER *と入力してホスト上のすべてのプロセスを削除します。 GGSCIで"Are you sure?"と確認を求められたら、yと入力します。 この確認をなくすには、コマンドの最後に感嘆符を追加します。 たとえば、Delete ER * !とすると、答えは「はい」であると見なされます。

      赤のホスト(host01)に接続し、Oracleのレプリケーション・ソースとして使用するOracle GoldenGateインスタンス(/home/user01/oracle/ggs_srcディレクトリ)で実行されているすべてのプロセスを停止します。 また、Oracle GoldenGate Managerプロセスも停止します。

      Host01 - Linux
      [user01@host01 ~]$ cd ~/oracle/ggs_src 
      [user01@host01 ggs_src]$ ./ggsci 
      
      Oracle GoldenGate Command Interpreter for Oracle
      Version 11.2.1.0.0 OGGCORE_11.2.1.0.0_PLATFORMS_120131.1910_FBO
      Linux, x64, 64bit (optimized), Oracle 11g on Feb  1 2012 00:55:59
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      GGSCI (host01) 1> Obey startup.oby 
      
       ... many lines omitted for clarity ... but make sure everything started.
      
      GGSCI (host01) 2> stop er * 
      Sending STOP request to EXTRACT EFINAA ...
      Request processed.
      
      Sending STOP request to EXTRACT PFINAB ...
      Request processed.
      
      GGSCI (host01) 3>  stop mgr                                                          
      Manager process is required by other GGS processes.
      Are you sure you want to stop it (y/n)?  y 
      Sending STOP request to MANAGER ...
      Request processed.
      Manager stopped.       
      GGSCI (host01) 4> Exit 
      [user01@host01 ggs_src]$                                                   
      

      青のホスト(host02)に接続し、DB2のレプリケーション・ターゲットとして使用するOracle GoldenGateインスタンス(/home/user01/db2/ggs_trgディレクトリ)で実行されているすべてのプロセスを停止します。 また、Oracle GoldenGate Managerプロセスも停止します。

      Host02 - Linux
      [user01@host02 ~]$ cd ~/db2/ggs_trg 
      [user01@host02 ggs_trg]$ ./ggsci 
      
      Oracle GoldenGate Command Interpreter for DB2
      Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230
      Linux, x64, 64bit (optimized), DB2 9.7 on Apr 23 2012 06:02:54
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      
      GGSCI (host02) 1> Obey startup.oby 
      
       ... many lines omitted for clarity ... but make sure everything started.
      
      GGSCI (host02) 2> stop er * 
      Sending STOP request to REPLICAT RFINAB ...
      Request processed.
      
      GGSCI (host01) 3>  stop mgr                                                          
      Manager process is required by other GGS processes.
      Are you sure you want to stop it (y/n)?  y 
      Sending STOP request to MANAGER ...
      Request processed.
      Manager stopped.                                                         
      GGSCI (host02) 4> Exit 
      [user01@host02 ggs_trg]$                                             
      

8. Extractを使用したデータ取得の設定(DB2からOracle)

    データ取得(Extractとも呼ばれます)は、ソース側で実行します。 プライマリのExtractは必須です。セカンダリのExtract(Data Pumpとも呼ばれます)はオプションですが、強くお勧めします。 データ取得を設定するには、次の手順を実行します。

    8.1 DB2ソース・インスタンスでプライマリのExtractを設定する

      ソースのhost02で、プライマリExtractパラメータ・ファイルを作成します。

      概要で説明しているネーミング規則を使用して、path/filename.extdirprm/efinaa.prmにします。 パスと拡張子は自動的に追加されます (プライマリのExtractでは、証跡ファイルをターゲット・ホストに直接書き込むことができ、その場合、接尾辞は"ab"になります。ただし、ソース・ホストから読み取られる前にローカルのデータ・ポンプに渡されるため、接尾辞は"aa"になります。 これらすべては単なる規則であり、プロセスには任意の名前を指定できます)。

      Host02 - Linux
      [user01@host02 ~] cd ~/db2/ggs_src 
      [user01@host02 ggs_src]$ ./ggsci 
      Oracle GoldenGate Command Interpreter for DB2
      Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230
      Linux, x64, 64bit (optimized), DB2 9.7 on Apr 23 2012 06:02:54
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      
      GGSCI (host02) 1> Obey startup.oby 
      
       ... many lines omitted for clarity ... but make sure everything started.
      
      GGSCI (host02) > Edit Param efinaa
      -- Primary Extract from host02 to host01
      Extract efinaa
      ExtTrail ./dirdat/aa
      SourceDB ggs_src, UserID user01, Password Welcome1
      Table user01.*; 
      
      GGSCI (host02) >                                                                
      

      View Param efinaaと入力すると、作業内容をいつでも確認できます。

      ExtractグループとローカルのExtract証跡ファイルを作成します。

      Host02 - Linux
      GGSCI (host02) > Add Extract efinaa, TranLog, Begin Now 
      EXTRACT added.
      
      GGSCI (host02) > Add ExtTrail ./dirdat/aa, Extract efinaa, Megabytes 5
      EXTTRAIL added.
      
      GGSCI (host02) >                                                                
      

      Megabytes 5はオプションです。 デフォルトは100メガバイトです。

      プライマリのExtractが作成および設定されましたが、開始されていません。 次の手順のために、GGSCIを実行したままにします。

    8.2 Data Pumpを設定する(DB2からOracle)

      セカンダリExtract(Data Pump)パラメータ・ファイルを作成します。

      概要で説明しているネーミング規則を使用して、path/filename.extdirprm/pfinab.prmにします。 パスと拡張子は自動的に追加されます。

      Host02 - Linux
      GGSCI (host02) > Edit Param pfinab
      -- Data pump (secondary Extract) from host02 to host01
      Extract pfinab
      RmtHost host01, MgrPort 7909, Compress
      RmtTrail ./dirdat/ab
      Passthru
      Table user01.*; 
      
      GGSCI (host02) >                                                               
      

      このTableスキーマはソースです。

      View Param pfinabと入力すると、作業内容をいつでも確認できます。

      Data PumpグループとリモートのExtract証跡ファイルを作成します。

      Host02 - Linux
      GGSCI (host02) > Add Extract pfinab, ExtTrailSource ./dirdat/aa 
      EXTRACT added.
      
      GGSCI (host02) > Add RmtTrail ./dirdat/ab, Extract pfinab, Megabytes 5
      RMTTRAIL added.
      
      GGSCI (host02) >                                                              
      

      Megabytes 5はオプションです。 デフォルトは100メガバイトです。

      Data Pumpでは、ローカルの証跡ファイルaaからの読取りとリモートの証跡ファイルabへの書込みが実行されます。 作成されるリモートの証跡ファイルにはdirdat/ab000000という名前が付与され、この証跡ファイルがいっぱいになると、次の証跡ファイルはdirdat/ab000001という名前になり、その次はdirdat/ab000002となります。 2セットの証跡ファイルは異なるホストに配置されるため(同じ名前のディレクトリに配置される場合でも)、同じ名前(abなど)になる可能性があります。 異なるファイル名は、単にパラメータRmtTrailで別の証跡ファイルが作成されることを示すために選択されます。

      セカンダリのExtractが作成および設定されましたが、開始されていません。 次の手順のために、GGSCIを実行したままにします。

    8.3 Extractプロセスを検証する(オプション)

      Extractプロセスが正しく作成および登録されていることを確認します。

      Host02 - Linux
      GGSCI (host02) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING
      EXTRACT     STOPPED     EFINAA    00:00:00      00:03:24
      EXTRACT     STOPPED     PFINAB    00:00:00      00:01:22
      
      GGSCI (host02) >                                                            
      

      Manager以外はまだ何も開始されていないため、ExtractのステータスはSTOPPEDと表示されます。

      証跡ファイルが正しく作成および登録されていることを確認します。

      Host02 - Linux
      GGSCI (host02) > Info ExtTrail *
      
             Extract Trail: ./dirdat/aa
                   Extract: EFINAA
                     Seqno: 0
                       RBA: 0
                 File Size: 5M
      
             Extract Trail: ./dirdat/ab
                   Extract: PFINAB
                     Seqno: 0
                       RBA: 0
                 File Size: 5M
      
      GGSCI (host01) >                                                           
      

      まだ何も開始されていないため、順序番号(Seqno)と相対バイト・アドレス(RBA)は0と表示されます。

      次の手順のために、GGSCIを実行したままにします。

9. Replicatを使用したデータ配信の設定(DB2からOracle)

    データ配信(Replicatとも呼ばれます。"e"は意図的に省略されています)は、ターゲット側で実行します。 データ配信を設定するには、次の手順を実行します。

    9.1 Replicatを設定する(DB2からOracle)

      ターゲットのhost01で、Replicatパラメータ・ファイルを作成します。

      赤のホスト(host01)で新しいターミナル・ウィンドウを作成し、ターゲットのOracle GoldenGateインスタンスをホストするggs_trgディレクトリに移動します。

      Host02 - Linux
      [user01@host01 ~]$ cd ~/oracle/ggs_trg 
      [user01@host01 ggs_trg]$ ./ggsci 
      
      Oracle GoldenGate Command Interpreter for Oracle
      Version 11.2.1.0.0 OGGCORE_11.2.1.0.0_PLATFORMS_120131.1910_FBO
      Linux, x64, 64bit (optimized), Oracle 11g on Feb  1 2012 00:55:59
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      GGSCI (host01) 1> Obey startup.oby 
      
       ... many lines omitted for clarity ... but make sure everything started.
      
      GGSCI (host01) > Edit Param rfinab
      -- Delivery from host02 to host01
      Replicat rfinab
      UserID oggadm@ogg11r2, Password Welcome1
      SourceDefs dirdef/usr1tabs.def
      DiscardFile dirrpt/rfinab.dsc, Append
      Map user01.*, Target trg_user01.*;
      
      GGSCI (host01) >                                                            
      

      Map文は、列とフィールドを変換して、(ここに示すように)シンプルにも非常に複雑にもできます。 たとえば、3つのソース列first_name、middle_init、last_nameを組み合わせて1つのターゲット列full_nameにすることができます。

      Replicatプロセスを作成します。

      Host01 - Linux
      GGSCI (host01) > Add Replicat rfinab, ExtTrail ./dirdat/ab 
      REPLICAT added.
      
      GGSCI (host01) >                                                            
      

      View Param rfinabと入力すると、作業内容をいつでも確認できます。

      Replicatプロセスが正しく作成および登録されていることを確認します。

      Host01 - Linux
      GGSCI (host01) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING
      REPLICAT    STOPPED     RFINAB    00:00:00      00:00:33
      
      GGSCI (host01) >                                                            
      

      Manager以外はまだ何も開始されていないため、ReplicatのステータスはSTOPPEDと表示されます。

    9.2 すべてのプロセスを開始する

      ソースですべてのExtractプロセスを開始します。

      Host02 - Linux
      GGSCI (host02) > Start Extract * 
      
      Sending START request to MANAGER ...
      EXTRACT EFINAA starting
      
      Sending START request to MANAGER ...
      EXTRACT PFINAB starting
      
      GGSCI (host2) >                                                              
      

      Start *と入力するか、 Start e01*および Start p01*と入力することもできます。

      ターゲットですべてのReplicatプロセスを開始します。

      Host01 - Linux
      GGSCI (host01) > Start Replicat *
      
      Sending START request to MANAGER ...
      REPLICAT RFINAB starting
      
      GGSCI (host01) >                                                             
      

      Start *または Start rfin*と入力することもできます。

      ターゲットのすべてのプロセスに関する情報を表示します。

      概要情報を表示します。

      Host01 - Linux
      GGSCI (host01) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING
      REPLICAT    RUNNING     RFINAB    00:00:00      00:00:03
      
      GGSCI (host01) >                                                             
      

      さらに情報を表示します。

      Host01 - Linux
      GGSCI (host01) > Info rfinab 
      
      REPLICAT   RFINAB    Last Started 2012-10-02 21:04   Status RUNNING
      Checkpoint Lag       00:00:00 (updated 00:00:05 ago)
      Log Read Checkpoint  File ./dirdat/ab000000
                           First Record  RBA 0
      
      GGSCI (host01) >                                                             
      

      さらに詳細情報を表示します。

      Host01 - Linux
      GGSCI (host01) > Info rfinab, Detail 
      
      REPLICAT   RFINAB    Last Started 2012-10-02 21:04   Status RUNNING
      Checkpoint Lag       00:00:00 (updated 00:00:02 ago)
      Log Read Checkpoint  File ./dirdat/ab000000
                           First Record  RBA 0
      
        Extract Source                          Begin             End
      
        ./dirdat/ab000000                       * Initialized *   First Record
        ./dirdat/ab000000                       * Initialized *   First Record
      
      
      Current directory    /home/user01/db2/ggs_trg
      
      Report file          /home/user01/db2/ggs_trg/dirrpt/RFINAB.rpt
      Parameter file       /home/user01/db2/ggs_trg/dirprm/rfinab.prm
      Checkpoint file      /home/user01/db2/ggs_trg/dirchk/RFINAB.cpr
      Checkpoint table     user01.oggchkpt
      Process file         /home/user01/db2/ggs_trg/dirpcs/RFINAB.pcr
      Stdout file          /home/user01/db2/ggs_trg/dirout/RFINAB.out
      Error log            /home/user01/db2/ggs_trg/ggserr.log
      
      
      GGSCI (host01) >                                                             
      

      どの場合にも、StatusRUNNINGになり、前回の更新またはチェックポイントからの時間は10秒未満になります。

      ソースのすべてのプロセスに関する情報を表示します。

      概要情報を表示します。

      Host01 - Linux
      GGSCI (host02) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING
      EXTRACT     RUNNING     EFINAA      00:14:14      00:00:00
      EXTRACT     RUNNING     PFINAB      00:00:00      00:04:09
      
      
      GGSCI (host02) >                                                             
      

      詳細情報を表示します。

      Host02 - Linux
      GGSCI (host02) > Info Extract *
      
      EXTRACT    EFINAA    Last Started 2012-10-02 21:04   Status RUNNING
      Checkpoint Lag       00:00:00 (updated 00:00:02 ago)
      Log Read Checkpoint  Oracle Redo Logs
                           2012-10-02 21:07:33  Seqno 9, RBA 10427392
                           SCN 0.1166534 (1166534)
      
      EXTRACT    PFINAB    Last Started 2012-10-02 21:04   Status RUNNING
      Checkpoint Lag       00:00:00 (updated 00:00:00 ago)
      Log Read Checkpoint  File ./dirdat/aa000000
                           First Record  RBA 1041
      
      
      GGSCI (host02) > Exit
      [user01@host02 ggs_src]                                                      
      

      Replicatと同様に、StatusRUNNINGになり、前回の更新またはチェックポイントからの時間は10秒未満になります。

      どの場合でも、ステータスRUNNINGが表示されます。 ソース表は空のままです。 まだデータが配置されておらず、何もレプリケートされていません。

10. データの生成(DB2からOracle)

    既存の表をレプリケートする方法(複雑)と新しい空の表を使って始める方法(簡単)は、異なります。 空の表セットにサンプル・データを生成するには、次の手順を実行します。

    10.1 INSERTを生成する(Initial Load)

      SQLスクリプトを実行して行を挿入(INSERT)します。

      ソースのhost02で、OSプロンプトを使用してsqlpluseconomic_entity.sqlスクリプトを実行し、ECONOMIC_ENTITY表を移入します。

      Host02 - Linux
      [user01@host02 ~]$ cd ~/ddl
      [user01@host02 ddl]$ db2 connect to ggs_src user user01 using Welcome1 
      
         Database Connection Information
      
       Database server        = DB2/LINUXX8664 9.7.5
       SQL authorization ID   = USER01
       Local database alias   = GGS_SRC
      
      [user01@host02 ddl]$ db2 -tvf economic_entity.sql 
      
      Insert into ECONOMIC_ENTITY (ENTITY_ID,ECONOMIC_ENTITY,CONTINENT) values 
      (172,'Algeria','AFRICA'); DB20000I The SQL command completed successfully. ... many lines omitted for clarity ... DB20000I The SQL command completed successfully. [user01@host02 ddl]$  

      エラーは表示されないはずです。

      ソース表に行が挿入されたことを確認します。

      Host02 - Linux
      [user01@host02 ddl]$ db2 SELECT count\(*\) FROM economic_entity 
      
      1
      -----------
              235
      
        1 record(s) selected.
      
      [user01@host02 ddl]$ db2 SELECT ENTITY_ID, ECONOMIC_ENTITY, CONTINENT FROM \
      > economic_entity WHERE continent = \'EUROPE\' order by ENTITY_ID ENTITY_ID ECONOMIC_ENTITY CONTINENT ----------- --------------------------------- -------------------- 48 Austria EUROPE 49 Belgium-Luxembourg EUROPE 50 Belgium EUROPE 51 Luxembourg EUROPE 52 Denmark EUROPE 53 Finland EUROPE 54 France EUROPE 55 Germany EUROPE 56 Greece EUROPE 57 Ireland EUROPE 58 Italy EUROPE 59 Netherlands EUROPE 60 Portugal EUROPE 61 Spain EUROPE 62 Sweden EUROPE 63 United Kingdom EUROPE 65 Bulgaria EUROPE 66 Cyprus EUROPE 67 Czech Republic EUROPE 68 Estonia EUROPE 69 Hungary EUROPE 70 Latvia EUROPE 71 Lithuania EUROPE 72 Malta and Gozo EUROPE 73 Poland EUROPE 74 Romania EUROPE 75 Slovakia EUROPE 76 Slovenia EUROPE 77 Other Europe EUROPE 79 Iceland EUROPE 80 Norway EUROPE 81 Switzerland EUROPE 83 Albania EUROPE 84 Bosnia Herzegovina EUROPE 85 Croatia EUROPE 86 Macedonia EUROPE 87 Serbia EUROPE 89 Russia EUROPE 90 Ukraine EUROPE 92 Armenia EUROPE 93 Azerbaijan EUROPE 94 Belarus EUROPE 95 Georgia EUROPE 96 Kazakhstan EUROPE 97 Kyrgyzstan EUROPE 98 Moldova EUROPE 99 Tajikistan EUROPE 100 Turkmenistan EUROPE 101 Uzbekistan EUROPE 49 record(s) selected. [user01@host02 ddl]$  

      ソースのGGSCI Extractプロセスがまだ実行されていることを確認します。

      ソースのhost02で、以下のコマンドを入力します。

      Host02 - Linux
      [user01@host02 ~]$  cd ~/db2/ggs_src
      [user01@host02 ggs_src]$ ./ggsci 
      
      Oracle GoldenGate Command Interpreter for DB2
      Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230
      Linux, x64, 64bit (optimized), DB2 9.7 on Apr 23 2012 06:02:54
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      
      GGSCI (host02) 1> Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING
      EXTRACT     RUNNING     EFINAA      00:00:00      00:00:07
      EXTRACT     RUNNING     PFINAB      00:00:00      00:00:08
      
      
      GGSCI (host02) 2> Exit 
      [user01@host02 ggs_src]$                                                     
      

      StatusABENDEDと表示される場合は、プロセス・レポート(後述のトピックで説明)でエラーの内容を確認します。

      ターゲットのGGSCI Replicatプロセスがまだ実行されていることを確認します。

      赤のホストで、GGSCIがまだ実行されているはずです。 以下のコマンドを入力します。

      Host01 - Linux
      GGSCI (host01) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING
      REPLICAT    RUNNING     RFINAB      00:00:00      00:00:07
      
      GGSCI (host01) > Exit 
      [user01@host01 ggs_trg]$                                                     
      

      StatusABENDEDと表示される場合は、プロセス・レポート(後述のトピックで説明)でエラーの内容を確認します。

      ターゲット表に行が挿入されたことを確認します。

      レプリケーション・ターゲットの赤のホストで、OSプロンプトを使用して、次のOracle SQL問合せを実行します。

      Host01 - Linux
      [user01@host01 ~]$ sqlplus trg_user01/Welcome1@ogg11r2
      
      SQL*Plus: Release 11.2.0.3.0 Production on Wed Oct 3 15:57:29 2012
      
      Copyright (c) 1982, 2011, Oracle.  All rights reserved.
      
      
      Connected to:
      Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
      With the Partitioning, OLAP, Data Mining and Real Application Testing options
      
      SQL>  select count(*) from economic_entity;
      
        COUNT(*)
      ----------
             235
      
      SQL> set pagesize 999 
      SQL> set linesize 132
      SQL> column economic_entity format a60
      SQL> select * from economic_entity where continent = 'EUROPE' order by entity_id;
      
       ENTITY_ID ECONOMIC_ENTITY                                              CONTINENT
      ---------- ------------------------------------------------------------ -----------
              48 Austria                                                      EUROPE
              49 Belgium-Luxembourg                                           EUROPE
              50 Belgium                                                      EUROPE
              51 Luxembourg                                                   EUROPE
              52 Denmark                                                      EUROPE
              53 Finland                                                      EUROPE
              54 France                                                       EUROPE
              55 Germany                                                      EUROPE
              56 Greece                                                       EUROPE
              57 Ireland                                                      EUROPE
              58 Italy                                                        EUROPE
              59 Netherlands                                                  EUROPE
              60 Portugal                                                     EUROPE
              61 Spain                                                        EUROPE
              62 Sweden                                                       EUROPE
              63 United Kingdom                                               EUROPE
              65 Bulgaria                                                     EUROPE
              66 Cyprus                                                       EUROPE
              67 Czech Republic                                               EUROPE
              68 Estonia                                                      EUROPE
              69 Hungary                                                      EUROPE
              70 Latvia                                                       EUROPE
              71 Lithuania                                                    EUROPE
              72 Malta and Gozo                                               EUROPE
              73 Poland                                                       EUROPE
              74 Romania                                                      EUROPE
              75 Slovakia                                                     EUROPE
              76 Slovenia                                                     EUROPE
              77 Other Europe                                                 EUROPE
              79 Iceland                                                      EUROPE
              80 Norway                                                       EUROPE
              81 Switzerland                                                  EUROPE
              83 Albania                                                      EUROPE
              84 Bosnia Herzegovina                                           EUROPE
              85 Croatia                                                      EUROPE
              86 Macedonia                                                    EUROPE
              87 Serbia                                                       EUROPE
              89 Russia                                                       EUROPE
              90 Ukraine                                                      EUROPE
              92 Armenia                                                      EUROPE
              93 Azerbaijan                                                   EUROPE
              94 Belarus                                                      EUROPE
              95 Georgia                                                      EUROPE
              96 Kazakhstan                                                   EUROPE
              97 Kyrgyzstan                                                   EUROPE
              98 Moldova                                                      EUROPE
              99 Tajikistan                                                   EUROPE
             100 Turkmenistan                                                 EUROPE
             101 Uzbekistan                                                   EUROPE
      
      49 rows selected.
      
      SQL> exit
      
      [user01@host01 ~]$                                                    
      

      ソース・データベースとターゲット・データベースのECONOMIC_ENTITY表が一致しているはずです。

      追加の経済データをレプリケーション・ソース(青のホストにあるggs_src)にアップロードします。 ddlディレクトリには、いくつかのSQLスクリプトが含まれています。 gdp_by_year.sqlスクリプトとgdp_growth_by_year.sqlスクリプトは、世界のGDPデータを、それぞれGDP_BY_YEAR表とGDP_GROWTH_BY_YEAR表にアップロードします。

      青のホストで、OSプロンプトを使用して2つのSQLスクリプトを実行します。

      Host02 - Linux
      [user01@host02 ~]$ cd ~/ddl
      [user01@host02 ddl]$ db2 connect to ggs_src user user01 using Welcome1 
      
         Database Connection Information
      
       Database server        = DB2/LINUXX8664 9.7.5
       SQL authorization ID   = USER01
       Local database alias   = GGS_SRC
      
      [user01@host02 ddl]$ db2 -tvf gdp_by_year.sql
      
      insert into gdp_by_year (ENTITY_ID, GDP_YEAR, GDP_VALUE) 
      values (184, 2007, 6.12602) DB20000I The SQL command completed successfully. ... many lines omitted for clarity ... commit DB20000I The SQL command completed successfully. [user01@host02 ddl]$ db2 -tvf gdp_growth_by_year.sql insert into gdp_growth_by_year (ENTITY_ID, GDP_YEAR, GDP_VALUE) values
      (184, 2007, 3.6) DB20000I The SQL command completed successfully. ... many lines omitted for clarity ... commit DB20000I The SQL command completed successfully. [user01@host02 ddl]$ db2 select count \(*\) from gdp_by_year 1 ----------- 705 1 record(s) selected. [user01@host02 ddl]$ db2 select count \(*\) from gdp_growth_by_year 1 ----------- 705 1 record(s) selected. [user01@host02 ddl]$  

      ターゲット表に行が挿入されたことを確認します。

      レプリケーション・ターゲットの赤のホストで、OSプロンプトを使用して、次のOracle SQL問合せを実行します。

      Host01 - Linux
      [user01@host01 ~]$  sqlplus trg_user01/Welcome1@ogg11r2
      SQL*Plus: Release 11.2.0.3.0 Production on Wed Oct 3 01:14:24 2012
      
      Copyright (c) 1982, 2011, Oracle.  All rights reserved.
      
      
      Connected to:
      Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
      With the Partitioning, OLAP, Data Mining and Real Application Testing options
      
      
      SQL> select count(*) from gdp_by_year;
      
        COUNT(*)
      ----------
             705
      
      SQL> select count(*) from gdp_growth_by_year;
      
        COUNT(*)
      ----------
             705
      
      [user01@host01 ~]$                                                            
      

      ソース・データベースとターゲット・データベースのGDP_BY_YEAR表とGDP_GROWTH_BY_YEAR表が一致しているはずです。

    10.2 UPDATE/DELETEを生成する

      青のホストで、OSプロンプトを使用してdb2ユーティリティを実行し、DB2のGGS_SRCデータベースに接続します。
      ECONOMIC_ENTITYでは、"日本を除く東アジア圏"または"他の西欧圏"のような単一国家ではない経済主体はすべて、CONTINENT列に"N/A"と表示されます。 "N/A""Not a continent"に変更します。
      また、GDP_BY_YEAR表とGDP_GROWTH_BY_YEAR表には、2005~2007年の経済データが含まれています。 2005年のデータに関連するエントリをすべて消去します。

      Host02 - Linux
      [user01@host02 ~] db2
      (c) Copyright IBM Corporation 1993,2007
      Command Line Processor for DB2 Client 9.7.5
      
      You can issue database manager commands and SQL statements from the command
      prompt. For example:
          db2 => connect to sample
          db2 => bind sample.bnd
      
      For general help, type: ?.
      For command help, type: ? command, where command can be
      the first few keywords of a database manager command. For example:
       ? CATALOG DATABASE for help on the CATALOG DATABASE command
       ? CATALOG          for help on all of the CATALOG commands.
      
      To exit db2 interactive mode, type QUIT at the command prompt. Outside
      interactive mode, all commands must be prefixed with 'db2'.
      To list the current command option settings, type LIST COMMAND OPTIONS.
      
      For more detailed help, refer to the Online Reference Manual.
      
      db2 => connect to ggs_src user user01 using Welcome1
      
         Database Connection Information
      
       Database server        = DB2/LINUXX8664 9.7.5
       SQL authorization ID   = USER01
       Local database alias   = GGS_SRC
      
      db2 => UPDATE ECONOMIC_ENTITY set CONTINENT = 'Not a continent' WHERE CONTINENT = 'N/A'
      DB20000I  The SQL command completed successfully.
      
      db2 => DELETE FROM GDP_BY_YEAR where GDP_YEAR=2005 
      DB20000I  The SQL command completed successfully.
      
      db2 => DELETE FROM GDP_GROWTH_BY_YEAR where GDP_YEAR=2005
      DB20000I  The SQL command completed successfully.
      
      db2 => commit
      DB20000I  The SQL command completed successfully.
      
      db2 =>                                                          
      

      ターゲット表の行が更新および削除されたことを確認します。

      Host01 - Linux
      [user01@host01 ~]$ sqlplus trg_user01/Welcome1@ogg11r2
      SQL*Plus: Release 11.2.0.3.0 Production on Wed Oct 3 21:42:14 2012
      
      Copyright (c) 1982, 2011, Oracle.  All rights reserved.
      
      Connected to:
      Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
      With the Partitioning, OLAP, Data Mining and Real Application Testing options
      
      SQL> select min(gdp_year) from gdp_by_year;
      
      MIN(GDP_YEAR)
      -------------
               2006
      
      SQL> select min(gdp_year) from gdp_growth_by_year;
      
      MIN(GDP_YEAR)
      -------------
               2006
      
      SQL> select distinct continent from economic_entity;
      
      CONTINENT
      --------------------
      AFRICA
      EUROPE
      AMERICAS
      OCEANIA
      ASIA
      Not a continent
      
      6 rows selected.
      
      SQL>                                                             
      

      2005年に関連した経済データが削除されたかどうかは、ターゲット・データベースでGDP_BY_YEARGDP_GROWTH_BY_YEARの最初の年が2006年になっているかで確認できます。 また、ECONOMIC_ENTITY表の更新が成功した場合は、SELECT DISTINCT文で、大陸として'N/A'が表示される行はなくなります。

      ソースのGGSCI Extractプロセスがまだ実行されていることを確認します。

      青のホスト(ソース)で、以下のコマンドを入力します。

      Host02 - Linux
      [user01@host02 ~]$ cd ~/db2/ggs_src 
      [user01@host02 ggs_src]$ ./ggsci 
      
      Oracle GoldenGate Command Interpreter for DB2
      Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230
      Linux, x64, 64bit (optimized), DB2 9.7 on Apr 23 2012 06:02:54
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      GGSCI (host02) 1> Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING
      EXTRACT     RUNNING     EFINAA      00:00:00      00:00:07
      EXTRACT     RUNNING     PFINAB      00:00:00      00:00:05
      
      
      GGSCI (host02)>                                                             
      

      GGSCI Replicatプロセスがまだ実行されていることを確認します。

      赤のホスト(ソース)でGGSCIを実行し、以下のコマンドを入力します。

      Host01 - Linux
      [user01@host01 ~]$ cd ~/oracle/ggs_trg 
      [user01@host01 ggs_trg]$ ./ggsci 
      
      Oracle GoldenGate Command Interpreter for Oracle
      Version 11.2.1.0.0 OGGCORE_11.2.1.0.0_PLATFORMS_120131.1910_FBO
      Linux, x64, 64bit (optimized), Oracle 11g on Feb  1 2012 00:55:59
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      
      
      GGSCI (host01) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING
      REPLICAT    RUNNING     RFINAB      00:00:00      00:00:07
      
      
      GGSCI (host01) >                                                            
      

      StatusはまだRUNNINGとなっているはずです。

      異種環境間におけるOracle GoldenGateの基本的な一方向機能であるExtract、Data Pump、Replicatの構成と操作が完了しました。

11. Oracle GoldenGate環境の管理(DB2からOracle)

    プロセスの実行中と実行後にレポートが生成されます。 このレポートには、プロセスの実行に関連する情報、警告、およびエラー(発生した場合)が含まれています。 レポートを表示するには、次の手順を実行します。

    11.1 レポートを表示する

      ソースのプロセス・レポートを表示します。

      Extractのプロセス・レポートを表示します。

      Host02 - Linux
      GGSCI (host02) > Send Extract efinaa, Report 
      
      Sending REPORT request to EXTRACT EFINAA ...
      Request processed.
      
      GGSCI (host02) > View Report efinaa 
      
      **********************************************************************
                         Oracle GoldenGate Capture for DB2
            Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230
          Linux, x64, 64bit (optimized), DB2 9.7 on Apr 23 2012 06:10:15
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      
                          Starting at 2012-10-03 14:07:46
      ***********************************************************************
      
       ... many lines omitted for clarity ... 
      
      
      2012-10-03 10:40:02  INFO    OGG-01021  Command received from GGSCI: REPORT.
      
      ***********************************************************************
      *                   ** Run Time Statistics **                         *
      ***********************************************************************
      
      
      Report at 2012-10-03 21:59:59 (activity since 2012-10-03 15:48:27)
      
      Output to ./dirdat/aa:
      
      From Table USER01.ECONOMIC_ENTITY:
             #                   inserts:       235
             #                   updates:        36
             #                   deletes:         0
             #                  discards:         0
      From Table USER01.GDP_BY_YEAR:
             #                   inserts:       705
             #                   updates:         0
             #                   deletes:       235
             #                  discards:         0
      From Table USER01.GDP_GROWTH_BY_YEAR:
             #                   inserts:       705
             #                   updates:         0
             #                   deletes:       235
             #                  discards:         0
      
      
       ... many lines omitted for clarity ... 
      
      GGSCI (host02) >                                                            
      

      [Enter]を押すと、一度1行ずつ移動できます。[Space]を押すと、一度に1ページずつ移動できます。 レポートの一番下に移動します。

      同じ手順を実行してData Pumpのpfinabレポートを表示できます。

      ターゲットのプロセス・レポートを表示します。

      ターゲットの赤のホストで、Replicatのプロセス・レポートを表示します。

      Host01 - Linux
      GGSCI (host01) > Send Replicat rfinab, Report 
      
      Sending REPORT request to REPLICAT RFINAB ...
      Request processed.
      
      GGSCI (host01)> View Report rfinab 
      ***********************************************************************
                       Oracle GoldenGate Delivery for Oracle
          Version 11.2.1.0.0 OGGCORE_11.2.1.0.0_PLATFORMS_120131.1910_FBO
         Linux, x64, 64bit (optimized), Oracle 11g on Feb  1 2012 01:09:15
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      
                          Starting at 2012-10-03 15:08:13
      ***********************************************************************
      
       ... many lines omitted for clarity ... 
      
      ***********************************************************************
      *                   ** Run Time Statistics **                         *
      ***********************************************************************
      
      Last record for the last committed transaction is the following:
      ___________________________________________________________________
      Trail name :  ./dirdat/ab000000
      Hdr-Ind    :     E  (x45)     Partition  :     .  (x04)
      UndoFlag   :     .  (x00)     BeforeAfter:     B  (x42)
      RecLength  :    28 (x001c)    IO Time    : 2012-10-03 21:37:05.979872
      IOType     :     3  (x03)     OrigNode   :   255  (xff)
      TransInd   :     .  (x02)     FormatType :     R  (x52)
      SyskeyLen  :     0  (x00)     Incomplete :     .  (x00)
      AuditRBA   :          0       AuditPos   : 54018716
      Continued  :     N  (x00)     RecCount   :     1  (x01)
      
      2012-10-03 21:37:05.979872 Delete             Len    28 RBA 282706
      Name: USER01.GDP_GROWTH_BY_YEAR
      ___________________________________________________________________
      
      Reading ./dirdat/ab000000, current RBA 282810, 2151 records
      
      Report at 2012-10-03 22:03:59 (activity since 2012-10-03 15:48:37)
      
      From Table USER01.ECONOMIC_ENTITY to TRG_USER01.ECONOMIC_ENTITY:
             #                   inserts:       235
             #                   updates:        36
             #                   deletes:         0
             #                  discards:         0
      From Table USER01.GDP_BY_YEAR to TRG_USER01.GDP_BY_YEAR:
             #                   inserts:       705
             #                   updates:         0
             #                   deletes:       235
             #                  discards:         0
      From Table USER01.GDP_GROWTH_BY_YEAR to TRG_USER01.GDP_GROWTH_BY_YEAR:
             #                   inserts:       705
             #                   updates:         0
             #                   deletes:       235
             #                  discards:         0
      
      --More--(85%)                                                             
      

      [Enter]を押すと、一度1行ずつ移動できます。[Space]を押すと、一度に1ページずつ移動できます。 レポートの一番下に移動します。

      Replicatのinserts/updates/deletesの数が、Extractでの数と一致するはずです。 discardsがあった場合は、破棄された理由を確認する必要があります。

      レポートは、ユーザーがレポートの送信を指定した(上記の操作)場合、またはプロセスが停止した場合に生成されます。 レポートの名前と番号は、最新のレポートにはprocessname.rptが付与され、最近のレポートはprocessname0.rptprocessname1.rptprocessname2.rptとなり、もっとも古いレポートはprocessname9.rptとなります。 新しいレポートが作成されるたびに、もっとも古いレポートが破棄されるまで、古いレポートはすべて名前/番号が変更されて"番号が1つ大きく"なります。 最大11のレポート(番号のない最新のレポートと、0~9の以前のレポート)が同時に保持されます。

    11.2 統計情報を表示する

      ソースのExtractの統計情報を表示します。

      Host02 - Linux
      GGSCI (host02) > Send Extract efinaa, Stats 
      
      Sending STATS request to EXTRACT EFINAA ...
      
      Start of Statistics at 2012-10-03 22:06:52.
      
      Output to ./dirdat/aa:
      
      Extracting from USER01.ECONOMIC_ENTITY to USER01.ECONOMIC_ENTITY:
      
      *** Total statistics since 2012-10-03 15:48:27 ***
              Total inserts                                    235.00
              Total updates                                     36.00
              Total deletes                                      0.00
              Total discards                                     0.00
              Total operations                                 271.00
      
      *** Daily statistics since 2012-10-03 15:48:27 ***
              Total inserts                                    235.00
              Total updates                                     36.00
              Total deletes                                      0.00
              Total discards                                     0.00
              Total operations                                 271.00
      
      *** Hourly statistics since 2012-10-03 22:00:00 ***
      
              No database operations have been performed.
      
      *** Latest statistics since 2012-10-03 15:48:27 ***
              Total inserts                                    235.00
              Total updates                                     36.00
              Total deletes                                      0.00
              Total discards                                     0.00
              Total operations                                 271.00
      
      Extracting from USER01.GDP_BY_YEAR to USER01.GDP_BY_YEAR:
      
      *** Total statistics since 2012-10-03 15:48:27 ***
              Total inserts                                    705.00
              Total updates                                      0.00
              Total deletes                                    235.00
              Total discards                                     0.00
              Total operations                                 940.00
      
      *** Daily statistics since 2012-10-03 15:48:27 ***
              Total inserts                                    705.00
              Total updates                                      0.00
              Total deletes                                    235.00
              Total discards                                     0.00
              Total operations                                 940.00
      
      *** Hourly statistics since 2012-10-03 22:00:00 ***
      
              No database operations have been performed.
      
      *** Latest statistics since 2012-10-03 15:48:27 ***
              Total inserts                                    705.00
              Total updates                                      0.00
              Total deletes                                    235.00
              Total discards                                     0.00
              Total operations                                 940.00
      
      Extracting from USER01.GDP_GROWTH_BY_YEAR to USER01.GDP_GROWTH_BY_YEAR:
      
      *** Total statistics since 2012-10-03 15:48:27 ***
              Total inserts                                    705.00
              Total updates                                      0.00
              Total deletes                                    235.00
              Total discards                                     0.00
              Total operations                                 940.00
      
      *** Daily statistics since 2012-10-03 15:48:27 ***
              Total inserts                                    705.00
              Total updates                                      0.00
              Total deletes                                    235.00
              Total discards                                     0.00
              Total operations                                 940.00
      
      *** Hourly statistics since 2012-10-03 22:00:00 ***
      
              No database operations have been performed.
      
      *** Latest statistics since 2012-10-03 15:48:27 ***
              Total inserts                                    705.00
              Total updates                                      0.00
              Total deletes                                    235.00
              Total discards                                     0.00
              Total operations                                 940.00
      
      End of Statistics.
      
      GGSCI (host02) >                                                            
      

      コマンドStats efinaaで、同じ処理が実行されます。 何らかの理由でプロセスが停止した場合は、統計情報はすべて失われます。

      ターゲットのReplicatの統計情報を表示します。

      Host01 - Linux
      GGSCI (host01) > Send Replicat rfinab, Stats
      
      Sending STATS request to REPLICAT RFINAB ...
      
      Start of Statistics at 2012-10-03 22:09:55.
      
      Replicating from USER01.ECONOMIC_ENTITY to TRG_USER01.ECONOMIC_ENTITY:
      
      *** Total statistics since 2012-10-03 15:48:37 ***
              Total inserts                                    235.00
              Total updates                                     36.00
              Total deletes                                      0.00
              Total discards                                     0.00
              Total operations                                 271.00
      
      *** Daily statistics since 2012-10-03 15:48:37 ***
              Total inserts                                    235.00
              Total updates                                     36.00
              Total deletes                                      0.00
              Total discards                                     0.00
              Total operations                                 271.00
      
      *** Hourly statistics since 2012-10-03 22:00:00 ***
      
              No database operations have been performed.
      
      *** Latest statistics since 2012-10-03 15:48:37 ***
              Total inserts                                    235.00
              Total updates                                     36.00
              Total deletes                                      0.00
              Total discards                                     0.00
              Total operations                                 271.00
      
      Replicating from USER01.GDP_BY_YEAR to TRG_USER01.GDP_BY_YEAR:
      
      *** Total statistics since 2012-10-03 15:48:37 ***
              Total inserts                                    705.00
              Total updates                                      0.00
              Total deletes                                    235.00
              Total discards                                     0.00
              Total operations                                 940.00
      
      *** Daily statistics since 2012-10-03 15:48:37 ***
              Total inserts                                    705.00
              Total updates                                      0.00
              Total deletes                                    235.00
              Total discards                                     0.00
              Total operations                                 940.00
      
      *** Hourly statistics since 2012-10-03 22:00:00 ***
      
              No database operations have been performed.
      
      *** Latest statistics since 2012-10-03 15:48:37 ***
              Total inserts                                    705.00
              Total updates                                      0.00
              Total deletes                                    235.00
              Total discards                                     0.00
              Total operations                                 940.00
      
      Replicating from USER01.GDP_GROWTH_BY_YEAR to TRG_USER01.GDP_GROWTH_BY_YEAR:
      
      *** Total statistics since 2012-10-03 15:48:37 ***
              Total inserts                                    705.00
              Total updates                                      0.00
              Total deletes                                    235.00
              Total discards                                     0.00
              Total operations                                 940.00
      
      *** Daily statistics since 2012-10-03 15:48:37 ***
              Total inserts                                    705.00
              Total updates                                      0.00
              Total deletes                                    235.00
              Total discards                                     0.00
              Total operations                                 940.00
      
      *** Hourly statistics since 2012-10-03 22:00:00 ***
      
              No database operations have been performed.
      
      *** Latest statistics since 2012-10-03 15:48:37 ***
              Total inserts                                    705.00
              Total updates                                      0.00
              Total deletes                                    235.00
              Total discards                                     0.00
              Total operations                                 940.00
      
      End of Statistics.
      
      GGSCI (host01) >                                                            
      

      !!!確認!!! 前のプライマリのExtractの統計情報は、Data Pumpが関連していたため、スキーマUSER01からUSER01でした。 これはより明確になり、スキーマUSER01からTRG_USER01となっています。

      他の種類の統計情報も利用できます。

    11.3 プロセスを停止および削除する

      まだその必要はありませんが、個々のプロセスを停止することが必要になった場合は、単にStop Extract efinaaと入力するか、またはStop *と入力してホスト上のすべてのプロセスを停止します。 efinaaを停止するプロセス名に置き換えます。

      まだその必要はありませんが、個々のプロセスを削除することが必要になった場合は、最初にデータベースに接続していることを確認してから(DBLogin)、Delete Extract efinaaと入力するか、またはDelete ER *と入力してホスト上のすべてのプロセスを削除します。 GGSCIで"Are you sure?" と確認を求められたら、yと入力します。 この確認をなくすには、コマンドの最後に感嘆符を追加します。 たとえば、Delete ER * !とすると、答えは「はい」であると見なされます。

まとめ

    Oracle GoldenGateを使用すると、このサンプル演習で行ったよりもさらに多くのことを実行できます。

    このチュートリアルで学習した内容は、次のとおりです。

    • Oracle GoldenGateソフトウェアをインストールおよび設定する
    • Oracle RDBMSとIBM DB2 RDBMSから成る異種環境で、Extract、Data Pump、Replicatの各プロセスを構成して起動する
    • サンプル・データを生成してレプリケーションの有効性をテストする
    • プロセスで生成されるレポートを管理する
    • OracleからDB2へのレプリケーションおよびDB2からOracleへのレプリケーションを行うために、同じ手順を実行する

    参考資料

    著者

    • カリキュラム開発責任者: Elio Bonazzi
    • 共著者: Richard Johnston、Hadi Koesnodihardjo、Simon Whitworth、Joe deBuzna、Chris Lawless。

このOracle by Exampleをナビゲートする際、次の機能を使用できます。

ヘッダー・ボタンの非表示:
ヘッダー内のボタンを非表示にするには、タイトルをクリックします。 ボタンを再表示するには、もう一度タイトルをクリックします。
トピック一覧ボタン:
すべてのトピックの一覧です。 いずれかのトピックをクリックすると、その項に移動します。
すべてのトピックを開く/閉じる:
すべての項の詳細を表示または非表示にします。 デフォルトでは、すべてのトピックが閉じられています。
すべてのイメージを表示/非表示:
すべてのスクリーンショットを表示または非表示にします。 デフォルトでは、すべてのイメージが表示されています。
印刷:
コンテンツを印刷します。 現在表示または非表示にされているコンテンツが印刷されます。

このチュートリアルの特定の項に移動するには、一覧からトピックを選択してください。