iSeriesでのOracle GoldenGate: DB/400からDB/400への一方向レプリケーション

概要

    目的

    このOracle By Example(OBE)チュートリアルでは、1組のiSeries DB/400データベースでのOracle GoldenGateバージョン11.2.1.0.2のインストール、構成、および管理について説明します。

    所要時間

    約3時間

    はじめに

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

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

    シナリオ

    HostA(赤)とHostC(緑)という2つのiSeriesホストでDB/400が実行されています。 HostAには、パスワードpswdaを持つユーザー/スキーマogguserAが含まれており、HostCには、パスワードpswdcを持つユーザー/スキーマoggusercが含まれています。 HostAには、HostCにレプリケートする必要がある表(tcustmerおよびtcustord)が存在します。 Oracle GoldenGateではこのレプリケーションを直接実行できないため、中間にWindowsホストまたはLinuxホストが存在する必要があります。 HostB(黄)は64ビットのLinuxを実行しており、パスワードpswdbを持つユーザーogguserbを含んでいます。 画面のバナーの色に注意して、どのコマンドがどのホストに対して実行されるのかを把握するようにしてください。 また、GGSCIコマンド、SQLコマンド、OSコマンドのいずれを入力するのか(プロンプトに表示されます)に注意してください。

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

    ホスト名 OS ユーザー パスワード ポート インストール・ディレクトリ
    hostA iSeries oggusera pswda 15001 ˜/ogg_i_400_A
    hostB Linux ogguserb pswdb 15002 ˜/ogg_linux_400_BC
    hostC iSeries ogguserc pswdc 15003 ˜/ogg_i_400_C

    ハードウェアおよびソフトウェア要件

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

    ハードウェア
    • 2台のiSeriesホスト:1台はソース、もう1台はターゲットです。 ソースとターゲットを同じホスト上に配置することもできますが、この場合、何が起こっているかを把握するのが概念的に難しくなります。 ホストが1つのみの場合は、/etc/hostsファイルを変更して、hosta.example.comhostc.example.comのエイリアスを作成すると便利です。
    • 1台のLinuxホスト。 この例では、Oracle Enterprise Linux OEL 5.7(64ビット)を使用しています。
    ソフトウェア
    • iSeriesでのOracle GoldenGate (Oracle Software Delivery Cloud)、バージョン11.2.1.0.2、部品番号V34025-1。
    • iSeries for Linux-64でのOracle GoldenGate、バージョン11.2.1.0.2、部品番号V34007-01。
    • UNIX用のODBC(The unixODBC Project home page)。 unixODBC-binを参照するyumリポジトリまたはRPMリポジトリがすでに存在する場合もあります。
    • iSeries for Linux(Installationの横にある右矢印>をクリックします)。

    hostBにはデータベースが配置されておらず、ターゲットにはOracle GoldenGateソフトウェアが配置されていない点に注意します。 つまり、このOBEの一方向セクションでは、hostCにOracleソフトウェアをインストールする必要はありません。

    前提条件

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

    • Linuxソフトウェアへのrootアクセスを設定する(/etcへの書込みアクセス)
    • iSeries上にユーザーIDとライブラリを作成する
    • Webにアクセスしてソフトウェアとドキュメントをダウンロードする

    hostA、hostB、hostCという3つのホストがあり、各ホストに3つの環境プロンプト(OS、GGSCI、SQL.)がある点に注意してください。 入力個所が9つあるため、 どのコマンドをどの場所に入力するのかに、特に注意してください。 誤ったコンテキストでの誤ったコマンドの使用が、もっともよくあるエラーです。

    表記規則

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

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

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

    ファイルとプロセスのネーミング規則が役立つことがあります。 次に、このOBEで使用している規則の例を示します。
      pnnhh.ext
    ここで、それぞれの変数は次のような意味を持ちます。

    p=process=
    e(xtract)、p(ump)、r(eplicat)、i(nitial)、d(efgen)、s(tartup)。
    nn=number=
    01、02、03、共通プロジェクトに関連するすべてのファイルはnn
    hh=host-to-host=
    AC、CA、AB、BC、ソース、中間、ターゲットのホスト名で指定。
    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 iSeriesへのOracle GoldenGateのインストール

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

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

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

      DB2 for iのインストール・ガイドを読みます。

      DB2 for i Installation and Setup Guide」をクリックします。

      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 = IBM i on POWER Systems」を選択します。

      Go」をクリックします。

      Oracle GoldenGate for Non Oracle Database v11.2.1 Media Pack for IBM i on Power Systems」を選択します。

      Continue」をクリックします。

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

      Download」をクリックします。

      ソフトウェアをソースであるhostA(赤)のディレクトリにアンパックします。

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

      HostA - iSeries
      [/] cd ~
      [/home/oggusera] mkdir ogg_i_400_A
      [/home/oggusera] cd ogg_i_400_A
      [/home/oggusera/ogg_i_400_A]                                                    
      

      ダウンロードしたzipをダウンロードした場所からogg_i_400_A/にコピーします。 zipを解凍して展開(抽出)します。 copyコマンドの末尾にターゲットとしてドットを指定してください。

      HostA - iSeries
      [/home/oggusera/ogg_i_400_A] cp ~/Downloads/V34025-01.zip . 
      [/home/oggusera/ogg_i_400_A] unzip V34025-01.zip  
      Archive:  V34025-01.zip
        inflating: ggs_OS400_ppc_DB2400_64bit.tar
        inflating: Oracle_GoldenGate_11.2.1.0.2_README.doc
        inflating: Oracle_GoldenGate_11.2.1.0.2_README.txt
        inflating: OGG_WinUnix_Rel_Notes_11.2.1.0.2.pdf
      [/home/oggusera/ogg_i_400_A] tar -xvpf ggs_OS400_ppc_DB2400_64bit.tar 
      x .
      x ./mgr, 4373077 bytes, 8542 tape blocks
      
       ... many lines omitted for clarity ... 
      
      x ./ggos400install, 3191 bytes, 7 tape blocks
      x ./rundb2.sh, 1646 bytes, 4 tape blocks
      [/home/oggusera/ogg_i_400_A]                                                    
      

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

      HostA - iSeries
      [/home/oggusera/ogg_i_400_A] ./ggsci 
      Oracle GoldenGate Command Interpreter for DB2 for i
      Version 11.2.1.0.2 OGGCORE_11.2.1.0.3_PLATFORMS_120724.2205
      IBM i, ppc, 64bit (optimized), IBM DB2 for i on Jul 26 2012 00:43:51
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      GGSCI (hostA) 1> Create SubDirs 
      
      Creating subdirectories under current directory /QOpenSys/home/oggusera/ogg_i_40
      0_A
      
      Parameter files            /QOpenSys/home/oggusera/ogg_i_400_A/dirprm: already e
      xists
      Report files               /QOpenSys/home/oggusera/ogg_i_400_A/dirrpt: created
      Checkpoint files           /QOpenSys/home/oggusera/ogg_i_400_A/dirchk: created
      Process status files       /QOpenSys/home/oggusera/ogg_i_400_A/dirpcs: created
      SQL script files           /QOpenSys/home/oggusera/ogg_i_400_A/dirsql: created
      Database definitions files /QOpenSys/home/oggusera/ogg_i_400_A/dirdef: created
      Extract data files         /QOpenSys/home/oggusera/ogg_i_400_A/dirdat: created
      Temporary files            /QOpenSys/home/oggusera/ogg_i_400_A/dirtmp: created
      Stdout files               /QOpenSys/home/oggusera/ogg_i_400_A/dirout: created
      
      GGSCI (hostA) 2> Exit 
      [/home/oggusera/ogg_i_400_A]                                                    
      

      ディレクトリが存在する場合、コンテンツはそのまま残されます。

      ggos400installユーティリティを実行します。

      HostA - iSeries
      [/home/oggusera/ogg_i_400_A] ls -l ggo* 
      -r--r--r--    1 oggusera 0              3191 Jun 28 16:41 ggos400install
      [/home/oggusera/ogg_i_400_A] chmod +x ggos400install 
      [/home/oggusera/ogg_i_400_A] ls -l ggo* 
      -r-xr-xr-x    1 oggusera 0              3191 Jun 28 16:41 ggos400install
      [/home/oggusera/ogg_i_400_A] ./ggos400install 
      
      Installation library for the native object is:  OGGUSERA
      ------------------------------------------------
      The native object has been restored to library OGGUSERA.
      ------------------------------------------------
      [/home/oggusera/ogg_i_400_A]                                                    
      

      このユーティリティは、ネイティブのジャーナル・リーダー・オブジェクトへのシンボリック・リンクを作成します。このオブジェクトはネイティブ・オブジェクトOGGPRCJRNを探す場所を決定するために、ExtractおよびGGSCIプログラムによって使用されます。

      ターゲットのhostC(緑)に対して、ステップ3~5を繰り返します。

      ソフトウェアをターゲットであるhostC(緑)のディレクトリにアンパックします。

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

      HostC - iSeries
      [/] cd ~
      [/home/ogguserc] mkdir ogg_i_400_C
      [/home/ogguserc] cd ogg_i_400_C
      [/home/ogguserc/ogg_i_400_C]                                                    
      

      ダウンロードしたzipをダウンロードした場所からogg_i_400_C/にコピーします。 zipを解凍して展開(抽出)します。 copyコマンドの末尾にターゲットとしてドットを指定してください。

      HostC - iSeries
      [/home/ogguserc/ogg_i_400_C] cp ~/Downloads/V34025-01.zip . 
      [/home/ogguserc/ogg_i_400_C] unzip V34025-01.zip  
      Archive:  V34025-01.zip
        inflating: ggs_OS400_ppc_DB2400_64bit.tar
        inflating: Oracle_GoldenGate_11.2.1.0.2_README.doc
        inflating: Oracle_GoldenGate_11.2.1.0.2_README.txt
        inflating: OGG_WinUnix_Rel_Notes_11.2.1.0.2.pdf
      [/home/ogguserc/ogg_i_400_C] tar -xvpf ggs_OS400_ppc_DB2400_64bit.tar 
      x .
      x ./mgr, 4373077 bytes, 8542 tape blocks
      
       ... many lines omitted for clarity ... 
      
      x ./ggos400install, 3191 bytes, 7 tape blocks
      x ./rundb2.sh, 1646 bytes, 4 tape blocks
      [/home/ogguserc/ogg_i_400_C]                                                    
      

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

      HostC - iSeries
      [/home/ogguserc/ogg_i_400_C] ./ggsci 
      Oracle GoldenGate Command Interpreter for DB2 for i
      Version 11.2.1.0.2 OGGCORE_11.2.1.0.3_PLATFORMS_120724.2205
      IBM i, ppc, 64bit (optimized), IBM DB2 for i on Jul 26 2012 00:43:51
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      GGSCI (hostA) 1> Create SubDirs 
      
      Creating subdirectories under current directory /QOpenSys/home/ogguserc/ogg_i_40
      0_C
      
      Parameter files            /QOpenSys/home/ogguserc/ogg_i_400_C/dirprm: already e
      xists
      Report files               /QOpenSys/home/ogguserc/ogg_i_400_C/dirrpt: created
      Checkpoint files           /QOpenSys/home/ogguserc/ogg_i_400_C/dirchk: created
      Process status files       /QOpenSys/home/ogguserc/ogg_i_400_C/dirpcs: created
      SQL script files           /QOpenSys/home/ogguserc/ogg_i_400_C/dirsql: created
      Database definitions files /QOpenSys/home/ogguserc/ogg_i_400_C/dirdef: created
      Extract data files         /QOpenSys/home/ogguserc/ogg_i_400_C/dirdat: created
      Temporary files            /QOpenSys/home/ogguserc/ogg_i_400_C/dirtmp: created
      Stdout files               /QOpenSys/home/ogguserc/ogg_i_400_C/dirout: created
      
      GGSCI (hostA) 2> Exit 
      [/home/ogguserc/ogg_i_400_C]                                                    
      

      ディレクトリが存在する場合、コンテンツはそのまま残されます。

      ggos400installユーティリティを実行します。

      HostC - iSeries
      [/home/ogguserc/ogg_i_400_C] ls -l ggo* 
      -r--r--r--    1 ogguserc 0              3191 Jun 28 16:41 ggos400install
      [/home/ogguserc/ogg_i_400_C] chmod +x ggos400install 
      [/home/ogguserc/ogg_i_400_C] ls -l ggo* 
      -r-xr-xr-x    1 ogguserc 0              3191 Jun 28 16:41 ggos400install
      [/home/ogguserc/ogg_i_400_C] ./ggos400install 
      
      Installation library for the native object is:  OGGUSERC
      ------------------------------------------------
      The native object has been restored to library OGGUSERC.
      ------------------------------------------------
      [/home/ogguserc/ogg_i_400_C]                                                    
      

      このユーティリティは、ネイティブのジャーナル・リーダー・オブジェクトへのシンボリック・リンクを作成します。このオブジェクトはネイティブ・オブジェクトOGGPRCJRNを探す場所を決定するために、ExtractおよびGGSCIプログラムによって使用されます。

      ソースのhostAとターゲットのhostCの両方で、iSeriesでのOracle GoldenGateのインストールが完了しました。

    1.2 LinuxでのODBCのインストール

      yumなどのパッケージ・マネージャを使用して、ODBC RPMを取得してインストールします。

      RPMのインストールはrootユーザーを使用して実行する必要があります。 WebからRPMをダウンロードするか、もしくはyumまたはRPMリポジトリからアクセスします。 すでにインストールされているかどうかを、はじめにチェックします。

      次の例ではODBC RPMがあらかじめインストールされているため、何も実行する必要はありません。

      HostB - Linux
      [ogguserb@hostB /]$ su - root 
      Password: ******** 
      [root@hostB /]# yum list unixodbc 
      Loaded plugins: rhnplugin, security
      This system is not registered with ULN.
      ULN support will be disabled.
      Installed Packages
      unixODBC.i386                        2.2.11-7.1                        installed
      unixODBC.x86_64                      2.2.11-7.1                        installed
      [root@hostB /]#                                                                  
      

      次の例ではODBC RPMがインストールされていないため("Available Packages"に表示される)、事前定義されたリポジトリからインストールを実行します。

      HostB - Linux
      [root@hostB /]# yum list unixODBC 
      Loaded plugins: rhnplugin, security
      This system is not registered with ULN.
      ULN support will be disabled.
      Available Packages
      unixODBC.i386                        2.2.11-7.1                      ol5_u7_base
      unixODBC.x86_64                      2.2.11-7.1                      ol5_u7_base
      [root@hostB /]# yum install unixODBC 
      Loaded plugins: rhnplugin, security
      This system is not registered with ULN.
      ULN support will be disabled.
      Setting up Install Process
      Resolving Dependencies
      --> Running transaction check
      ---> Package unixODBC.i386 0:2.2.11-7.1 set to be updated
      ---> Package unixODBC.x86_64 0:2.2.11-7.1 set to be updated
      --> Finished Dependency Resolution
      
      Dependencies Resolved
      
      ================================================================================
       Package          Arch           Version              Repository           Size
      ================================================================================
      Installing:
       unixODBC         i386           2.2.11-7.1           ol5_u7_base         830 k
       unixODBC         x86_64         2.2.11-7.1           ol5_u7_base         835 k
      
      Transaction Summary
      ================================================================================
      Install       2 Package(s)
      Upgrade       0 Package(s)
      
      Total download size: 1.6 M
      Is this ok [y/N]: y 
      Downloading Packages:
      (1/2): unixODBC-2.2.11-7.1.i386.rpm                          | 830 kB     00:00
      (2/2): unixODBC-2.2.11-7.1.x86_64.rpm                        | 835 kB     00:00
      -------------------------------------------------------------------------------
      Total                                               2.5 MB/s | 1.6 MB     00:00
      Running rpm_check_debug
      Running Transaction Test
      Finished Transaction Test
      Transaction Test Succeeded
      Running Transaction
        Installing     : unixODBC                                                 1/2
        Installing     : unixODBC                                                 2/2
      
      Installed:
        unixODBC.i386 0:2.2.11-7.1                       unixODBC.x86_64 0:2.2.11-7.1
      
      Complete!
      [root@hostB /]#                                                                  
      

      iSeries AccessのRPMを取得します。

      ソフトウェアをダウンロードするには、IBMへの登録とダウンロードに使用するユーザー・アカウントの作成が必要となる場合があります。 iSeries Accessダウンロードの一部(5250エミュレータ)はIBMによってライセンス提供されています。

      Webブラウザを使用して、http://www-03.ibm.com/systems/power/software/i/access/linux/guide.html#installへアクセスし、「Installation」をクリックします。

      Downloadリンクが正しく動作しない場合がありますが、 その場合はhttp://www-03.ibm.com/systems/power/software/i/access/linux_resources.htmlへアクセスしてください。

      最新のダウンロード(例:7.1)を選択し、「Download」をクリックします。

      最新のダウンロード(例:V7R1)を選択し、「Continue」をクリックします。

      好みに合わせてプライバシ設定を変更し、Licenseセクションで「I agree」を選択して「I confirm」をクリックします。

      IBM Download Directorを持っていない場合は、「Download using http」タブをクリックします。 使用するLinux環境に合った"no 5250 emulator"バージョンをダウンロードします(5250エミュレータのライセンスを購入済みの場合を除く)。 ブラウザで.RPMが音楽の種類と関連付けられている場合、「Download now」をクリックしてもダウンロードは開始されません。 その場合は、ブラウザ下部のステータス行に表示された実際のファイル名を確認します。 「Download now」を右クリックすると、リンク・コンテンツを開く代わりに保存するためのオプション(「Save as」など)が表示されます。

      以上で、指定したダウンロード・ロケーションにiSeriesAccess-xxxxx.rpmファイルが保存されました。

      iSeries Access RPMをインストールします。

      Linux hostBでrootとしてサインオンします。 ダウンロード・ロケーション(ブラウザに定義されたロケーション)に移動します。 iSeries RPMの「localinstall」を実行します。

      HostB - Linux
      [ogguserb@hostB /]$ su - root 
      Password: ******** 
      [root@hostB /]# cd Downloads 
      [root@hostB Downloads]# ls -l iSeriesAccess* 
      -rw-r--r-- 1 oracle all 1906385 Aug 24 15:42 iSeriesAccess-7.1.0-1.0.x86_64.rpm
      [root@hostB Downloads]# yum localinstall iSeriesAccess* --nogpgcheck
      Loaded plugins: rhnplugin, security
      This system is not registered with ULN.
      ULN support will be disabled.
      Setting up Local Package Process
      Examining iSeriesAccess-7.1.0-1.0.x86_64.rpm: iSeriesAccess-7.1.0-1.0.x86_64
      Marking iSeriesAccess-7.1.0-1.0.x86_64.rpm to be installed
      Resolving Dependencies
      --> Running transaction check
      ---> Package iSeriesAccess.x86_64 0:7.1.0-1.0 set to be updated
      --> Finished Dependency Resolution
      
      Dependencies Resolved
      
      ================================================================================
       Package          Arch    Version       Repository                          Size
      ================================================================================
      Installing:
       iSeriesAccess    x86_64  7.1.0-1.0     /iSeriesAccess-7.1.0-1.0.x86_64    8.8 M
      
      Transaction Summary
      ================================================================================
      Install       1 Package(s)
      Upgrade       0 Package(s)
      
      Total size: 8.8 M
      Is this ok [y/N]: y 
      Downloading Packages:
      Running rpm_check_debug
      Running Transaction Test
      Finished Transaction Test
      Transaction Test Succeeded
      Running Transaction
        Installing     : iSeriesAccess                                             1/1
      post install processing for iSeriesAccess 1.0...1
      iSeries Access ODBC Driver has been deleted (if it existed at all) because its
      usage count became zero
      odbcinst: Driver installed. Usage count increased to 1.
          Target directory is /etc
      odbcinst: Driver installed. Usage count increased to 1.
          Target directory is /etc
      
      Installed:
        iSeriesAccess.x86_64 0:7.1.0-1.0
      
      Complete!
      [root@hostB Downloads]#                                                         
      

      --nogpgcheckを省略すると、Package iSeriesAccess-7.1.0-1.0.x86_64.rpm is not signedというエラーが発生する場合があります。 iSeriesは/etcにインストールされている点に注意します。

      インストールが正しく完了したことを確認します。

      HostB - Linux
      [root@hostB Downloads]# yum list iSeriesAccess 
      Loaded plugins: rhnplugin, security
      This system is not registered with ULN.
      ULN support will be disabled.
      Installed Packages
      iSeriesAccess.x86_64            7.1.0-1.0                              installed
      [root@hostB Downloads]#                                                         
      

      ODBCに対して何らかの開始または停止処理を行わなくても、ODBCはすでに使用できる状態にあります。

      /etcにあるODBCファイルの設定を行います。

      /etcにあるODBCファイルをバックアップし、 ファイルの内容を確認します。 [64-bit]というラベルが最後に付く1節を探します。

      HostB - Linux
      [root@hostB /]# cd /etc 
      [root@hostB etc]# ls -l odbc* 
      -rw-r--r-- 1 root root   0 Jun  7  2007 odbc.ini
      -rw-r--r-- 1 root root 907 Aug 31 16:38 odbcinst.ini
      [root@hostB etc]# cp odbcinst.ini odbcinst.ini.ORIG 
      [root@hostB etc]# more odbcinst.ini 
      [PostgreSQL]
      Description     = ODBC for PostgreSQL
      Driver          = /usr/lib/libodbcpsql.so
      Setup           = /usr/lib/libodbcpsqlS.so
      FileUsage       = 1
      
      [iSeries Access ODBC Driver]
      Description     = iSeries Access for Linux ODBC Driver
      Driver          = /opt/ibm/iSeriesAccess/lib64/libcwbodbc.so
      Setup           = /opt/ibm/iSeriesAccess/lib64/libcwbodbcs.so
      NOTE1           = If using unixODBC 2.2.11 or later and you want the 32 and 64-b
      it ODBC drivers to share DSN's, the
      NOTE2           = following Driver64/Setup64 keywords will provide that support.
      Driver64        = /opt/ibm/iSeriesAccess/lib64/libcwbodbc.so
      Setup64         = /opt/ibm/iSeriesAccess/lib64/libcwbodbcs.so
      Threading       = 2
      DontDLClose     = 1
      UsageCount      = 1
      
      [iSeries Access ODBC Driver 64-bit]
      Description     = iSeries Access for Linux 64-bit ODBC Driver
      Driver          = /opt/ibm/iSeriesAccess/lib64/libcwbodbc.so
      Setup           = /opt/ibm/iSeriesAccess/lib64/libcwbodbcs.so
      Threading       = 2
      DontDLClose     = 1
      UsageCount      = 1
      
      [root@hostB etc]#                                                               
      

      viまたはgedit、もしくは同等のエディタを使用して、odbcinst.iniテキスト・ファイルを編集します。最後に[64-bit]の付いた1節を2回コピーしてHOSTAとHOSTCを追加します。 括弧で囲まれた名前を変更し、System = hostx.example.comDefaultPkgLibrary = QGPLという行をこの1節に追加します。 実際のホスト・アドレスはこの例とは異なる場合があります。 ファイルは次のようになります。

      HostB - Linux
      [root@hostB etc]# gedit odbcinst.ini 
      [root@hostB etc]# more odbcinst.ini 
      [PostgreSQL]
      Description     = ODBC for PostgreSQL
      Driver          = /usr/lib/libodbcpsql.so
      Setup           = /usr/lib/libodbcpsqlS.so
      FileUsage       = 1
      
      [iSeries Access ODBC Driver]
      Description     = iSeries Access for Linux ODBC Driver
      Driver          = /opt/ibm/iSeriesAccess/lib64/libcwbodbc.so
      Setup           = /opt/ibm/iSeriesAccess/lib64/libcwbodbcs.so
      NOTE1           = If using unixODBC 2.2.11 or later and you want the 32 and 64-b
      it ODBC drivers to share DSN's, the
      NOTE2           = following Driver64/Setup64 keywords will provide that support.
      Driver64        = /opt/ibm/iSeriesAccess/lib64/libcwbodbc.so
      Setup64         = /opt/ibm/iSeriesAccess/lib64/libcwbodbcs.so
      Threading       = 2
      DontDLClose     = 1
      UsageCount      = 1
      
      [iSeries Access ODBC Driver 64-bit]
      Description     = iSeries Access for Linux 64-bit ODBC Driver
      Driver          = /opt/ibm/iSeriesAccess/lib64/libcwbodbc.so
      Setup           = /opt/ibm/iSeriesAccess/lib64/libcwbodbcs.so
      Threading       = 2
      DontDLClose     = 1
      UsageCount      = 1
      
      [HOSTA]
      Description     = iSeries Access for Linux 64-bit ODBC Driver added by me
      Driver          = /opt/ibm/iSeriesAccess/lib64/libcwbodbc.so
      Setup           = /opt/ibm/iSeriesAccess/lib64/libcwbodbcs.so
      Threading       = 2
      DontDLClose     = 1
      UsageCount      = 1
      System          = hosta.example.com
      DefaultPkgLibrary = QGPL 
      
      [HOSTC]
      Description     = iSeries Access for Linux 64-bit ODBC Driver added by me
      Driver          = /opt/ibm/iSeriesAccess/lib64/libcwbodbc.so
      Setup           = /opt/ibm/iSeriesAccess/lib64/libcwbodbcs.so
      Threading       = 2
      DontDLClose     = 1
      UsageCount      = 1
      System          = hostc.example.com
      DefaultPkgLibrary = QGPL 
      [root@hostB etc]#                                                               
      

      [64-bit]のコピーで最後に2つの節が追加されています。これらの節では、最後の2行には括弧内に対応するホスト名とデフォルトのパッケージ・ライブラリが指定されています。

      rootユーザーを終了し、ogguserbユーザーとしてサインオンします。

      ホーム・ディレクトリにあるODBCファイルの設定を行います。

      odbcinstを使用して.odbc.iniファイル(最初のドットに注意)を作成します。

      HostB - Linux
      [ogguserb@hostB /]$ cd ~ 
      [ogguserb@hostB ~]$ whoami 
      ogguserb
      [ogguserb@hostB ~]$ ls -l .odbc* 
      ls: .odbc*: No such file or directory
      [ogguserb@hostB ~]$ odbcinst -i -s -f /etc/odbcinst.ini 
      [ogguserb@hostB ~]$ ls -l .odbc* 
      -rw-r--r-- 1 ogguserb oinstall 1469 Aug 31 18:26 .odbc.ini
      [ogguserb@hostB ~]$ tail -20 .odbc.ini  
      [HOSTA]
      Description     = iSeries Access for Linux 64-bit ODBC Driver
      Driver          = /opt/ibm/iSeriesAccess/lib64/libcwbodbc.so
      Setup           = /opt/ibm/iSeriesAccess/lib64/libcwbodbcs.so
      Threading       = 2
      DontDLClose     = 1
      UsageCount      = 1
      System          = hosta.example.com
      DefaultPkgLibrary = QGPL
      
      [HOSTC]
      Description     = iSeries Access for Linux 64-bit ODBC Driver
      Driver          = /opt/ibm/iSeriesAccess/lib64/libcwbodbc.so
      Setup           = /opt/ibm/iSeriesAccess/lib64/libcwbodbcs.so
      Threading       = 2
      DontDLClose     = 1
      UsageCount      = 1
      System          = hostc.example.com
      DefaultPkgLibrary = QGPL
      
      [ogguserb@hostB ~]$                                                             
      

      ODBCConfigオプションをインストールしている場合は、グラフィカルな方法で同じ作業を実行できます。

      isqlを使用して、HOSTAおよびHOSTCに対するODBC接続をテストします。

      hostAおよびhostCで問合せを実行するには、ジャンク表を作成する必要があります。 hostAおよびhostC上にすでにサンプル表がある場合は、次の2つのステップをスキップしてODBCのテストに進みます。

      HostA - iSeries
      [/home/oggusera/ogg_i_400_A] rundb2.sh 
      DB2>
      create table myjunka (this integer, that varchar(40)) 
      
       **** CLI ERROR *****
               SQLSTATE: 01567
      NATIVE ERROR CODE: 7905
      Table MYJUNKA in OGGUSERA created but was not journaled.
      DB2>
      insert into myjunka values (10, 'Sample row on A') 
      DB20000I  THE SQL COMMAND COMPLETED SUCCESSFULLY.
      DB2>
      select * from myjunka 
      
      THIS        THAT
      ----------- ----------------------------------------
               10 Sample row on A
      
        1 RECORD(S) SELECTED.
      
      DB2>                                                                            
      

      NATIVE ERROR CODE: 7905は無視します。後でAdd TranDataを実行すると、このエラーは修正されます。

      同じ処理をhostCに対しても実行します (hostCにOracle GoldenGateソフトウェアをインストールしていない場合、rundb2.shユーティリティを使用できない場合があります。 任意のDB2ツールを使用してサンプル表を作成するか、またはこのステップをスキップします)。

      HostC - iSeries
      [/home/ogguserc/ogg_i_400_C] rundb2.sh 
      DB2>
      create table myjunkc (foobar integer, whizbang varchar(40)) 
      
       **** CLI ERROR *****
               SQLSTATE: 01567
      NATIVE ERROR CODE: 7905
      Table MYJUNKC in OGGUSERC created but was not journaled.
      DB2>
      insert into myjunkc values (20, 'Sample row on C') 
      DB20000I  THE SQL COMMAND COMPLETED SUCCESSFULLY.
      DB2>
      select * from myjunkc 
      
      FOOBAR      WHIZBANG
      ----------- ----------------------------------------
               20 Sample row on C
      
        1 RECORD(S) SELECTED.
      
      DB2>                                                                            
      

      NATIVE ERROR CODE: 7905は無視します。後でAdd TranDataを実行すると、このエラーは修正されます。

      Linux hostBで、ODBCが単独で動作していることを確認します。

      HostB - Linux
      [ogguserb@hostB ~]$ odbcinst --version 
      unixODBC 2.2.11
      [ogguserb@hostB ~]$ which isql 
      /usr/bin/isql
      [ogguserb@hostB ~]$                                                             
      

      hostAとhostCの新しい表に対して問合せを実行します (どの表でも構いません)。

      HostB - Linux
      [oracle@hostB ~]$ isql hosta oggusera pswda 
      +---------------------------------------+
      | Connected!                            |
      |                                       |
      | sql-statement                         |
      | help [tablename]                      |
      | quit                                  |
      |                                       |
      +---------------------------------------+
      SQL> select * from myjunka 
      +------------+-----------------------------------------+
      | THIS       | THAT                                    |
      +------------+-----------------------------------------+
      | 10         | Sample row on A                         |
      +------------+-----------------------------------------+
      SQLRowCount returns -1
      1 rows fetched
      SQL> quit 
      [oracle@hostB ~]$ isql hostc ogguserc pswdc 
      +---------------------------------------+
      | Connected!                            |
      |                                       |
      | sql-statement                         |
      | help [tablename]                      |
      | quit                                  |
      |                                       |
      +---------------------------------------+
      SQL> select * from myjunkc 
      +------------+-----------------------------------------+
      | FOOBAR     | WHIZBANG                                |
      +------------+-----------------------------------------+
      | 20         | Sample row on C                         |
      +------------+-----------------------------------------+
      SQLRowCount returns -1
      1 rows fetched
      SQL> quit 
      [ogguserb@hostB ~]                                                              
      

      ホスト名では大文字と小文字を区別する必要はありません。

      以上でODBCのインストールと構成が完了したため、Linux hostBから両方のiSeriesホスト(hostAおよびhostC)への通信を実行できます。

    1.3 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 for Non Oracle Database v11.2.1 Media Pack for Linux x86-64」を選択します。

      Continue」をクリックします。

      "DB2/400 on Linux"の部品番号としてV34007-01が表示されていることを確認します。

      Download」をクリックします。

      ソフトウェアを中間のhostB(黄)のディレクトリにアンパックします。

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

      HostB - Linux
      [ogguserb@hostB /]$ cd ~ 
      [ogguserb@hostB /home/ogguserb]$ mkdir ogg_linux_400_BC 
      [ogguserb@hostB /home/ogguserb]$ cd ogg_linux_400_BC/ 
      [ogguserb@hostB ogg_linux_400_BC]$                                              
      

      このディレクトリの接尾辞が_Bではなく_BCになっている理由は、双方向セクションを構成する際に、別の中間ホスト・インスタンスが必要になるためです。このインスタンスを同じマシン上に作成する場合、hostCへレプリケートするインスタンスの接尾辞は_BCとなり、hostAへレプリケートするインスタンスの接尾辞は_BAとなります。

      ダウンロードしたzipをダウンロードした場所からogg_linux_400_BCにコピーします。 このzipは、iSeries用にダウンロードしたファイルとは異なります。 zipを解凍して展開(抽出)します。 copyコマンドの末尾にターゲットとしてドットを指定してください。

      HostB - Linux
      [ogguserb@hostB ogg_linux_400_BC]$ cp ~/Downloads/V34007-01.zip . 
      [ogguserb@hostB ogg_linux_400_BC]$ unzip V34007-01.zip  
      Archive:  V34007-01.zip
        inflating: ggs_Linux_x64_DB2400_64bit.tar  
        inflating: Oracle_GoldenGate_11.2.1.0.2_README.doc  
        inflating: Oracle_GoldenGate_11.2.1.0.2_README.txt  
        inflating: OGG_WinUnix_Rel_Notes_11.2.1.0.2.pdf  
      [ogguserb@hostB ogg_linux_400_BC]$ tar -xvpf ggs_Linux_x64_DB2400_64bit.tar 
      ./
      ./server
      
       ... many lines omitted for clarity ... 
      
      ./dirprm/jagent.prm
      ./demo_db2400_create.sql
      [ogguserb@hostB ogg_linux_400_BC]$                                              
      

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

      HostB - Linux
      [ogguserb@hostB ogg_linux_400_BC]$ ./ggsci 
      
      Oracle GoldenGate Command Interpreter for DB2 for i
      Version 11.2.1.0.2 OGGCORE_11.2.1.0.2T3_PLATFORMS_120724.2205
      Linux, x64, 64bit (optimized), IBM DB2 for i Remote on Jul 25 2012 02:02:16
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      GGSCI (hostB) 1> Create Subdirs 
      
      Creating subdirectories under current directory /home/ogguserb/ogg_linux_400_BC
      
      Parameter files            /home/ogguserb/ogg_linux_400_BC/dirprm: already exis
      ts
      Report files               /home/ogguserb/ogg_linux_400_BC/dirrpt: created
      Checkpoint files           /home/ogguserb/ogg_linux_400_BC/dirchk: created
      Process status files       /home/ogguserb/ogg_linux_400_BC/dirpcs: created
      SQL script files           /home/ogguserb/ogg_linux_400_BC/dirsql: created
      Database definitions files /home/ogguserb/ogg_linux_400_BC/dirdef: created
      Extract data files         /home/ogguserb/ogg_linux_400_BC/dirdat: created
      Temporary files            /home/ogguserb/ogg_linux_400_BC/dirtmp: created
      Stdout files               /home/ogguserb/ogg_linux_400_BC/dirout: created
      
      GGSCI (hostB) 2> Exit 
      [ogguserb@hostB ogg_linux_400_BC]$                                              
      

      プラットフォームの説明から、これはi Remote用であることが分かります。 ディレクトリが存在する場合、コンテンツはそのまま残されます。

      Linux hostBでのOracle GoldenGateのインストールが完了しました。

2. 環境の設定

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

    2.1 スタートアップ・ファイルとManagerの作成

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

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

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

      HostA - iSeries
      [/home/oggusera/ogg_i_400_A] vi GLOBALS
      -- Created by Joe Admin 10/11/2012 on hostA
      CheckpointTable oggusera.oggchkpt 
      
      [/home/oggusera/ogg_i_400_A]                                                    
      

      チェックポイント表はReplicatでのみ使用されるため、双方向のセクションまで使用されません。 チェックポイント表を配置して使用せずにいても、問題ありません。

      hostBのOracle GoldenGateインストール・ディレクトリにGLOBALSファイルを作成します。

      HostB - Linux
      [ogguserb@hostB ogg_linux_400_BC]$ vi GLOBALS
      -- Created by Joe Admin 10/11/2012 on hostC
      CheckpointTable ogguserc.oggchkpt 
      
      [ogguserb@hostB ogg_linux_400_BC]$                                              
      

      GLOBALSファイルは中間となるhostB上に存在しますが、ターゲットのhostC上のスキーマを参照している点に注意してください。

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

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

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

      HostA - iSeries
      [/home/oggusera/ogg_i_400_A] vi startup.oby
      -- Created by Joe Admin 10/11/2012 on hostA
      DBLogin SourceDB HOSTA, UserID oggusera, Password pswda
      Start Mgr
      Info Mgr
      DefaultJournal oggusera/oggjrn
      Info CheckpointTable 
      
      [/home/oggusera/ogg_i_400_A]                                                    
      
      DBLogin:
      指定されたuserid/passwordを使用してODBC経由でDBに接続します。 ODBC名には大文字を使用します(例:HOSTA)。
      Start Mgr:
      Managerがすでに開始されている場合、再度開始しようとしても問題ありません。 これはセッション間で保持されます。
      Info Mgr:
      Managerが正常に開始されたかどうか、および正常に開始された場合は使用されているポート番号を通知します。
      DefaultJournal:
      ジャーナル機能はほとんどの場合に必要とされます。 このスキーマ/ファイル名をオーバーライドして、表ごとに異なるジャーナルを指定することができます。 oggjrnファイルはOracleによって提供されており、テストまたは概念実証(PoC)での使用のみを想定しています。本番での使用は想定されていません。
      Info CheckpointTable:
      チェックポイント表(Replicatで使用される)が検出されたかどうかを通知します。

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

      HostB - Linux
      [ogguserb@hostB ogg_linux_400_BC]$ vi startup.oby
      -- Created by Joe Admin 10/11/2012 on hostB
      DBLogin SourceDB HOSTC, UserID ogguserc, Password pswdc
      Start Mgr
      Info Mgr
      --DefaultJournal ogguserc/oggjrn
      Info CheckpointTable 
      Set Editor gedit 
      
      [ogguserb@hostB ogg_linux_400_BC]$                                              
      

      DefaultJournalコマンドをLinuxマシンで実行することはできません。このコマンドはターゲットのiSeriesマシンで実行する必要があります。 いずれは実行する必要があることを覚えておくため、このコマンドはコメント・アウトされた状態でファイルに残されています。 ターゲットにOracle GoldenGateをインストールしていない場合、別の方法でジャーナル機能を使用する必要があります。 これについて、詳しくは後述します。

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

      HostC - iSeries
      [/home/ogguserc/ogg_i_400_C] vi startup.oby
      -- Created by Joe Admin 10/11/2012 on hostC
      DBLogin SourceDB HOSTC, UserID ogguserc, Password pswdc
      -- Start Mgr
      -- Info Mgr
      DefaultJournal ogguserc/oggjrn
      -- Info CheckpointTable 
      
      [/home/ogguserc/ogg_i_400_C]                                                    
      

      hostCではDefaultJournalオプションが有効化されています(iSeriesではgeditは使用できません)。 hostCではManagerやチェックポイント表は有効化されていませんが、有効化してもまったく問題はありません。また、双方向レプリケーションを有効化する場合はManagerが必要です。 このため、忘れないように、Managerとチェックポイント表に関する行をコメントのまま残しておきます。

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

      GGSCIを開始します。 拡張子のないファイルを編集します。 2行(およびコメント)を追加します。

      HostA - iSeries
      [/home/oggusera/ogg_i_400_A] ./ggsci 
      Oracle GoldenGate Command Interpreter for DB2 for i
      Version 11.2.1.0.2 OGGCORE_11.2.1.0.3_PLATFORMS_120724.2205
      IBM i, ppc, 64bit (optimized), IBM DB2 for i on Jul 26 2012 00:43:51
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      GGSCI (hostA) 1> Edit Param mgr 
      -- Created by Joe Admin 10/11/2012 on hostA
      Port 15001
      PurgeOldExtracts ./dirdat/*, UseCheckpoints 
      
      GGSCI (hostA) 2> Info mgr 
      Manager is DOWN!
      
      GGSCI (hostA) 3>                                                                
      

      注: 上記を正しく実行すると、GGSCIによって自動的に拡張子.prmが追加されて、ファイルがdirprm/ディレクトリに保存されます。 ユーザーが誤って拡張子を追加した場合は、GGSCIによってファイル名が大文字に変換され、ファイルがインストール・ディレクトリに保存されて実質的に使用できなくなります。

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

      HostB - Linux
      [ogguserb@hostB ogg_linux_400_BC]$ ./ggsci 
      Oracle GoldenGate Command Interpreter for DB2 for i
      Version 11.2.1.0.2 OGGCORE_11.2.1.0.2T3_PLATFORMS_120724.2205
      Linux, x64, 64bit (optimized), IBM DB2 for i Remote on Jul 25 2012 02:02:16
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
      GGSCI (hostB) 1> Edit Param mgr 
      -- Created by Joe Admin 10/11/2012 on hostB
      Port 15002
      PurgeOldExtracts ./dirdat/*, UseCheckpoints 
      
      GGSCI (hostB) 2> Info mgr 
      Manager is DOWN!
      
      GGSCI (hostB) 3>                                                                
      

      hostA、hostB、hostC間では、ポート番号が異なることに注意してください。

      Obeyファイルを使用してhostAでManagerを開始します。 または、GGSCIを開始するたびに各行を入力することもできます。

      HostA - iSeries
      GGSCI (hostA) 3> Obey startup.oby 
      
      GGSCI (hostA) 4> DBLogin SourceDB HOSTA, UserID oggusera, Password pswda
      
      2012-09-03 14:51:38  INFO    OGG-03036  Database character set identified as 
      UTF-8. Locale: en_US_POSIX.
      
      2012-09-03 14:51:38  INFO    OGG-03037  Session character set identified as 
      UTF-8.
      Successfully logged into database.
      
      GGSCI (hostA) 5> Start mgr
      
      Manager started.
      
      GGSCI (hostA) 6> Info mgr
      
      Manager is running (IP port hosta.example.com.15001).
      
      GGSCI (hostA) 7> DefaultJournal oggusera/oggjrn
      
      DEFAULTJOURNAL has been set to OGGUSERA/OGGJRN
      
      GGSCI (hostA) 8> Info CheckpointTable
      
      No checkpoint table specified, using GLOBALS specification (oggusera.oggchkpt).
      
      Checkpoint table oggusera.oggchkpt does not exist.
      
      GGSCI (hostA) 9>                                                                
      

      以下の手順でチェックポイント表を作成します。

      Obeyファイルを使用してhostBでManagerを開始します。

      HostB - Linux
      GGSCI (hostB) 3> Obey startup.oby 
      
      GGSCI (hostB) 4> DBLogin SourceDB HOSTC, UserID ogguserc, Password pswdc
      
      2012-09-04 16:03:04  INFO    OGG-03036  Database character set identified as
      UTF-8. Locale: en_US.
      
      2012-09-04 16:03:04  INFO    OGG-03037  Session character set identified as 
      UTF-8.
      Successfully logged into database.
      
      GGSCI (hostB) 5> start mgr
      
      Manager started.
      
      GGSCI (hostB) 6> info mgr
      
      Manager is running (IP port hostb.example.com.15002).
      
      GGSCI (hostB) 7> --DefaultJournal ogguserc/oggjrn
      
      GGSCI (hostB) 8> Info CheckpointTable
      
      No checkpoint table specified, using GLOBALS specification (ogguserc.oggchkpt).
      
      Checkpoint table ogguserc.oggchkpt does not exist.
      
      GGSCI (hostB) 9> Set Editor gedit
      
      GGSCI (hostB) 10>                                                               
      

      これにより、ODBC接続の動作も確認されました。 次のステップでチェックポイント表を作成します。

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

    2.2 表の作成

      hostAでチェックポイント表を作成します

      HostA - iSeries
      GGSCI (hostA) 9>  Add CheckpointTable 
      
      No checkpoint table specified, using GLOBALS specification (oggusera.oggchkpt).
      
      Successfully created checkpoint table oggusera.oggchkpt.
      
      GGSCI (hostA) 10>  Exit  
      
      [/home/oggusera/ogg_i_400_A]                                                    
      

      1つの表でスキーマ全体に十分に対応できます。

      hostBでチェックポイント表を作成します

      HostB - Linux
      GGSCI (hostB) 10>  Add CheckpointTable 
      
      No checkpoint table specified, using GLOBALS specification (ogguserc.oggchkpt).
      
      Successfully created checkpoint table ogguserc.oggchkpt.
      
      GGSCI (hostB) 11>  Exit  
      
      [ogguserb@hostB ogg_linux_400_BC]$                                              
      

      実際には表はhostCに作成されますが、コマンドはhostBから実行されます。

      hostAのスキーマogguseraに空のソース・サンプル表を作成します。

      サンプル表をすでに作成している場合は、作成したものを使用できます。 サンプル表をまだ作成していない場合、Oracle GoldenGateソフトウェアに、小規模な2つのサンプル表tcustmertcustordを作成するためのスクリプトdemo_db2_create.sqlが付属しています。 任意のDB2ユーティリティを使用してスクリプトを実行できます。 特に好みがない場合、Oracle GoldenGateソフトウェアにはrundb2.shと呼ばれる非常に限定的なシェルが付属しています。

      HostA - iSeries
      [/home/oggusera/ogg_i_400_A] ./rundb2.sh demo_db2_create.sql 
      
       ... many lines omitted for clarity ... 
      
                                       * * * * *  E N D  O F  S O U R C E  * * * * *
      5761SS1 V6R1M0 080215               Run SQL Statements             DEMO_DB2_C
             09/04/12 11:25:59   PAGE   003
      Record  *...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 .
      MSG ID  SEV  RECORD  TEXT
      SQL7953   0       1  Position 1 Drop of TCUSTMER in OGGUSERA complete.
      SQL7960   0      21  Position 1 Commit completed.
      SQ20367   0      30  Position 3 Clause DATA CAPTURE ignored.
      SQL7905  20      23  Position 1 Table TCUSTMER in OGGUSERA created but was
                           not journaled.
      SQL7960   0      32  Position 1 Commit completed.
      SQL7953   0      34  Position 1 Drop of TCUSTORD in OGGUSERA complete.
      SQL7960   0      36  Position 1 Commit completed.
      SQ20367   0      48  Position 3 Clause DATA CAPTURE ignored.
      SQL7905  20      38  Position 1 Table TCUSTORD in OGGUSERA created but was
                           not journaled.
      SQL7960   0      50  Position 1 Commit completed.
      SQL7960   0          Commit completed.
                          Message Summary
        Total     Info   Warning      Error   Severe  Terminal
           11        9         0          2        0         0
      20 level severity errors found in source
                                      * * * * *  E N D  O F  L I S T I N G  * * * * *
      [/home/oggusera/ogg_i_400_A]                                                    
      

      重大度20のジャーナル"エラー"は問題ありません。これらには次のステップで対処します。

      警告: スクリプトを2回実行すると、表が削除されます。

      hostCのスキーマoggusercに空のターゲット・サンプル表を作成します。 これは中間ホストではなくターゲット上で直接実行する必要があります。

      HostC - iSeries
      [/home/ogguserc/ogg_i_400_C] ./rundb2.sh demo_db2_create.sql 
      
       ... many lines omitted for clarity ... 
      
                                       * * * * *  E N D  O F  S O U R C E  * * * * *
      5761SS1 V6R1M0 080215               Run SQL Statements             DEMO_DB2_C
             09/04/12 11:25:59   PAGE   003
      Record  *...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 .
      MSG ID  SEV  RECORD  TEXT
      SQL7953   0       1  Position 1 Drop of TCUSTMER in OGGUSERC complete.
      SQL7960   0      21  Position 1 Commit completed.
      SQ20367   0      30  Position 3 Clause DATA CAPTURE ignored.
      SQL7905  20      23  Position 1 Table TCUSTMER in OGGUSERC created but was
                           not journaled.
      SQL7960   0      32  Position 1 Commit completed.
      SQL7953   0      34  Position 1 Drop of TCUSTORD in OGGUSERC complete.
      SQL7960   0      36  Position 1 Commit completed.
      SQ20367   0      48  Position 3 Clause DATA CAPTURE ignored.
      SQL7905  20      38  Position 1 Table TCUSTORD in OGGUSERC created but was
                           not journaled.
      SQL7960   0      50  Position 1 Commit completed.
      SQL7960   0          Commit completed.
                          Message Summary
        Total     Info   Warning      Error   Severe  Terminal
           11        9         0          2        0         0
      20 level severity errors found in source
                                      * * * * *  E N D  O F  L I S T I N G  * * * * *
      [/home/ogguserc/ogg_i_400_C]                                                    
      

      厳密に言うと、この時点ではターゲット上にOracle GoldenGateソフトウェアは必要ありません。ただし、GoldenGateソフトウェアは表の作成スクリプトとrundb2.shシェルを提供しています。 すでにサンプル表がある場合、ターゲット上でOracle GoldenGateソフトウェアは実際に必要ありませんが、サンプル表がない場合は、この部分の演習を実行するには、ソフトウェアをインストールする必要があります。 表を作成するためのターゲット・スクリプトは中間ホスト上にあるため、ターゲット・ホストにこれをftp送信します。

      iSeriesでは、CREATE TABLEなどのDDLに対するレプリケーションがサポートされていないため、DMLレプリケーションの開始前に、ターゲット上に空の表が存在している必要があります。

      以下のコマンドを入力すると、使用できる表をいつでも確認できます。
      GGSCI (host) > List Tables *

    2.3 ジャーナル機能の有効化(トランザクション・データの追加)

      GGSCIを再起動し、スキーマ全体に対してAdd TranDataを実行します。

      問合せを実行するためにジャーナル機能を有効化する必要はありませんが、 ReplicatでDML(INSERT、UPDATE、DELETE)を実行するには、ジャーナル・ファイルの場所を指定する必要があります。 給与や人事などのアプリケーションでは、多くの場合、アプリケーションの一部にジャーナル機能が含まれています。 (前述のステップでサンプル表やチェックポイント表を作成したように)独自の表を作成する場合、手動でジャーナル機能を有効化する必要があります。 実行するには、iSeriesのコマンドライン(CL)"Start Journal Physical File"(STRJRNPF)を使用します。 または、Add TranDatastartup.obyに指定したDefaultJournalを使用して、GGSCI内で有効化することもできます。

      HostA - iSeries
      [/home/oggusera/ogg_i_400_A] ./ggsci 
      Oracle GoldenGate Command Interpreter for DB2 for i
       ... many lines omitted for clarity ... 
      
      GGSCI (hostA) 1> Obey startup.oby 
      
       ... many lines omitted for clarity ... but make sure everything started.
      
      GGSCI (hostA) >  List Tables * 
      OGGUSERA.MYJUNKA
      OGGUSERA.OGGCHKPT
      OGGUSERA.TCUSTMER
      OGGUSERA.TCUSTORD
      
      Found 3 tables matching list criteria.
      
      GGSCI (hostA) >  Add TranData * 
      DEFAULTJOURNAL has been set to OGGUSERA/OGGJRN
      Journaling for object OGGUSERA.MYJUNKA  has been enabled to journal OGGUSERA/OGGJRN
      Journaling for object OGGUSERA.OGGCHKPT has been enabled to journal OGGUSERA/OGGJRN
      Journaling for object OGGUSERA.TCUSTMER has been enabled to journal OGGUSERA/OGGJRN
      Journaling for object OGGUSERA.TCUSTORD has been enabled to journal OGGUSERA/OGGJRN
      
      GGSCI (hostA) >  Info TranData * 
      Journaling for object OGGUSERA.MYJUNKA  is enabled to journal OGGUSERA/OGGJRN.
      Journaling for object OGGUSERA.OGGCHKPT is enabled to journal OGGUSERA/OGGJRN.
      Journaling for object OGGUSERA.TCUSTMER is enabled to journal OGGUSERA/OGGJRN.
      Journaling for object OGGUSERA.TCUSTORD is enabled to journal OGGUSERA/OGGJRN.
      
      GGSCI (hostA) xx>                                                            
      

      チェックポイント表とサンプル表に対してジャーナル機能を有効化する必要があることに注意してください。

      同じ処理をhostCに対しても実行します。

      Add TranDataは中間ホストでは実行できないため、hostCで直接コマンドを実行する必要があります。 次のいずれかの方法を使用できます。

      • 3つの表に対して、前述したネイティブのSTRJRNPFコマンドを使用します。
      • ターゲットにOracle GoldenGateコードがインストールされていることを確認し、ソース上で実行したものと同じコマンドを実行します。
      HostC - iSeries
      [/home/ogguserc/ogg_i_400_C] ./ggsci 
      Oracle GoldenGate Command Interpreter for DB2 for i
       ... many lines omitted for clarity ... 
      
      GGSCI (hostC) 1> Obey startup.oby 
      
       ... many lines omitted for clarity ... but make sure everything started.
      
      GGSCI (hostC) >  List Tables * 
      OGGUSERC.MYJUNKC
      OGGUSERC.OGGCHKPT
      OGGUSERC.TCUSTMER
      OGGUSERC.TCUSTORD
      
      Found 3 tables matching list criteria.
      
      GGSCI (hostC) >  Add TranData * 
      DEFAULTJOURNAL has been set to OGGUSERC/OGGJRN
      Journaling for object OGGUSERC.MYJUNKC  has been enabled to journal OGGUSERC/OGGJRN
      Journaling for object OGGUSERC.OGGCHKPT has been enabled to journal OGGUSERC/OGGJRN
      Journaling for object OGGUSERC.TCUSTMER has been enabled to journal OGGUSERC/OGGJRN
      Journaling for object OGGUSERC.TCUSTORD has been enabled to journal OGGUSERC/OGGJRN
      
      GGSCI (hostC) >  Info TranData * 
      Journaling for object OGGUSERC.MYJUNKC  is enabled to journal OGGUSERC/OGGJRN.
      Journaling for object OGGUSERC.OGGCHKPT is enabled to journal OGGUSERC/OGGJRN.
      Journaling for object OGGUSERC.TCUSTMER is enabled to journal OGGUSERC/OGGJRN.
      Journaling for object OGGUSERC.TCUSTORD is enabled to journal OGGUSERC/OGGJRN.
      
      GGSCI (hostC) xx>                                                            
      

      トランザクション・データの収集とジャーナル機能が、Oracle GoldenGateに関連するすべてのユーザー表およびシステム表に対して有効になりました。

    2.4 列定義の作成(defgen)

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

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

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

      HostA - iSeries
      GGSCI (hostA) >  Edit Param d01ab
      -- defgen column defs for tcust* from hostA to hostC
      -- Created by Joe Admin on 10/11/2012
      DefsFile dirdef/d01ab.def, Purge
      SourceDB HOSTA, UserID oggusera, Password pswda
      Table oggusera.tcust*; 
      
      GGSCI (hostA) >  Shell ./defgen paramfile dirprm/d01ab.prm 
      ***********************************************************************
            Oracle GoldenGate Table Definition Generator for DB2 for i
      
       ... many lines omitted for clarity ... 
      
      Expanding wildcard oggusera.tcust*:
      
      Retrieving definition for OGGUSERA.TCUSTMER
      Retrieving definition for OGGUSERA.TCUSTORD
      
      Definitions generated for 2 tables in dirdef/d01ab.def
      
      GGSCI (hostA) >  Exit 
      
      [/home/oggusera/ogg_i_400_A]                                                    
      

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

      ソースのhostAから中間のhostBにファイルをコピーします。

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

      HostA - iSeries
      [/home/oggusera/ogg_i_400_A] scp dirdef/d01ab.def ogguserb@hostb:/home/ogguserb/
      ogg_linux_400_BC/dirdef
        The authenticity of host 'hostb (10.0.0.2)' can't be established.
        RSA key fingerprint is 8e:60:d0:a7:fc:55:6e:d9:81:bb:c9:90:19:f4:a8:11.
        Are you sure you want to continue connecting (yes/no)? yes
        Warning: Permanently added 'hostb' (RSA) to the list of known hosts.
        ogguserb@hostb's password: ********
        d01ab.def                                     100% 1877     1.8KB/s   00:00
      
      [/home/oggusera/ogg_i_400_A]                                                    
      

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

      hostBの適切な場所にファイルがそのまま配置されていることを確認します。

      HostB - Linux
      [ogguserb@hostB ogg_linux_400_BC]$ ls -l dirdef
      total 4
      -rw-r--r-- 1 ogguserb oinstall 1877 Aug 29 13:43 d01ab.def
      [ogguserb@hostB ogg_linux_400_BC]$                                              
      

      以上で、列定義の作成とコピーが完了しました。 言うまでもなく、表の構造に変更があった場合はこの手順を再度実行する必要があります。

3. Extractを使用したデータ取得の設定

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

    3.1 プライマリのExtractの設定

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

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

      HostA - iSeries
      [/home/oggusera/ogg_i_400_A] ./ggsci 
      Oracle GoldenGate Command Interpreter for DB2 for i
       ... many lines omitted for clarity ... 
      
      GGSCI (hostA) 1> Obey startup.oby 
      
       ... many lines omitted for clarity ... but make sure everything started.
      
      GGSCI (hostA) > Edit Param e01ab 
      -- Primary Extract from HostA thru HostB, then on to HostC
      -- Created by Joe Admin on 10/11/2012
      Extract e01ab
      ExtTrail ./dirdat/ab
      SourceDB HOSTA, UserID oggusera, Password pswda
      TranLogOptions ExcludeUser ogguserc
      Table oggusera.tcust*; 
      
      GGSCI (hostA) >                                                                 
      

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

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

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

      HostA - iSeries
      GGSCI (hostA) > Add Extract e01ab, TranLog, Begin Now 
      EXTRACT added.
      
      GGSCI (hostA) > Add ExtTrail ./dirdat/ab, Extract e01ab, Megabytes 5
      EXTTRAIL added.
      
      GGSCI (hostA) >                                                                 
      

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

      作成される証跡ファイルにはdirdat/ab000000という名前が付与され、この証跡ファイルがいっぱいになると、次の証跡ファイルはdirdat/ab000001という名前になり、その次はdirdat/ab000002となります。

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

    3.2 Data Pumpの設定

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

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

      HostA - iSeries
      GGSCI (hostA) > Edit Param p01ab 
      -- Data pump (secondary Extract) from HostA thru HostB, then on to HostC
      -- Created by Joe Admin on 10/11/2012
      Extract p01ab
      RmtHost hostb, MgrPort 15002, Compress
      RmtTrail ./dirdat/bc
      Passthru
      Table oggusera.tcust*; 
      
      GGSCI (hostA) >                                                                 
      

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

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

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

      HostA - iSeries
      GGSCI (hostA) > Add Extract p01ab, ExtTrailSource ./dirdat/ab 
      EXTRACT added.
      
      GGSCI (hostA) > Add RmtTrail ./dirdat/bc, Extract p01ab, Megabytes 5
      RMTTRAIL added.
      
      GGSCI (hostA) >                                                                 
      

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

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

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

    3.3 Extractプロセスの検証(オプション)

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

      HostA - iSeries
      GGSCI (hostA) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING
      EXTRACT     STOPPED     E01AB       00:00:00      00:03:24
      EXTRACT     STOPPED     P01AB       00:00:00      00:01:22
      
      GGSCI (hostA) >                                                                 
      

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

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

      HostA - iSeries
      GGSCI (hostA) > Info ExtTrail *
      
             Extract Trail: ./dirdat/ab
                   Extract: E01AB
                     Seqno: 0
                       RBA: 0
                 File Size: 5M
      
             Extract Trail: ./dirdat/bc
                   Extract: P01AB
                     Seqno: 0
                       RBA: 0
                 File Size: 5M
      
      GGSCI (hostA) >                                                                 
      

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

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

4. Replicatを使用したデータ配信の設定

    Replicat("e"は意図的に削除されています)と呼ばれるデータ配信は、中間のhostB(プロセス用)とターゲットのhostC(表およびジャーナル用)を組み合わせて実行されます。 データ配信を設定するには、次の手順を実行します。

    4.1 Replicatの設定

      中間のhostBで、Replicatパラメータ・ファイルを作成します。

      HostB - Linux
      [ogguserb@hostB ogg_linux_400_BC]$ ./ggsci 
      Oracle GoldenGate Command Interpreter for DB2 for i
       ... many lines omitted for clarity ... 
      
      GGSCI (hostB) 1> Obey startup.oby 
      
       ... many lines omitted for clarity ... but make sure everything started.
      
      GGSCI (hostB) > Edit Param r01bc
      -- Delivery from HostA thru HostB, on to HostC
      -- Created by Joe Admin on 10/11/2012
      Replicat r01bc
      SourceDB HOSTC, UserID ogguserc, password pswdc
      -- Cannot use AssumeTargetDefs, must use SourceDefs (long story)
      -- AssumeTargetDefs
      SourceDefs dirdef/d01ab.def
      DiscardFile dirrpt/r01bc.dsc, Append
      Map oggusera.tcustmer, Target ogguserc.tcustmer;
      Map oggusera.*,        Target ogguserc.*; 
      
      GGSCI (hostB) >                                                                 
      

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

      Replicatはワイルドカードを使用して、ogguseraスキーマに含まれるすべての表(チェックポイント表oggusera.oggchkptを含む)をマップすると考えられているかもしれませんが、 Extractが送信するのはtcust*表のみであり、チェックポイント表はレプリケートされません。

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

      HostB - Linux
      GGSCI (hostB) > Add Replicat r01bc, ExtTrail ./dirdat/bc 
      REPLICAT added.
      
      GGSCI (hostB) >                                                                 
      

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

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

      HostB - Linux
      GGSCI (hostB) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING                                           
      REPLICAT    STOPPED     R01BC       00:00:00      00:00:33    
      
      GGSCI (hostB) >                                                                 
      

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

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

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

      HostA - iSeries
      GGSCI (hostA) > Start Extract * 
      
      Sending START request to MANAGER ...
      EXTRACT E01AB starting
      
      Sending START request to MANAGER ...
      EXTRACT P01AB starting
      
      GGSCI (hostA) >                                                                 
      

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

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

      HostB - Linux
      GGSCI (hostB) > Start Replicat *
      
      Sending START request to MANAGER ...
      REPLICAT R01BC starting
      
      GGSCI (hostB) >                                                                 
      

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

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

      概要情報を表示します。

      HostB - Linux
      GGSCI (hostB) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING                                           
      REPLICAT    RUNNING     R01BC       00:00:00      00:00:03    
      
      GGSCI (hostB) >                                                                 
      

      何か問題がある場合、STATUSSTOPPEDまたはABENDEDになります (STATUSFAILEDと表示される方が便利かもしれませんが、そのようには表示されず、通常、STOPPEDとだけ表示され、試行が失敗したことは通知されません)。 この場合、View Report r01bc(または開始できなかったプロセス)を入力します。 レポートの下部に、障害の原因が記載されています。 エラーを修正してプロセスを再起動します。

      詳しい情報を表示します。

      HostB - Linux
      GGSCI (hostB) > Info r01bc 
      
      REPLICAT   R01BC     Last Started 2012-09-06 15:01   Status RUNNING
      Checkpoint Lag       00:00:00 (updated 00:00:04 ago)
      Log Read Checkpoint  File ./dirdat/bc000001
                           2012-09-06 14:56:45.768684  RBA 1487
      
      GGSCI (hostB) >                                                                 
      

      もっとも詳しい情報を表示します。

      HostB - Linux
      GGSCI (hostB) > Info r01bc, Detail 
      
      REPLICAT   R01BC     Last Started 2012-09-06 15:01   Status RUNNING
      Checkpoint Lag       00:00:00 (updated 00:00:00 ago)
      Log Read Checkpoint  File ./dirdat/bc000001
                           2012-09-06 14:56:45.768684  RBA 1487
      
        Extract Source                          Begin             End             
      
        ./dirdat/bc000001                       * Initialized *   2012-09-06 14:56
        ./dirdat/bc000000                       * Initialized *   First Record    
      
      
      Current directory    /home/ogguserb/ogg_linux_400_BC
      
      Report file          /home/ogguserb/ogg_linux_400_BC/dirrpt/R01BC.rpt
      Parameter file       /home/ogguserb/ogg_linux_400_BC/dirprm/r01bc.prm
      Checkpoint file      /home/ogguserb/ogg_linux_400_BC/dirchk/R01BC.cpr
      Checkpoint table     ogguserc.oggchkpt
      Process file         /home/ogguserb/ogg_linux_400_BC/dirpcs/R01BC.pcr
      Stdout file          /home/ogguserb/ogg_linux_400_BC/dirout/R01BC.out
      Error log            /home/ogguserb/ogg_linux_400_BC/ggserr.log
      
      GGSCI (hostB) >                                                                 
      

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

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

      概要情報を表示します。

      HostA - iSeries
      GGSCI (hostA) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING
      EXTRACT     RUNNING     E01AB       00:00:00      00:00:04
      EXTRACT     RUNNING     P01AB       00:00:00      00:00:05
      
      GGSCI (hostA) >                                                                 
      

      詳細情報を表示します。

      HostA - iSeries
      GGSCI (hostA) > Info Extract *
      
      EXTRACT    E01AB     Last Started 2012-09-06 08:56   Status RUNNING
      Checkpoint Lag       00:00:00 (updated 00:00:04 ago)
      VAM Read Checkpoint  2012-09-06 08:43:42.642195
      
             Journal               Receiver               Timestamp (UTC)         Seq
      uence Number
        OGGUSERA/OGGJRN    |                     |Sep 06 2012 14:43:42.642195 |      
               EOF
      System Sequence Number: 00000000000000000000
      
      EXTRACT    P01AB     Last Started 2012-09-06 08:56   Status RUNNING
      Checkpoint Lag       00:00:00 (updated 00:00:05 ago)
      Log Read Checkpoint  File ./dirdat/ab000001
                           2012-09-06 08:56:45.753034  RBA 1315
      
      GGSCI (hostA) > Exit
      [/home/oggusera/ogg_i_400_A]                                                    
      

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

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

5. データの生成

    Oracle GoldenGateソフトウェアには、サンプルのデータ・トラフィックを生成するためのSQLスクリプトが付属しています。 既存の表をレプリケートする方法(複雑)と新しい空の表を使って始める方法(簡単)は、異なります。 空の表セットにサンプル・データを生成するには、次の手順を実行します。

    5.1 INSERTの生成(Initial Load)

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

      ソースのhostAのOSプロンプトで、demo_db2_insert.sqlスクリプトをrundb2.shシェルで実行します。

      HostA - iSeries
      [/home/oggusera/ogg_i_400_A] ./rundb2.sh demo_db2_insert.sql
      
       ... many lines omitted for clarity ... 
      
      MSG ID  SEV  RECORD  TEXT
      SQL7956   0       1  Position 1 1 rows inserted in TCUSTMER in OGGUSERA.
      SQL7956   0      29  Position 1 1 rows inserted in TCUSTMER in OGGUSERA.
      SQL7956   0      38  Position 1 1 rows inserted in TCUSTORD in OGGUSERA.
      SQL7956   0      50  Position 1 1 rows inserted in TCUSTORD in OGGUSERA.
      SQL7960   0      62  Position 1 Commit completed.
      SQL7960   0          Commit completed.
                          Message Summary
        Total     Info   Warning      Error   Severe  Terminal
            6        6         0          0        0         0
      00 level severity errors found in source
                                      * * * * *  E N D  O F  L I S T I N G  * * * * *
      [/home/oggusera/ogg_i_400_A]                                                    
      

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

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

      HostA - iSeries
      [/home/oggusera/ogg_i_400_A] ./rundb2.sh 
      DB2>
      SELECT * FROM tcustmer 
      
      CUST_CODE  NAME                           CITY                 STATE
      ---------- ------------------------------ -------------------- ------
      WILL       BG SOFTWARE CO.                SEATTLE              WA
      JANE       ROCKY FLYER INC.               DENVER               CO
      
        2 RECORD(S) SELECTED.
      
      DB2> 
      SELECT * FROM tcustord 
      
      CUST_CODE  ORDER_DATE                 PRODUCT_CODE  ORDER_ID    PRODUCT_PRICE  P
      RODUCT_AMOUNT  TRANSACTION_ID
      ---------- -------------------------- ------------- ----------- -------------- -
      -------------- ------------------------
      WILL       1994-09-30-15.33.00.000000 CAR                   144   17520.00      
                   3 100
      JANE       1995-11-11-13.52.00.000000 PLANE                 256  133300.00      
                   1 100
      
        2 RECORD(S) SELECTED.
      
      DB2> 
      exit 
      [/home/oggusera/ogg_i_400_A]                                                    
      

      SQL7008エラーが表示される場合、ジャーナル機能を有効化していない可能性があります。

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

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

      HostA - iSeries
      [/home/oggusera/ogg_i_400_A] ./ggsci 
      GGSCI (hostA) 1> Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING
      EXTRACT     RUNNING     E01AB       00:00:00      00:00:00
      EXTRACT     RUNNING     P01AB       00:00:00      00:00:06
      
      GGSCI (hostA) 2> Exit 
      [/home/oggusera/ogg_i_400_A]                                                    
      

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

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

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

      HostB - Linux
      GGSCI (hostB) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING                                           
      REPLICAT    RUNNING     R01BC       00:00:00      00:00:05    
      
      GGSCI (hostB) >                                                                 
      

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

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

      ターゲットのhostCでOSプロンプトを使用して、次のDB2問合せを実行します。

      HostC - iSeries
      [/home/ogguserc/ogg_i_400_C] ./rundb2.sh 
      DB2> 
      SELECT * FROM tcustmer 
      
      CUST_CODE  NAME                           CITY                 STATE
      ---------- ------------------------------ -------------------- ------
      WILL       BG SOFTWARE CO.                SEATTLE              WA
      JANE       ROCKY FLYER INC.               DENVER               CO
      
        2 RECORD(S) SELECTED.
      
      DB2> 
      SELECT * FROM tcustord 
      
      CUST_CODE  ORDER_DATE                 PRODUCT_CODE  ORDER_ID    PRODUCT_PRICE  P
      RODUCT_AMOUNT  TRANSACTION_ID
      ---------- -------------------------- ------------- ----------- -------------- -
      -------------- ------------------------
      WILL       1994-09-30-15.33.00.000000 CAR                   144   17520.00      
                   3 100
      JANE       1995-11-11-13.52.00.000000 PLANE                 256  133300.00      
                   1 100
      
        2 RECORD(S) SELECTED.
      
      DB2> 
      exit 
      [/home/ogguserc/ogg_i_400_C]                                                    
      

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

      ソース内にすでに行が含まれている場合は、ターゲットで別の方法を使って初期ロードを実行できますが、両方の表が最初に空の場合は、これがもっとも簡単な方法です。

    5.2 UPDATE/DELETEの生成

      DB2スクリプトを実行して行を更新(UPDATE)および削除(DELETE)します。

      ソースのhostAのOSプロンプトで、demo_db2_misc.sqlスクリプトをrundb2.shシェルで実行します。

      HostA - iSeries
      [/home/oggusera/ogg_i_400_A] ./rundb2.sh demo_db2_misc.sql
      
       ... many lines omitted for clarity ... 
      
      MSG ID  SEV  RECORD  TEXT
      SQL7956   0       1  Position 1 1 rows inserted in TCUSTMER in OGGUSERA.
      SQL7956   0      29  Position 1 1 rows inserted in TCUSTMER in OGGUSERA.
      SQL7956   0      38  Position 1 1 rows inserted in TCUSTMER in OGGUSERA.
      SQL7960   0      47  Position 1 Commit completed.
      SQL7956   0      49  Position 1 1 rows inserted in TCUSTORD in OGGUSERA.
      SQL7956   0      61  Position 1 1 rows inserted in TCUSTORD in OGGUSERA.
      SQL7956   0      73  Position 1 1 rows inserted in TCUSTORD in OGGUSERA.
      SQL7960   0      85  Position 1 Commit completed.
      SQL7957   0      87  Position 1 1 rows updated in TCUSTORD in OGGUSERA.
      SQL7957   0      94  Position 1 1 rows updated in TCUSTORD in OGGUSERA.
      SQL7957   0     101  Position 1 1 rows updated in TCUSTORD in OGGUSERA.
      SQL7957   0     108  Position 1 1 rows updated in TCUSTMER in OGGUSERA.
      SQL7960   0     113  Position 1 Commit completed.
      SQL7955   0     115  Position 1 1 rows deleted from TCUSTORD in OGGUSERA.
      SQL7955   0     121  Position 1 1 rows deleted from TCUSTORD in OGGUSERA.
      SQL7960   0     127  Position 1 Commit completed.
      SQL0088   0     129  Position 1 DELETE applies to entire table.
      SQL7955   0     129  Position 1 3 rows deleted from TCUSTORD in OGGUSERA.
      SQL7961   0     131  Position 1 Rollback completed.
      SQL7960   0          Commit completed.
                          Message Summary
        Total     Info   Warning      Error   Severe  Terminal
           20       20         0          0        0         0
      00 level severity errors found in source
                                      * * * * *  E N D  O F  L I S T I N G  * * * * *
      [/home/oggusera/ogg_i_400_A]                                                    
      

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

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

      HostA - iSeries
      [/home/oggusera/ogg_i_400_A] ./rundb2.sh 
      DB2> 
      SELECT * FROM tcustmer 
      
      CUST_CODE  NAME                           CITY                 STATE
      ---------- ------------------------------ -------------------- ------
      WILL       BG SOFTWARE CO.                SEATTLE              WA
      JANE       ROCKY FLYER INC.               DENVER               CO
      DAVE       DAVE'S PLANES INC.             TALLAHASSEE          FL
      BILL       BILL'S USED CARS               DENVER               CO
      ANN        ANN'S BOATS                    NEW YORK             NY
      
        5 RECORD(S) SELECTED.
      
      DB2> 
      SELECT * FROM tcustord 
      
      CUST_CODE  ORDER_DATE                 PRODUCT_CODE  ORDER_ID    PRODUCT_PRICE  P
      RODUCT_AMOUNT  TRANSACTION_ID
      ---------- -------------------------- ------------- ----------- -------------- -
      -------------- ------------------------
      WILL       1994-09-30-15.33.00.000000 CAR                   144   16520.00      
                   3 100
      BILL       1995-12-31-15.00.00.000000 CAR                   765   14000.00      
                   3 100
      BILL       1996-01-01-00.00.00.000000 TRUCK                 333   25000.00      
                  15 100
      
        3 RECORD(S) SELECTED.
      
      DB2> 
      exit 
      [/home/oggusera/ogg_i_400_A]                                                    
      

      tcustmerに3行挿入され、tcustordに3行挿入され、tcustordで4行更新され、tcustordから2行削除されました。

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

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

      HostA - iSeries
      [/home/oggusera/ogg_i_400_A] ./ggsci 
      GGSCI (hostA) 1> Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING
      EXTRACT     RUNNING     E01AB       00:00:00      00:00:09
      EXTRACT     RUNNING     P01AB       00:00:00      00:00:01
      
      GGSCI (hostA) 2>                                                                
      

      最初のINSERTが機能する場合は、おそらくUPDATEDELETEも機能するでしょう。

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

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

      HostB - Linux
      GGSCI (hostB) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING                                           
      REPLICAT    RUNNING     R01BC       00:00:00      00:00:09    
      
      GGSCI (hostB) >                                                                 
      

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

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

      ターゲットのhostCで、次のDB2問合せを実行します。

      HostC - iSeries
      [/home/ogguserc/ogg_i_400_C] ./rundb2.sh 
      DB2> 
      SELECT * FROM tcustmer 
      
      CUST_CODE  NAME                           CITY                 STATE
      ---------- ------------------------------ -------------------- ------
      WILL       BG SOFTWARE CO.                SEATTLE              WA
      JANE       ROCKY FLYER INC.               DENVER               CO
      DAVE       DAVE'S PLANES INC.             TALLAHASSEE          FL
      BILL       BILL'S USED CARS               DENVER               CO
      ANN        ANN'S BOATS                    NEW YORK             NY
      
        5 RECORD(S) SELECTED.
      
      DB2> 
      SELECT * FROM tcustord 
      
      CUST_CODE  ORDER_DATE                 PRODUCT_CODE  ORDER_ID    PRODUCT_PRICE  P
      RODUCT_AMOUNT  TRANSACTION_ID
      ---------- -------------------------- ------------- ----------- -------------- -
      -------------- ------------------------
      WILL       1994-09-30-15.33.00.000000 CAR                   144   16520.00      
                   3 100
      BILL       1995-12-31-15.00.00.000000 CAR                   765   14000.00      
                   3 100
      BILL       1996-01-01-00.00.00.000000 TRUCK                 333   25000.00      
                  15 100
      
        3 RECORD(S) SELECTED.
      
      DB2> exit 
      [/home/ogguserc/ogg_i_400_C]                                                    
      

      Oracle GoldenGateの基本的な一方向機能Extract、Data Pump、およびReplicatの構成と操作が完了しました。

6. Oracle GoldenGate環境の管理

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

    6.1 レポートの表示

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

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

      HostA - iSeries
      GGSCI (hostA) 2> Send Extract e01ab, Report 
      
      Sending REPORT request to EXTRACT E01AB ...
      Request processed.
      
      GGSCI (hostA) 3> View Report e01ab 
      ***********************************************************************
                      Oracle GoldenGate Capture for DB2 for i
            Version 11.2.1.0.2 OGGCORE_11.2.1.0.3_PLATFORMS_120724.2205
       IBM i, ppc, 64bit (optimized), IBM DB2 for i on Jul 26 2012 01:08:48
      
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
                          Starting at 2012-09-06 08:56:43
      ***********************************************************************
      
      Operating System Version:
      OS400
      Version 6, Release 1
      Node: HOSTA
      Machine: 0010000BD705
                               soft limit   hard limit
      Address Space Size   :    unlimited    unlimited
      Heap Size            :    unlimited    unlimited
      File Size            :    unlimited    unlimited
      CPU Time             :    unlimited    unlimited
      
      Process id: 320447
      
      Description:
      
      ***********************************************************************
      **            Running with the following parameters                  **
      ***********************************************************************
      
      E01AB.rpt (25%)                                                                 
      

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

      HostA - iSeries
      ***********************************************************************
      *                   ** Run Time Statistics **                         *
      ***********************************************************************
      
      Report at 2012-09-06 10:07:16 (activity since 2012-09-06 09:21:22)
      
      Output to ./dirdat/ab:
      
      From Table OGGUSERA.TCUSTMER:
             #                   inserts:         5
             #                   updates:         1
             #                   deletes:         0
             #                  discards:         0
      From Table OGGUSERA.TCUSTORD:
             #                   inserts:         5
             #                   updates:         3
             #                   deletes:         2
             #                  discards:         0
      
      ***********************************************************************
      **                     Run Time Warnings                             **
      ***********************************************************************
      
      GGSCI (hostA) 4>                                                                
      

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

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

      中間のhostBで、Replicatのプロセス・レポートを表示します

      HostB - Linux
      GGSCI (hostB) > Send Replicat r01bc, Report 
      
      Sending REPORT request to REPLICAT R01BC ...
      Request processed.
      
      GGSCI (hostB)> View Report r01bc 
      ***********************************************************************
                     Oracle GoldenGate Delivery for DB2 for i
           Version 11.2.1.0.2 OGGCORE_11.2.1.0.2T3_PLATFORMS_120724.2205
       Linux, x64, 64bit (optimized), IBM DB2 for i Remote on Jul 25 2012 02:09:35
       
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
                          Starting at 2012-09-06 15:36:07
      ***********************************************************************
      
      Operating System Version:
      Linux
      Version #1 SMP Wed Jul 27 21:02:33 EDT 2011, Release 2.6.32-200.13.1.el5uek
      Node: hostb.example.com
      Machine: x86_64
                               soft limit   hard limit
      Address Space Size   :    unlimited    unlimited
      Heap Size            :    unlimited    unlimited
      File Size            :    unlimited    unlimited
      CPU Time             :    unlimited    unlimited
      
      Process id: 1233
      
      Description: 
      
      ***********************************************************************
      **            Running with the following parameters                  **
      ***********************************************************************
      
      --More--(25%)                                                                   
      

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

      HostB - Linux
      ***********************************************************************
      *                   ** Run Time Statistics **                         *
      ***********************************************************************
      
      Last record for the last committed transaction is the following: 
      ___________________________________________________________________
      Trail name :  ./dirdat/bc000001
      Hdr-Ind    :     E  (x45)     Partition  :     .  (x04) 
      UndoFlag   :     .  (x00)     BeforeAfter:     B  (x42) 
      RecLength  :    71 (x0047)    IO Time    : 2012-09-06 15:45:08.345869  
      IOType     :     3  (x03)     OrigNode   :   255  (xff)
      TransInd   :     .  (x02)     FormatType :     R  (x52)
      SyskeyLen  :     0  (x00)     Incomplete :     .  (x00)
      AuditRBA   :          2       AuditPos   : 0
      Continued  :     N  (x00)     RecCount   :     1  (x01)
      
      2012-09-06 15:45:08.345869 Delete             Len    71 RBA 4089
      Name: OGGUSERA.TCUSTORD
      ___________________________________________________________________
      
      Reading ./dirdat/bc000001, current RBA 4228, 16 records
      
      Report at 2012-09-06 16:27:02 (activity since 2012-09-06 15:36:09)
      
      From Table OGGUSERA.TCUSTMER to OGGUSERC.TCUSTMER:
             #                   inserts:         5
             #                   updates:         1
             #                   deletes:         0
             #                  discards:         0
      From Table OGGUSERA.TCUSTORD to OGGUSERC.TCUSTORD:
             #                   inserts:         5
             #                   updates:         3
             #                   deletes:         2
             #                  discards:         0
      
      ***********************************************************************
      **                     Run Time Warnings                             **
      ***********************************************************************
      
      GGSCI (hostB) >                                                                 
      

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

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

    6.2 統計情報の表示

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

      HostA - iSeries
      GGSCI (hostA) > Send Extract e01ab, Stats 
      
      Sending STATS request to EXTRACT E01AB ...
      
      Start of Statistics at 2012-09-06 12:19:09.
      
      Output to ./dirdat/ab:
      
      Extracting from OGGUSERA.TCUSTMER to OGGUSERA.TCUSTMER:
      
      *** Total statistics since 2012-09-06 09:21:22 ***
              Total inserts                                      5.00
              Total updates                                      1.00
              Total deletes                                      0.00
              Total discards                                     0.00
              Total operations                                   6.00
      
      *** Daily statistics since 2012-09-06 09:21:22 ***
              Total inserts                                      5.00
              Total updates                                      1.00
              Total deletes                                      0.00
              Total discards                                     0.00
              Total operations                                   6.00
      
      *** Hourly statistics since 2012-09-06 12:00:00 ***
      
              No database operations have been performed.
      
      *** Latest statistics since 2012-09-06 09:21:22 ***
              Total inserts                                      5.00
              Total updates                                      1.00
              Total deletes                                      0.00
              Total discards                                     0.00
              Total operations                                   6.00
      
      Extracting from OGGUSERA.TCUSTORD to OGGUSERA.TCUSTORD:
      
      *** Total statistics since 2012-09-06 09:21:22 ***
              Total inserts                                      5.00
              Total updates                                      3.00
              Total deletes                                      2.00
              Total discards                                     0.00
              Total operations                                  10.00
      
      *** Daily statistics since 2012-09-06 09:21:22 ***
              Total inserts                                      5.00
              Total updates                                      3.00
              Total deletes                                      2.00
              Total discards                                     0.00
              Total operations                                  10.00
      
      *** Hourly statistics since 2012-09-06 12:00:00 ***
      
              No database operations have been performed.
      
      *** Latest statistics since 2012-09-06 09:21:22 ***
              Total inserts                                      5.00
              Total updates                                      3.00
              Total deletes                                      2.00
              Total discards                                     0.00
              Total operations                                  10.00
      
      End of Statistics.
      
      GGSCI (hostA) >                                                                 
      

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

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

      HostB - Linux
      GGSCI (hostB) > Send Replicat r01bc, Stats
      
      Sending STATS request to REPLICAT R01BC ...
      
      Start of Statistics at 2012-09-06 18:23:55.
      
      Replicating from OGGUSERA.TCUSTMER to OGGUSERC.TCUSTMER:
      
      *** Total statistics since 2012-09-06 15:36:09 ***
              Total inserts                                      5.00
              Total updates                                      1.00
              Total deletes                                      0.00
              Total discards                                     0.00
              Total operations                                   6.00
      
      *** Daily statistics since 2012-09-06 15:36:09 ***
              Total inserts                                      5.00
              Total updates                                      1.00
              Total deletes                                      0.00
              Total discards                                     0.00
              Total operations                                   6.00
      
      *** Hourly statistics since 2012-09-06 18:00:00 ***
      
              No database operations have been performed.
      
      *** Latest statistics since 2012-09-06 15:36:09 ***
              Total inserts                                      5.00
              Total updates                                      1.00
              Total deletes                                      0.00
              Total discards                                     0.00
              Total operations                                   6.00
      
      Replicating from OGGUSERA.TCUSTORD to OGGUSERC.TCUSTORD:
      
      *** Total statistics since 2012-09-06 15:36:09 ***
              Total inserts                                      5.00
              Total updates                                      3.00
              Total deletes                                      2.00
              Total discards                                     0.00
              Total operations                                  10.00
      
      *** Daily statistics since 2012-09-06 15:36:09 ***
              Total inserts                                      5.00
              Total updates                                      3.00
              Total deletes                                      2.00
              Total discards                                     0.00
              Total operations                                  10.00
      
      *** Hourly statistics since 2012-09-06 18:00:00 ***
      
              No database operations have been performed.
      
      *** Latest statistics since 2012-09-06 15:36:09 ***
              Total inserts                                      5.00
              Total updates                                      3.00
              Total deletes                                      2.00
              Total discards                                     0.00
              Total operations                                  10.00
      
      End of Statistics.
      
      GGSCI (hostB) >                                                                 
      

      プライマリExtractに対する以前の統計情報は、Data Pumpが関連していたため、スキーマOGGUSERAからOGGUSERAまでのものでした。 今回は、スキーマOGGUSERAからOGGUSERCまでになったため、より明確になりました。

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

    6.3 プロセスの停止および削除

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

      まだその必要はありませんが、個々のプロセスを削除することが必要になった場合は、最初にデータベースに接続していることを確認してから(DBLogin)、Delete Extract e01abと入力するか、またはDelete ER *と入力してホスト上のすべてのプロセスを削除します。 GGSCIで"Are you sure?"と確認を求められたら、yと入力します。

まとめ

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

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

    • Oracle GoldenGateソフトウェアをインストールおよび設定する
    • Extractプロセス、Data Pumpプロセス、およびReplicatプロセスを設定および開始する
    • サンプル・データを生成してレプリケーションの有効性をテストする
    • プロセスで生成されるレポートを管理する

    参考資料

    このチュートリアルのトピックに関連するヘルプ・トピック

    著者

    • カリキュラムのおもな開発者: Steve Friedberg
    • 共著者: Richard Johnston、Hadi Koesnodihardjo、Simon Whitworth、Joe deBuzna

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

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

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