LinuxでのOracle GoldenGateの使用:Oracle 11gとDB2 9.7の異種環境間での双方向レプリケーション
概要
- Manager:
- ソース・ホストとターゲット・ホストの両方で他のプロセスを開始および停止します。 ExtractまたはReplicatを実行している場合は不要です。
- Initial Load:
- オプションです。 ターゲット表を1回移入するために使用します。 ソース表から直接読み取ることも、ログから読み取ることもできます。 このOBEでは、Initial Loadは使用しません。
- Extract:
- トランザクション・データを証跡ファイルに取得するために、ソースで実行します。
- Data Pump:
- オプションですが、強くお勧めします。 IPネットワーク経由で証跡ファイルをソースからターゲットに送信します。 技術的には、セカンダリのExtractです。
- Replicat:
- ターゲット・データベースにデータを提供します。 通常、Replicatはターゲットで実行します。
- 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_SRCとGGS_TRGを作成する。
- Some_Command
- コマンドまたは値として入力します。 例:
./ggsci と入力して、コマンドライン・インタプリタを開始します。
- Some_Prompt
- システムがプロンプトまたは応答としてこれに対応します。 例:
ウェルカム・スプラッシュ・バナーの後、GGSCI (host01) 1>プロンプトでコマンドを入力できます。
- Some_Button
- 画面に表示されるこのボタンをクリックします。 例:
必要なバージョンを選択したら、「Continue」をクリックしてダウンロードを開始します。
- Some_Variable
- 実際の値に置き換える変数。 例:
プロンプトで、userid/passwordを入力します。
- Some_Filename
- ファイル名、パス、またはフォルダ/ディレクトリ。 例:
/etcディレクトリのhostsファイルを編集します。
- Some_Code
- キーワードまたはコード要素。 例:
初期ロードの後で、パラメータHandleCollisionsをNoHandleCollisionsに変更します。
- 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/に保存)。
目的
この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つのプロセスを使用します。
シナリオ
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_ENTITY、GDP_BY_YEAR、GDP_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.comとhost02.example.comのエイリアスを作成すると便利です。 さらに、単一ホストの環境では、ユーザーuser01がsqlplusとdb2の両方を実行できる必要があります。 したがって、環境変数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
ハードウェアとソフトウェアの要件
ハードウェアとソフトウェアの要件リストは、以下のとおりです。
ハードウェア
ソフトウェア
前提条件
このチュートリアルを始める前に、以下のことを確認してください。
host01とhost02の2つのホストがあり、各ホストでOS、GGSCI、およびSQLの3つの環境プロンプトを使用します。 そのため、6つの異なる場所に入力します。 どのコマンドをどの場所に入力するのかに、特に注意してください。 誤ったコンテキストで誤ったコマンドを使用するのが、もっともよくある誤りです。
表記規則
指示と画面のテキストの色とフォントは、次のように解釈します。
ファイルとプロセスのネーミング規則
ファイルとプロセスのネーミング規則が役立つことがあります。 次に、このOBEで使用している規則の例を示します。
pxxxxhh.ext
内訳は次のとおりです。
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"として接続します。
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_user01とtrg_user01ユーザー/スキーマを作成します。
青のホスト(DB2)側では、GGS_SRCデータベースとGGS_TRGデータベースを作成する必要があります。
OracleスキーマとDB2データベースの作成が完了した後は、いくつかのDDLスクリプトを実行して必須のレプリケーション・オブジェクトを作成する必要があります。
データベース・ファイル用ディレクトリの作成
両方のホストで、データベース・ファイル用のコンテナを作成する必要があります。
| Host01 - Linux |
[root@host01 ~]# mkdir -p /u02/oradata [root@host01 ~]# chown -R oracle.oinstall /u02/oradata |
| 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 |
| 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インスタンスを作成する


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




重要! 作成した2つのデータベースは、DB2によって自動的に"バックアップ待機"モードに入ります。
つまり、バックアップを実行するまでは、これらのデータベースに接続することができません。Control Centerを使用すると、2つのデータベースGGS_SRCとGGS_TRGをバックアップできます。
以前に作成したディレクトリ(/u02/db2_backups/GGS_SRCと/u02/db2_backups/GGS_SRC)を使用して、データベースのバックアップを保存します。
Path Browserダイアログ・ウィンドウが表示されます。 /u02/db2_backups/GGS_SRCディレクトリへと移動し「Ok」をクリックします。
データベースのバックアップが開始されます。
前記の手順をもう一度実行して、GGS_TRGデータベースをバックアップします。
DB2のレプリケーション・ソースとして使用するデータベースGGS_SRCは、ユーザーuser01によってアクセスされます。 ユーザーuser01には、DBADM権限を付与する必要があります。
Control Centerで、「GGS_SRC」データベース・ノードを右クリックしてポップアップ・ウィンドウを表示し、「Authorities...」をクリックします。 Database Authoritiesウィンドウが表示されるので、「Add User...」をクリックし、ドロップダウン・リスト・ボックスから「user01」を選択します。
DBADM権限の下にあるドロップダウン・リスト・ボックスをクリックし、「Yes」を選択してDBADM権限をユーザーuser01に付与します。

"db2inst1"アカウントからログアウトします。
2.3 SQLスクリプトをダウンロードしてアンパックする
また、デフォルトのディレクトリの下に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. 環境の設定
- DBLogin:
- 指定のuserid@SID/passwordを使用してDBに接続します。 曖昧さがない場合は、@SIDはオプションです。
- Start Mgr:
- Managerがすでに開始されている場合、再度開始しようとしても問題ありません。 これはセッション間で保持されます。
- Info Mgr:
- Managerが正常に開始されたかどうか、および正常に開始された場合に使用されているポート番号をレポートします。
- Info CheckpointTable:
- チェックポイント表(Replicatで使用される)が検出されたかどうかをレポートします。
- Set Editor:
- デフォルトはviです。 このデフォルトをgeditなどのGUIエディタに一時的に変更できます。
環境を設定するには、ASCIIファイルを編集してOSユーティリティを実行します。 環境を設定するには、以下の手順を実行します。
3.1 赤のホストでOracle 11g Databaseを設定する
このセクションでは、SQL*Plusをsysdbaとして使用する必要があります。
host01で、LOG_MODEがARCHIVELOGに設定されていることを確認します。
| 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 |
3.3 スタートアップ・ファイルとManagerを作成する
任意のテキスト・エディタを使用して、host01(赤)のOracle GoldenGateインストール・ディレクトリにGLOBALSファイルを作成します。
名前の前に"./"を追加すると、GGSCIを使ってGLOBALSファイルを作成したり編集したりできます。 例:
GGSCI> Edit Param ./GLOBALS
これを適用する場合を除き、GGSCIを終了して再起動する必要があります。つまり、GGSCIを初めて開始する前にGGSCIを使わずに編集することもできます。
GLOBALSファイルの名前はすべて大文字にする必要があります。また、チェックポイント表のスキーマと名前を定義する1行(および--comments)のみ含まれます。 任意のスキーマと名前を使用できます。 vi、geditなどの任意のテキスト・エディタを使用できます。
| 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.oby、startup02.oby、startup03.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]$ |
青のホスト(host02)において、両方のOracle GoldenGateインストール・ディレクトリ(ggs_srcとggs_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]$ |
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. |
レプリケーション・ターゲットに対しても、同様の操作を実行します。
| 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)... |
レプリケーション・ターゲット・インスタンスに対応する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)... |
青のホスト(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 |
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. |
トランザクション・データが、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ディレクトリにコピーする際、カット・アンド・ペースト、scp、ftpなどの任意の方法を使用できます。 この例では、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)
- -- :
- コメント。 自己記述的なファイルや、後で使用するパラメータのインライン保存に便利です。
- SETENV:
- SID(データベース・システム識別子)を.profileまたはUserIDのいずれかを使用して任意の場所に定義するか、SETENVを使用してここで定義する必要があります。 必要なのは1箇所のみですが、ここで定義すると、.profileの以前の定義よりも優先されます。
- ExtTrail:
- データ・ポンプを使用する場合は、"外部"(external)ではありません。
- aa:
- 順序番号が、このアルファベットの接頭辞に追加されます。 たとえば、証跡ファイルにaa000000、aa000001、aa000002などの名前が付与されて、ファイルが指定のサイズ(デフォルトは100MB)よりも大きくなると、ロールオーバーされます。
- TranLogOptions:
- ループを防ぐため、双方向レプリケーションにより後で使用されます。
- Table:
- 複数のTable文を使用できます。それぞれの文に、ゼロ、1つ、または複数の表になる1つの表名(オプションのワイルド・カードを使用)が含まれます。 スキーマ名にワイルド・カードを使用することはできません。
データ取得(Extractとも呼ばれます)は、ソース側で実行します。 プライマリのExtractは必須です。セカンダリのExtract(Data Pumpとも呼ばれます)はオプションですが、強くお勧めします。 データ取得を設定するには、次の手順を実行します。
4.1 Oracleソース・インスタンスでプライマリのExtractを設定する
ソースのhost01で、プライマリExtractパラメータ・ファイルを作成します。
概要で説明しているネーミング規則を使用して、path/filename.extをdirprm/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) > |
使用しているパラメータには、次のようなものがあります。
ファイル内のパスワードを暗号化できますが、この演習の範囲外になります。
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.extをdirprm/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) >
|
どの場合にも、StatusがRUNNINGになり、前回の更新またはチェックポイントからの時間は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と同様に、StatusはRUNNINGになり、前回の更新またはチェックポイントからの時間は10秒未満になります。
どの場合でも、ステータスRUNNINGが表示されます。 ソース表は空のままです。 まだデータが配置されておらず、何もレプリケートされていません。
6. データの生成(OracleからDB2)
既存の表をレプリケートする方法(複雑)と新しい空の表を使って始める方法(簡単)は、異なります。 空の表セットにサンプル・データを生成するには、次の手順を実行します。
6.1 INSERTを生成する(Initial Load)
SQLスクリプトを実行して行を挿入(INSERT)します。
ソースのhost01で、OSプロンプトを使用してsqlplusのeconomic_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]$ |
StatusにABENDEDと表示される場合は、プロセス・レポート(後述のトピックで説明)でエラーの内容を確認します。
中間にある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]$ |
StatusにABENDEDと表示される場合は、プロセス・レポート(後述のトピックで説明)でエラーの内容を確認します。
ターゲット表に行が挿入されたことを確認します。
レプリケーション・ターゲットの青のホストで、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表が一致しているはずです。
追加の経済データをレプリケーション・ソース(赤のホストにある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_YEARとGDP_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. |
[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.rpt、processname1.rpt、processname2.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.extをdirprm/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.extをdirprm/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) >
|
どの場合にも、StatusがRUNNINGになり、前回の更新またはチェックポイントからの時間は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と同様に、StatusはRUNNINGになり、前回の更新またはチェックポイントからの時間は10秒未満になります。
どの場合でも、ステータスRUNNINGが表示されます。 ソース表は空のままです。 まだデータが配置されておらず、何もレプリケートされていません。
10. データの生成(DB2からOracle)
既存の表をレプリケートする方法(複雑)と新しい空の表を使って始める方法(簡単)は、異なります。 空の表セットにサンプル・データを生成するには、次の手順を実行します。
10.1 INSERTを生成する(Initial Load)
SQLスクリプトを実行して行を挿入(INSERT)します。
ソースのhost02で、OSプロンプトを使用してsqlplusのeconomic_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 |
エラーは表示されないはずです。
ソース表に行が挿入されたことを確認します。
| 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 \ |
ソースの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]$ |
StatusにABENDEDと表示される場合は、プロセス・レポート(後述のトピックで説明)でエラーの内容を確認します。
ターゲットの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]$ |
StatusにABENDEDと表示される場合は、プロセス・レポート(後述のトピックで説明)でエラーの内容を確認します。
ターゲット表に行が挿入されたことを確認します。
レプリケーション・ターゲットの赤のホストで、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) |
ターゲット表に行が挿入されたことを確認します。
レプリケーション・ターゲットの赤のホストで、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_YEARとGDP_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.rpt、processname1.rpt、processname2.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 RDBMSとIBM DB2 RDBMSから成る異種環境で、Extract、Data Pump、Replicatの各プロセスを構成して起動する
- サンプル・データを生成してレプリケーションの有効性をテストする
- プロセスで生成されるレポートを管理する
- OracleからDB2へのレプリケーションおよびDB2からOracleへのレプリケーションを行うために、同じ手順を実行する
- Oracle GoldenGateの製品ドキュメント・バージョン11.2.1(E35209-01)およびその他の旧バージョン
- Oracle GoldenGateの製品ドキュメント(日本語版)
- Oracle Universityのコース
- 関連情報が記載されたWebサイト
- Oracle GoldenGateの詳細については、OTN製品情報ページの『お役立ち情報』タブをご覧下さい。
- カリキュラム開発責任者: Elio Bonazzi
- 共著者: Richard Johnston、Hadi Koesnodihardjo、Simon Whitworth、Joe deBuzna、Chris Lawless。
Oracle GoldenGateを使用すると、このサンプル演習で行ったよりもさらに多くのことを実行できます。
このチュートリアルで学習した内容は、次のとおりです。
参考資料
著者
このOracle by Exampleをナビゲートする際、次の機能を使用できます。
- ヘッダー・ボタンの非表示:
- ヘッダー内のボタンを非表示にするには、タイトルをクリックします。 ボタンを再表示するには、もう一度タイトルをクリックします。
- トピック一覧ボタン:
- すべてのトピックの一覧です。 いずれかのトピックをクリックすると、その項に移動します。
- すべてのトピックを開く/閉じる:
- すべての項の詳細を表示または非表示にします。 デフォルトでは、すべてのトピックが閉じられています。
- すべてのイメージを表示/非表示:
- すべてのスクリーンショットを表示または非表示にします。 デフォルトでは、すべてのイメージが表示されています。
- 印刷:
- コンテンツを印刷します。 現在表示または非表示にされているコンテンツが印刷されます。
このチュートリアルの特定の項に移動するには、一覧からトピックを選択してください。