LinuxでのOracle GoldenGateの使用: Oracle 11g Release 2からOracle 11g Release 2への双方向レプリケーション

概要

    目的

    このOracle By Example(OBE)チュートリアルでは、Linux Oracle 11g Release 2 DatabaseでのOracle GoldenGateバージョン11.2.1.0.2のインストール、構成、および管理について説明します。

    所要時間

    約3時間

    はじめに

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

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

    シナリオ

    Oracle 11g Release 2を実行している2つのLinuxホストhost01(赤)とhost02(緑)があります。 host01には、パスワードがpswd1uのユーザー/スキーマogguser1と、パスワードがpswd1aのユーザー/スキーマoggadm1を持つ管理者が存在します。

    host02には、パスワードがpswd2uのユーザー/スキーマogguser2と、パスワードがpswd2aのユーザー/スキーマoggadm2を持つ管理者が存在します。 host01には、host02にレプリケートする必要がある表(TCUSTMERTCUSTORD)が存在します。 画面のバナーの色に注意して、どのコマンドがどのホストに対して実行されるのか把握するようにしてください。 また、GGSCIコマンド、SQLコマンド、OSコマンドのいずれを入力するのか(プロンプトに表示されます)に注意してください。

    一方向レプリケーションを実行したら、双方向レプリケーションを実行することもできます。 その際、Oracle GoldenGateソフトウェアの追加のインスタンス(2番目のインストール・ディレクトリ)が必要になります。

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

    ホスト名 OS SID ユーザー パスワード ポート インストール・ディレクトリ
    host01 Linux 64ビット orcl01 ogguser1
    oggadm1
    pswd1u
    pswd1a
    15001 /u01/app/oracle/ogg01
    host02 Linux 64ビット orcl02 ogguser2
    oggadm2
    pswd2u
    pswd2a
    15002 /u01/app/oracle/ogg02

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

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

    ハードウェア
    • 2つのLinuxホスト: 一方がソースでもう一方がターゲット。 この例では、Oracle Enterprise Linux OEL 5.7(64ビット)を使用しています。 Windowsまたは32ビットLinuxでも、Oracle GoldenGateソフトウェアの別のバージョンが動作します。 ソースとターゲットを同じホスト上に配置することもできますが、何が起こっているのかを把握するのが概念的に難しくなります。 ホストが1つのみの場合は、/etc/hostsファイルを変更して、host01.example.comhost02.example.comのエイリアスを作成すると便利です。
    ソフトウェア
    • Oracle Linux 64ビットでのOracle GoldenGate(Oracle Software Delivery Cloud)、バージョン11.2.1.0.2、部品番号V34339-01。これは、64ビットLinux用の部品番号です。
    • Oracle 11g Release 2 Database(両方のホストにインストールされていること)

    前提条件

    このチュートリアルを始める前に、以下のことを実行しておく必要があります。

    • Linuxソフトウェアへのrootアクセスを設定する(/etcへの書込みアクセス)
    • Webにアクセスしてソフトウェアとドキュメントをダウンロードする
    • host01にSIDがorcl01のデータベース・インスタンスを作成し、host02にSIDがorcl02のデータベース・インスタンスを作成する
    • 両方のホストがSIDによって相互に通信できるように、両方のホストのtnsnames.oraを変更する

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

    表記規則

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

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

    また、文字"o"(オー)と数字"0"(ゼロ)の違いに注意してください。 SIDはorcl01です(最初がoで最後が01)。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      Go」をクリックします。

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

      Continue」をクリックします。

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

      Download」をクリックします。

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

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

      Host01 - Linux
      [oggadm1@host01 /]$ cd /u01/app/oracle 
      [oggadm1@host01 oracle]$ mkdir ogg01 
      [oggadm1@host01 ogg01]$ cd ogg01/ 
      [oggadm1@host01 ogg01]$                                                         
      

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

      Host01 - Linux
      [oggadm1@host01 ogg01]$ cp /stage/V34339-01.zip . 
      [oggadm1@host01 ogg01]$ 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  
      [oggadm1@host01 ogg01]$ tar -xvpf fbo_ggs_Linux_x64_ora11g_64bit.tar 
      UserExitExamples/
      UserExitExamples/ExitDemo_more_recs/
      UserExitExamples/ExitDemo_more_recs/Makefile_more_recs.HPUX
      
       ... 見やすくするため、多くの行が省略されています ... 
      
      ulg.sql
      usrdecs.h
      zlib.txt
      [oggadm1@host01 ogg01]$                                                         
      

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

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

      Host01 - Linux
      [oggadm1@host01 ogg01]$ ./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 /u01/app/oracle/ogg01
      
      Parameter files            /u01/app/oracle/ogg01/dirprm: already exists
      Report files               /u01/app/oracle/ogg01/dirrpt: created
      Checkpoint files           /u01/app/oracle/ogg01/dirchk: created
      Process status files       /u01/app/oracle/ogg01/dirpcs: created
      SQL script files           /u01/app/oracle/ogg01/dirsql: created
      Database definitions files /u01/app/oracle/ogg01/dirdef: created
      Extract data files         /u01/app/oracle/ogg01/dirdat: created
      Temporary files            /u01/app/oracle/ogg01/dirtmp: created
      Stdout files               /u01/app/oracle/ogg01/dirout: created
      
      GGSCI (host01) 2> Exit 
      [oggadm1@host01 ogg01]$                                                         
      

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

      他のホストについて同じ手順を実行します。 ソフトウェアをhost02(緑)のディレクトリにアンパックします。

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

      Host02 - Linux
      [oggadm2@host02 /]$ cd /u01/app/oracle 
      [oggadm2@host02 oracle]$ mkdir ogg02 
      [oggadm2@host02 ogg02]$ cd ogg02/ 
      [oggadm2@host02 ogg02]$                                                         
      

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

      Host02 - Linux
      [oggadm2@host02 ogg02]$ cp /stage/V34339-01.zip . 
      [oggadm2@host02 ogg02]$ 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  
      [oggadm2@host02 ogg02]$ tar -xvpf fbo_ggs_Linux_x64_ora11g_64bit.tar 
      UserExitExamples/
      UserExitExamples/ExitDemo_more_recs/
      UserExitExamples/ExitDemo_more_recs/Makefile_more_recs.HPUX
      
       ... 見やすくするため、多くの行が省略されています ... 
      
      ulg.sql
      usrdecs.h
      zlib.txt
      [oggadm2@host02 ogg02]$                                                         
      

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

      Host02 - Linux
      [oggadm2@host02 ogg02]$ ./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 (host02) 1> Create Subdirs 
      
      Creating subdirectories under current directory /u01/app/oracle/ogg02
      
      Parameter files            /u01/app/oracle/ogg02/dirprm: already exists
      Report files               /u01/app/oracle/ogg02/dirrpt: created
      Checkpoint files           /u01/app/oracle/ogg02/dirchk: created
      Process status files       /u01/app/oracle/ogg02/dirpcs: created
      SQL script files           /u01/app/oracle/ogg02/dirsql: created
      Database definitions files /u01/app/oracle/ogg02/dirdef: created
      Extract data files         /u01/app/oracle/ogg02/dirdat: created
      Temporary files            /u01/app/oracle/ogg02/dirtmp: created
      Stdout files               /u01/app/oracle/ogg02/dirout: created
      
      GGSCI (host02) 2> Exit 
      [oggadm2@host02 ogg02]$                                                         
      

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

      Linuxホストhost01とhost02へのOracle GoldenGateのインストールが完了しました。

2. 環境の設定

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

    2.1 Oracle 11g Release 2 Databaseを設定する

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

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

      Host01 - Linux
      [oggadm1@host01 ogg01] 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になるはずです。 その場合、次の手順にスキップします。 結果がNOARCHIVELOGの場合は、以下のコマンドを入力します。

      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で管理者とユーザー/スキーマの所有者を作成します。

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

      Host01 - Linux
      SQL> CREATE USER ogguser1 IDENTIFIED BY pswd1u; 
      User created.
      
      SQL> CREATE USER oggadm1 IDENTIFIED BY pswd1a; 
      User created.
      
      SQL> GRANT CONNECT, RESOURCE, UNLIMITED TABLESPACE TO ogguser1; 
      Grant succeeded. 
      
      SQL> GRANT dba TO oggadm1; 
      Grant succeeded. 
      
      SQL> EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE (grantee=>'OGGADM1',privile
      ge_type=>'capture',grant_select_privileges=>true, do_grants=>TRUE); 
      PL/SQL procedure successfully completed.
      
      SQL> exit 
      [oggadm1@host01 ogg01]$                                                         
      

      両方のデータベースが相互に通信できることを確認します。

      tnspingを使用して、データベース間の通信をテストします。

      Host01 - Linux
      [oggadm1@host01 ogg01]$ tnsping orcl01 
      TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 17-SEP-2012 18:52
      Copyright (c) 1997, 2011, Oracle.  All rights reserved.
      Used parameter files:
      
      Used TNSNAMES adapter to resolve the alias
      Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(
      HOST = host01.example.com)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl01.
      example.com)))
      OK (0 msec)
      
      [oggadm1@host01 ogg01]$ tnsping orcl02; 
      TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 17-SEP-2012 18:52
      Copyright (c) 1997, 2011, Oracle.  All rights reserved.
      Used parameter files:
      
      Used TNSNAMES adapter to resolve the alias
      Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(
      HOST = host02.example.com)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl02.
      example.com)))
      OK (10 msec)
      
      [oggadm1@host01 ogg01]$                                                         
      

      結果はOKになるはずです。 その場合、次の手順にスキップします。 結果がOKでない場合は、以下のコマンドを入力してtnsnames.oraを調べます。

      Host01 - Linux
      [oggadm1@host01 ogg01]$ more $ORACLE_HOME/network/admin/tnsnames.ora 
      # tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_
      1/network/admin/tnsnames.ora
      # Generated by Oracle configuration tools.
      
      ORCL02 =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = host02.example.com)(PORT = 1521))
          )
          (CONNECT_DATA =
            (SERVICE_NAME = orcl02.example.com)
          )
        )
      
      ORCL01 =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = host01.example.com)(PORT = 1521))
          )
          (CONNECT_DATA =
            (SERVICE_NAME = orcl01.example.com)
          )
        )
      
      [oggadm1@host01 ogg01]$                                                         
      

      tnsnames.oraにorcl01とorcl02を定義します。

      host01のデータベースorcl01に対して行ったすべてのことを、host02のorcl02に対して行う必要があります。

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

      Host02 - Linux
      [oggadm2@host02 ogg02] 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になるはずです。 その場合、次の手順にスキップします。 結果がNOARCHIVELOGの場合は、以下のコマンドを入力します。

      Host02 - 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>                                                                            
      

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

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

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

      Host02 - 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回入力しても問題はありません。

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

      Host02 - Linux
      SQL> CREATE USER ogguser2 IDENTIFIED BY pswd2u; 
      User created.
      
      SQL> CREATE USER oggadm2 IDENTIFIED BY pswd2a; 
      User created.
      
      SQL> GRANT CONNECT, RESOURCE, UNLIMITED TABLESPACE TO ogguser2; 
      Grant succeeded. 
      
      SQL> GRANT dba TO oggadm2; 
      Grant succeeded. 
      
      SQL> EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE (grantee=>'OGGADM2',privile
      ge_type=>'capture',grant_select_privileges=>true, do_grants=>TRUE); 
      PL/SQL procedure successfully completed.
      
      SQL> exit 
      [oggadm2@host02 ogg02]$                                                         
      

      両方のデータベースが相互に通信できることを確認します。

      tnspingを使用して、データベース間の通信をテストします。

      Host02 - Linux
      [oggadm2@host02 ogg02]$ tnsping orcl01 
      TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 17-SEP-2012 18:52
      Copyright (c) 1997, 2011, Oracle.  All rights reserved.
      Used parameter files:
      
      Used TNSNAMES adapter to resolve the alias
      Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(
      HOST = host01.example.com)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl01.
      example.com)))
      OK (0 msec)
      
      [oggadm2@host02 ogg02]$ tnsping orcl02; 
      TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 17-SEP-2012 18:52
      Copyright (c) 1997, 2011, Oracle.  All rights reserved.
      Used parameter files:
      
      Used TNSNAMES adapter to resolve the alias
      Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(
      HOST = host02.example.com)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl02.
      example.com)))
      OK (10 msec)
      
      [oggadm2@host02 ogg02]$                                                         
      

      結果はOKになるはずです。 その場合、次の手順にスキップします。 結果がOKでない場合は、以下のコマンドを入力してtnsnames.oraを調べます。

      Host02 - Linux
      [oggadm2@host02 ogg02]$ more $ORACLE_HOME/network/admin/tnsnames.ora 
      # tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_
      1/network/admin/tnsnames.ora
      # Generated by Oracle configuration tools.
      
      ORCL02 =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = host02.example.com)(PORT = 1521))
          )
          (CONNECT_DATA =
            (SERVICE_NAME = orcl02.example.com)
          )
        )
      
      ORCL01 =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = host01.example.com)(PORT = 1521))
          )
          (CONNECT_DATA =
            (SERVICE_NAME = orcl01.example.com)
          )
        )
      
      [oggadm2@host02 ogg02]$                                                         
      

      tnsnames.oraにorcl01とorcl02を定義します。

      host01とhost02のデータベースは、Oracle Goldengateをサポートするように設定されています。 各データベースのユーザーは、ホストごとに1人(または複数)のユーザーと1人の管理者でプロビジョニングされています。

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

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

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

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

      Host01 - Linux
      [oggadm1@host01 ogg01] vi GLOBALS
      -- Created by Joe Admin 10/11/2012 on host01
      CheckpointTable oggadm1.oggchkpt 
      
      [oggadm1@host01 ogg01]                                                          
      

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

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

      Host02 - Linux
      [oggadm2@host02 ogg02]$ vi GLOBALS
      -- Created by Joe Admin 10/11/2012 on host02
      CheckpointTable oggadm2.oggchkpt 
      
      [oggadm2@host02 ogg02]$                                                         
      

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

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

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

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

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

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

      Host02 - Linux
      [oggadm2@host02 ogg02]$ vi startup.oby
      -- Created by Joe Admin 10/11/2012 on host02
      DBLogin UserID oggadm2@orcl02, Password pswd2a
      Start Mgr
      Info Mgr
      Info CheckpointTable 
      Set Editor gedit 
      
      [oggadm2@host02 ogg02]$                                                         
      

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

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

      Host01 - Linux
      [oggadm1@host01 ogg01] ./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 
      -- Created by Joe Admin 10/11/2012 on host01
      Port 15001
      PurgeOldExtracts ./dirdat/*, UseCheckpoints 
      
      GGSCI (host01) 2> Info mgr 
      Manager is DOWN!
      
      GGSCI (host01) 3>                                                               
      

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

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

      Host02 - Linux
      [oggadm2@host02 ogg02]$ ./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 (host02) 1> Edit Param mgr 
      -- Created by Joe Admin 10/11/2012 on host02
      Port 15002
      PurgeOldExtracts ./dirdat/*, UseCheckpoints 
      
      GGSCI (host02) 2> Info mgr 
      Manager is DOWN!
      
      GGSCI (host02) 3>                                                               
      

      host01とhost02では、ポート番号が異なることに注意してください。 Oracle GoldenGateインスタンスが異なるポートにある場合、IPアドレスとポートの組合せが一意であれば、ポートを異なるものにする必要はありません。 ただし、これらのポートを一意のものにすることをお勧めします。

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

      Host01 - Linux
      GGSCI (host01) 3> Obey startup.oby 
      
      GGSCI (host01) 4> -- Created by Joe Admin 10/11/2012 on host01
      
      GGSCI (host01) 5> DBLogin UserID oggadm1@orcl01, Password pswd1a
      Successfully logged into database.
      
      GGSCI (host01) 6> Start Mgr
      Manager started.
      
      GGSCI (host01) 7> Info Mgr
      Manager is running (IP port host01.example.com.15001).
      
      GGSCI (host01) 8> Info CheckpointTable 
      
      No checkpoint table specified, using GLOBALS specification (oggadm1.oggchkpt)...
      Checkpoint table oggadm1.oggchkpt does not exist.
      
      GGSCI (host01) 9> Set Editor gedit 
      
      GGSCI (host01) 10>                                                              
      

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

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

      Host02 - Linux
      GGSCI (host02) 3> Obey startup.oby 
      
      GGSCI (host02) 4> -- Created by Joe Admin 10/11/2012 on host02
      
      GGSCI (host02) 5> DBLogin UserID oggadm2@orcl02, Password pswd2a
      Successfully logged into database.
      
      GGSCI (host02) 6> Start Mgr
      Manager started.
      
      GGSCI (host02) 7> Info Mgr
      Manager is running (IP port host02.example.com.15002).
      
      GGSCI (host02) 8> Info CheckpointTable 
      
      No checkpoint table specified, using GLOBALS specification (oggadm2.oggchkpt)...
      Checkpoint table oggadm2.oggchkpt does not exist.
      
      GGSCI (host02) 9> Set Editor gedit 
      
      GGSCI (host02) 10>                                                              
      

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

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

    2.3 表を作成する

      host01でチェックポイント表を作成します (チェックポイント表はソースでは必要ありません。つまり、チェックポイント表は一方向レプリケーションには使用されません。ただし、host01がターゲットになった場合は、双方向レプリケーションに使用されます)。

      Host01 - Linux
      GGSCI (host01) 10>  Add CheckpointTable 
      
      No checkpoint table specified, using GLOBALS specification (oggadm1.oggchkpt).
      Successfully created checkpoint table oggadm1.oggchkpt.
      
      GGSCI (host01) 11>  Exit  
      
      [oggadm1@host01 ogg01]                                                          
      

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

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

      Host02 - Linux
      GGSCI (host02) 10>  Add CheckpointTable 
      
      No checkpoint table specified, using GLOBALS specification (oggadm2.oggchkpt).
      Successfully created checkpoint table oggadm2.oggchkpt.
      
      GGSCI (host02) 11>  Exit  
      
      [oggadm2@host02 ogg02]$                                                         
      

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

      サンプル表をすでに作成している場合は、作成したものを使用できます。 サンプル表をまだ作成していない場合、Oracle GoldenGateソフトウェアに、小規模なサンプル表tcustmertcustordを作成するためのスクリプトdemo_ora_create.sqlが付属しています。 任意のSQLユーティリティを使用してスクリプトを実行できます。 特に好んで使用しているユーティリティがない場合は、sqlplusを使用します。

      Host01 - Linux
      [oggadm1@host01 ogg01] sqlplus ogguser1@orcl01/pswd1u @demo_ora_create.sql 
      
      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
      
      DROP TABLE tcustmer
                 *
      ERROR at line 1:
      ORA-00942: table or view does not exist
      
      Table created.
      
      DROP TABLE tcustord
                 *
      ERROR at line 1:
      ORA-00942: table or view does not exist
      
      Table created.
      
      SQL> exit 
      [oggadm1@host01 ogg01]                                                          
      

      ORA-00942"エラー"は無視して構いません。 スクリプトを2回目に実行するときには、これらのエラーは表示されません。

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

      host02のスキーマogguser2に空のターゲット・サンプル表を作成します。

      Host02 - Linux
      [oggadm2@host02 ogg02] sqlplus ogguser2@orcl02/pswd2u @demo_ora_create.sql 
      
      SQL*Plus: Release 11.2.0.3.0 Production on Tue Sep 18 14:44:06 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
      
      DROP TABLE tcustmer
                 *
      ERROR at line 1:
      ORA-00942: table or view does not exist
      
      Table created.
      
      DROP TABLE tcustord
                 *
      ERROR at line 1:
      ORA-00942: table or view does not exist
      
      Table created.
      
      SQL> exit 
      [oggadm2@host02 ogg02]$                                                         
      

      Oracle 11g Release 2では、CREATE TABLEなどのDDLのレプリケーションをサポートしています。そのため、DMLのレプリケーションを開始する前に、他の方法でターゲットに空の表を作成できます。

      Obey startup.obyを実行してデータベースにログインしてから)以下のコマンドを入力すると、GGSCIが実行されている使用可能な表をいつでも確認できます。

      GGSCI (host) >  List Tables * 
      GGSCI (host) >  List Tables ogguser1.* 
      

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

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

      Host01 - Linux
      [oggadm1@host01 ogg01] ./ggsci 
      Oracle GoldenGate Command Interpreter for Oracle
       ... 見やすくするため、多くの行が省略されています ... 
      
      GGSCI (host01) 1> Obey startup.oby 
      
       ... 見やすくするため、多くの行が省略されていますが、すべてのプロセスが起動していることを確認してください.
      
      GGSCI (host01) > List Tables * 
      OGGADM1.OGGCHKPT
      OGGADM1.OGGCHKPT_LOX
      
      Found 2 tables matching list criteria.
      
      GGSCI (host01) > List Tables ogguser1.* 
      OGGUSER1.TCUSTMER
      OGGUSER1.TCUSTORD
      
      Found 2 tables matching list criteria.
      
      GGSCI (host01) > Add TranData ogguser1.tcustmer 
      
      Logging of supplemental redo data enabled for table OGGUSER1.TCUSTMER.
      
      GGSCI (host01) > Add TranData ogguser1.tcust* 
      
      Logging of supplemental redo log data is already enabled for table OGGUSER1.TCUST
      MER.
      
      Logging of supplemental redo data enabled for table OGGUSER1.TCUSTORD.
      
      GGSCI (host01) > Info TranData ogguser1.* 
      
      Logging of supplemental redo log data is enabled for table OGGUSER1.TCUSTMER.
      Columns supplementally logged for table OGGUSER1.TCUSTMER: CUST_CODE.
      
      Logging of supplemental redo log data is enabled for table OGGUSER1.TCUSTORD.
      Columns supplementally logged for table OGGUSER1.TCUSTORD: CUST_CODE, ORDER_DATE,
       PRODUCT_CODE, ORDER_ID.
      
      GGSCI (host01) xx>                                                            
      

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

      host02でほぼ同じことを行います (これは、ターゲットには必要ありません。つまり、一方向レプリケーションには使用されません。ただし、host02がソースになった場合は、双方向レプリケーションに使用されます)。

      TranDataの代わりにSchemaTranDataを使用します。

      Host02 - Linux
      [oggadm2@host02 ogg02] ./ggsci 
      Oracle GoldenGate Command Interpreter for Oracle
       ... 見やすくするため、多くの行が省略されています ... 
      
      GGSCI (host02) 1> Obey startup.oby 
      
       ... 見やすくするため、多くの行が省略されていますが、すべてのプロセスが起動していることを確認してください.
      
      GGSCI (host02) >  List Tables ogguser2.* 
      OGGUSER2.TCUSTMER
      OGGUSER2.TCUSTORD
      
      Found 2 tables matching list criteria.
      
      GGSCI (host02) > Add SchemaTranData ogguser2 
      2012-09-18 15:18:34  INFO    OGG-01788  SCHEMATRANDATA has been added on schema o
      gguser2.
      
      GGSCI (host02) > Info SchemaTranData ogguser2 
      2012-09-18 15:21:06  INFO    OGG-01785  Schema level supplemental logging is enab
      led on schema OGGUSER2.
      
      GGSCI (host02) xx>                                                            
      

      レプリケーションの結果は同じですが、SchemaTranDataを使用した場合に、管理上の相違点がいくつかあります。

      • 問合せInfo TranData ogguser2.*を実行したときに表は表示されませんが、実際には表は有効になっています。
      • スキーマに追加された新しい表は、サプリメンタル・ロギングが自動的に有効になります。(従来のTranDataコマンドを使用している場合には、手動でサプリメンタル・ロギングを有効化する必要があります)
      • 他のすべてのOEMデータベースがSchemaTranDataをサポートしているわけではありません。

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

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

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

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

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

      Host01 - Linux
      GGSCI (host01) >  Edit Param dsalesab
      -- defgen column definitions for Sales: tcust* from host01 (a) to host02 (b)
      -- Created by Joe Admin on 10/11/2012
      DefsFile dirdef/dsalesab.def, Purge
      UserID oggadm1@orcl01, Password pswd1a
      Table ogguser1.tcust*; 
      
      GGSCI (host01) >  Exit 
      
      [oggadm1@host01 ogg01] ./defgen paramfile dirprm/dsalesab.prm 
      ***********************************************************************
            Oracle GoldenGate Table Definition Generator for Oracle
      
       ... 見やすくするため、多くの行が省略されています ... 
      
      Expanding wildcard ogguser1.tcust*:
      
      Retrieving definition for OGGUSER1.TCUSTMER
      Retrieving definition for OGGUSER1.TCUSTORD
      
      Definitions generated for 2 tables in dirdef/dsalesab.def
      
      [oggadm1@host01 ogg01]                                                          
      

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

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

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

      Host01 - Linux
      [oggadm1@host01 ogg01] scp dirdef/dsalesab.def oggadm2@host02:/u01/app/oracle/og
      g02/dirdef
      The authenticity of host 'host02 (192.0.2.29)' can't be established.
      RSA key fingerprint is 8e:60:d0:a7:fc:55:6e:d9:81:bb:c9:90:19:f4:a8:11.
      Are you sure you want to continue connecting (yes/no)? yes
      Warning: Permanently added 'host02,192.0.2.29' (RSA) to the list of known hosts.
      oggadm2@host02's password: ********
      dsalesab.def                                   100% 1877     1.8KB/s   00:00
      
      [oggadm1@host01 ogg01]                                                          
      

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

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

      Host02 - Linux
      [oggadm2@host02 ogg02]$ ls -l dirdef
      total 4
      -rw-r--r-- 1 oggadm2 oinstall 1877 Sep 18 13:43 dsalesab.def
      [oggadm2@host02 ogg02]$                                                         
      

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

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

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

    3.1 プライマリのExtractを設定する

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

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

      Host01 - Linux
      [oggadm1@host01 ogg01] ./ggsci 
      Oracle GoldenGate Command Interpreter for Oracle
       ... 見やすくするため、多くの行が省略されています ... 
      
      GGSCI (host01) 1> Obey startup.oby 
      
       ... 見やすくするため、多くの行が省略されていますが、すべてのプロセスが起動していることを確認してください.
      
      GGSCI (host01) > Edit Param esalesaa 
      -- Primary Extract from host01 to host02
      -- Created by Joe Admin on 10/11/2012
      -- SETENV(ORACLE_SID = "orcl01")
      Extract esalesaa
      ExtTrail ./dirdat/aa
      UserID oggadm1@orcl01, Password pswd1a
      -- TranLogOptions ExcludeUser oggadm1
      Table ogguser1.tcust*; 
      
      GGSCI (host01) >                                                                
      

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

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

      ファイル内のパスワードを暗号化できますが、このチュートリアルでは範囲外です。

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

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

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

      Megabytes 5はオプションです。 デフォルトは100MBです。

      プライマリExtractを設定し、作成しましたが、まだ起動はされていません。 次の手順のために、GGSCIは実行したままにします。

    3.2 Data Pumpの設定

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

      概要で説明しているネーミング規則を使用して説明します。
      パスと拡張子は自動的に追加されるため、ネーミング規則に従った場合のパスおよびファイル名は、dirprm/psalesab.prmになります。

      Host01 - Linux
      GGSCI (host01) > Edit Param psalesab 
      -- Data pump (secondary Extract) from host01 to host02
      -- Created by Joe Admin on 10/11/2012
      Extract psalesab
      RmtHost host02, MgrPort 15002, Compress
      RmtTrail ./dirdat/ab
      Passthru
      Table ogguser1.tcust*; 
      
      GGSCI (host01) >                                                                
      

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

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

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

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

      Megabytes 5はオプションです。デフォルトは100MBです。指定したサイズで証跡ファイルがロールオーバーされます。

      Data Pumpは、ローカルのTrailファイルaaを読取り、リモートのTrailファイルabへと書込みます。 リモートのTrailファイルはdirdat/ab000000という名前で作成され、いっぱいになると、次のTrailファイルはdirdat/ab000001dirdat/ab000002と続きます。 このTrailファイルのセットは、異なるホストに配置されるため(同じ名前のディレクトリに配置される場合でも)、同じ名前(abなど)になる可能性もあります。 異なるファイル名としているのは、単にRmtTrailパラメータの値で異なるTrailファイルが作成されるということを示しています。

      セカンダリExtractを設定し、作成しましたが、まだ起動はされていません。次の手順のために、GGSCIを実行したままにします。

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

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

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

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

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

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

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

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

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

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

    4.1 Replicatを設定する

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

      Host02 - Linux
      [oggadm2@host02 ogg02]$ ./ggsci 
      Oracle GoldenGate Command Interpreter for Oracle
       ... 見やすくするため、多くの行が省略されています ... 
      
      GGSCI (host02) 1> Obey startup.oby 
      
       ... 見やすくするため、多くの行が省略されていますが、すべてのプロセスが起動していることを確認してください.
      
      GGSCI (host02) > Edit Param rsalesab
      -- Delivery from host01 to host02
      -- Created by Joe Admin on 10/11/2012
      Replicat rsalesab
      UserID oggadm2@orcl02, password pswd2a
      -- AssumeTargetDefs
      SourceDefs dirdef/dsalesab.def
      DiscardFile dirrpt/rsalesab.dsc, Append
      Map ogguser1.tcustmer, Target ogguser2.tcustmer;
      Map ogguser1.*,        Target ogguser2.*;       
      
      GGSCI (host02) >                                                                
      

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      概要情報を表示します。

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

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

      Host02 - Linux
      GGSCI (host02) > Info rsalesab 
      
      REPLICAT   RSALESAB  Last Started 2012-09-19 19:13   Status RUNNING
      Checkpoint Lag       00:00:00 (updated 00:00:04 ago)
      Log Read Checkpoint  File ./dirdat/bc000001
                           First Record  RBA 0
      
      GGSCI (host02) >                                                                
      

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

      Host02 - Linux
      GGSCI (host02) > Info rsalesab, Detail 
      
      REPLICAT   RSALESAB  Last Started 2012-09-19 19:13   Status RUNNING
      Checkpoint Lag       00:00:00 (updated 00:00:09 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    /u01/app/oracle/ogg02
      
      Report file          /u01/app/oracle/ogg02/dirrpt/RSALESAB.rpt
      Parameter file       /u01/app/oracle/ogg02/dirprm/rsalesab.prm
      Checkpoint file      /u01/app/oracle/ogg02/dirchk/RSALESAB.cpr
      Checkpoint table     oggadm2.oggchkpt
      Process file         /u01/app/oracle/ogg02/dirpcs/RSALESAB.pcr
      Stdout file          /u01/app/oracle/ogg02/dirout/RSALESAB.out
      Error log            /u01/app/oracle/ogg02/ggserr.log
      
      GGSCI (host02) >                                                                
      

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

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

      概要情報を表示します。

      Host01 - Linux
      GGSCI (host01) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING
      EXTRACT     RUNNING     ESALESAA    00:00:00      00:00:04
      EXTRACT     RUNNING     PSALESAB    00:00:00      00:00:05
      
      GGSCI (host01) >                                                                
      

      詳細情報を表示します。

      Host01 - Linux
      GGSCI (host01) > Info Extract *
      
      EXTRACT    ESALESAA  Last Started 2012-09-19 19:12   Status RUNNING
      Checkpoint Lag       00:00:00 (updated 00:00:08 ago)
      Log Read Checkpoint  Oracle Redo Logs
                           2012-09-19 19:21:49  Seqno 18, RBA 29845504
                           SCN 0.1372459 (1372459)
      
      EXTRACT    PSALESAB  Last Started 2012-09-19 19:12   Status RUNNING
      Checkpoint Lag       00:00:00 (updated 00:00:01 ago)
      Log Read Checkpoint  File ./dirdat/ab000000
                           First Record  RBA 0
      
      GGSCI (host01) > Exit
      [oggadm1@host01 ogg01]                                                          
      

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

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

5. データの生成

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

    5.1 INSERTを生成する(Initial Load)

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

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

      Host01 - Linux
      [oggadm1@host01 ogg01] sqlplus ogguser1@orcl01/pswd1u @demo_ora_insert.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.
      
      1 row created.
      
      1 row created.
      
      1 row created.
      
      Commit complete.
      
      SQL>                                                                            
      

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

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

      Host01 - Linux
      SQL> SELECT * FROM tcustmer; 
      
      CUST_CODE  NAME                           CITY                 STATE
      ---------- ------------------------------ -------------------- ------
      WILL       BG SOFTWARE CO.                SEATTLE              WA
      JANE       ROCKY FLYER INC.               DENVER               CO
      
      SQL> SELECT * FROM tcustord; 
      
      CUST ORDER_DAT PRODUCT_   ORDER_ID PRODUCT_PRICE PRODUCT_AMOUNT TRANSACTION_ID
      ---- --------- -------- ---------- ------------- -------------- --------------
      WILL 30-SEP-94 CAR             144         17520              3            100
      JANE 11-NOV-95 PLANE           256        133300              1            100
      
      SQL> exit 
      [oggadm1@host01 ogg01]                                                          
      

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

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

      Host01 - Linux
      [oggadm1@host01 ogg01] ./ggsci 
      GGSCI (host01) 1> Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING
      EXTRACT     RUNNING     ESALESAA    00:00:00      00:00:00
      EXTRACT     RUNNING     PSALESAB    00:00:00      00:00:06
      
      GGSCI (host01) 2> Exit 
      [oggadm1@host01 ogg01]                                                          
      

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

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

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

      Host02 - Linux
      GGSCI (host02) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING                                           
      REPLICAT    RUNNING     RSALESAB    00:00:00      00:00:05    
      
      GGSCI (host02) > Exit 
      [oggadm2@host02 ogg02]                                                          
      

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

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

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

      Host02 - Linux
      [oggadm2@host02 ogg02] sqlplus ogguser2@orcl02/pswd2u 
      SQL> SELECT * FROM tcustmer; 
      
      CUST_CODE  NAME                           CITY                 STATE
      ---------- ------------------------------ -------------------- ------
      WILL       BG SOFTWARE CO.                SEATTLE              WA
      JANE       ROCKY FLYER INC.               DENVER               CO
      
      SQL> SELECT * FROM tcustord; 
      
      CUST ORDER_DAT PRODUCT_   ORDER_ID PRODUCT_PRICE PRODUCT_AMOUNT TRANSACTION_ID
      ---- --------- -------- ---------- ------------- -------------- --------------
      WILL 30-SEP-94 CAR             144         17520              3            100
      JANE 11-NOV-95 PLANE           256        133300              1            100
      
      SQL> exit 
      [oggadm2@host02 ogg02]                                                          
      

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

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

    5.2 UPDATE/DELETEを生成する

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

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

      Host01 - Linux
      [oggadm1@host01 ogg01] sqlplus ogguser1@orcl01/pswd1u @demo_ora_misc.sql
      
       ... 見やすくするため、多くの行が省略されています ... 
      
      Commit complete.
      
      3 rows deleted.
      
      Rollback complete.
      
      SQL>                                                                            
      

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

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

      Host01 - Linux
      SQL> SELECT * FROM tcustmer; 
      
      CUST_CODE  NAME                           CITY                 STATE
      ---------- ------------------------------ -------------------- ------
      WILL       BG SOFTWARE CO.                SEATTLE              WA
      JANE       ROCKY FLYER INC.               DENVER               CO
      DAVE       DAVE'S PLANES INC.             TALLAHASSEE          FL
      BILL       BILL'S USED CARS               DENVER               CO
      ANN        ANN'S BOATS                    NEW YORK             NY
      
      SQL> SELECT * FROM tcustord; 
      
      CUST ORDER_DAT PRODUCT_   ORDER_ID PRODUCT_PRICE PRODUCT_AMOUNT TRANSACTION_ID
      ---- --------- -------- ---------- ------------- -------------- --------------
      BILL 31-DEC-95 CAR             765         14000              3            100
      BILL 01-JAN-96 TRUCK           333         25000             15            100
      WILL 30-SEP-94 CAR             144         16520              3            100
      
      SQL> exit 
      [oggadm1@host01 ogg01]                                                          
      

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

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

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

      Host01 - Linux
      [oggadm1@host01 ogg01] ./ggsci 
      GGSCI (host01) 1> Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING
      EXTRACT     RUNNING     ESALESAB    00:00:00      00:00:09
      EXTRACT     RUNNING     PSALESAB    00:00:00      00:00:01
      
      GGSCI (host01) 2>                                                               
      

      (このように単純な場合は、Obey startup.obyを実行する必要はありません。ただし、実行しても問題ありません)。 最初のINSERTが機能する場合は、UPDATEDELETEも機能する可能性が高いです。

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

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

      Host02 - Linux
      GGSCI (host02) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING                                           
      REPLICAT    RUNNING     RSALESAB    00:00:00      00:00:09    
      
      GGSCI (host02) > Exit 
      [oggadm2@host02 ogg02]                                                          
      

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

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

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

      Host02 - Linux
      [oggadm2@host02 ogg02] sqlplus ogguser2@orcl02/pswd2u 
      SQL> SELECT * FROM tcustmer; 
      
      CUST_CODE  NAME                           CITY                 STATE
      ---------- ------------------------------ -------------------- ------
      WILL       BG SOFTWARE CO.                SEATTLE              WA
      JANE       ROCKY FLYER INC.               DENVER               CO
      DAVE       DAVE'S PLANES INC.             TALLAHASSEE          FL
      BILL       BILL'S USED CARS               DENVER               CO
      ANN        ANN'S BOATS                    NEW YORK             NY
      
      SQL> SELECT * FROM tcustord; 
      
      CUST ORDER_DAT PRODUCT_   ORDER_ID PRODUCT_PRICE PRODUCT_AMOUNT TRANSACTION_ID
      ---- --------- -------- ---------- ------------- -------------- --------------
      WILL 30-SEP-94 CAR             144         16520              3            100
      BILL 31-DEC-95 CAR             765         14000              3            100
      BILL 01-JAN-96 TRUCK           333         25000             15            100
      
      SQL> exit 
      [oggadm2@host02 ogg02]                                                          
      

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

6. Oracle GoldenGate環境の管理

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

    6.1 レポートを表示する

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

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

      Host01 - Linux
      GGSCI (host01) 2> Send Extract esalesaa, Report 
      
      Sending REPORT request to EXTRACT ESALESAA ...
      Request processed.
      
      GGSCI (host01) 3> View Report esalesaa 
      ***********************************************************************
                       Oracle GoldenGate Capture 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:32:12
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
                          Starting at 2012-09-19 19:12:33
      ***********************************************************************
      
      Operating System Version: Linux
      Version #1 SMP Wed Jul 27 21:02:33 EDT 2011, Release 2.6.32-200.13.1.el5uek
      Node: host01.example.com
      Machine: x86_64
                               soft limit   hard limit
      Address Space Size   :    unlimited    unlimited
      Heap Size            :    unlimited    unlimited
      File Size            :    unlimited    unlimited
      CPU Time             :    unlimited    unlimited
      
      Process id: 18569
      
      Description: 
      
      ***********************************************************************
      **            Running with the following parameters                  **
      ***********************************************************************
      
      ESALESAA.rpt (25%)                                                              
      

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

      Host01 - Linux
      ***********************************************************************
      *                   ** Run Time Statistics **                         *
      ***********************************************************************
      
      Report at 2012-09-19 19:42:10 (activity since 2012-09-19 19:27:05)
      
      Output to ./dirdat/aa:
      
      From Table OGGUSER1.TCUSTMER:
             #                   inserts:         5
             #                   updates:         1
             #                   deletes:         0
             #                  discards:         0
      From Table OGGUSER1.TCUSTORD:
             #                   inserts:         5
             #                   updates:         3
             #                   deletes:         2
             #                  discards:         0
      
      ***********************************************************************
      **                     Run Time Warnings                             **
      ***********************************************************************
      
      GGSCI (host01) 4>                                                               
      

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

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

      ターゲットのhost02で、Replicatのプロセス・レポートを表示します (このように単純な場合は、Obey startup.obyを実行する必要はありません。ただし、実行しても問題ありません)。

      Host02 - Linux
      [oggadm2@host02 ogg02]$ ./ggsci 
      GGSCI (host02) > Send Replicat rsalesab, Report 
      
      Sending REPORT request to REPLICAT RSALESAB ...
      Request processed.
      
      GGSCI (host02)> View Report rsalesab 
      ***********************************************************************
                       Oracle GoldenGate Delivery 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:37:31
      Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
      
                          Starting at 2012-09-19 19:49:13
      ***********************************************************************
      
      Operating System Version: Linux
      Version #1 SMP Wed Jul 27 21:02:33 EDT 2011, Release 2.6.32-200.13.1.el5uek
      Node: host02.example.com
      Machine: x86_64
                               soft limit   hard limit
      Address Space Size   :    unlimited    unlimited
      Heap Size            :    unlimited    unlimited
      File Size            :    unlimited    unlimited
      CPU Time             :    unlimited    unlimited
      
      Process id: 23557
      
      Description: 
      
      ***********************************************************************
      **            Running with the following parameters                  **
      ***********************************************************************
      
      --More--(25%)                                                                   
      

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

      Host02 - Linux
      ***********************************************************************
      *                   ** 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  :    61 (x003d)    IO Time    : 2012-09-20 02:04:41.000792  
      IOType     :     3  (x03)     OrigNode   :   255  (xff)
      TransInd   :     .  (x02)     FormatType :     R  (x52)
      SyskeyLen  :     0  (x00)     Incomplete :     .  (x00)
      AuditRBA   :         20       AuditPos   : 6237080
      Continued  :     N  (x00)     RecCount   :     1  (x01)
      
      2012-09-20 02:04:41.000792 Delete             Len    61 RBA 3775
      Name: OGGUSER1.TCUSTORD
      ___________________________________________________________________
      
      Reading ./dirdat/ab000000, current RBA 3932, 16 records
      
      Report at 2012-09-20 14:04:52 (activity since 2012-09-19 19:49:15)
      
      From Table OGGUSER1.TCUSTMER to OGGUSER2.TCUSTMER:
             #                   inserts:         5
             #                   updates:         1
             #                   deletes:         0
             #                  discards:         0
      From Table OGGUSER1.TCUSTORD to OGGUSER2.TCUSTORD:
             #                   inserts:         5
             #                   updates:         3
             #                   deletes:         2
             #                  discards:         0
      
      ***********************************************************************
      **                     Run Time Warnings                             **
      ***********************************************************************
      
      GGSCI (host02) >                                                                
      

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

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

    6.2 統計情報を表示する

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

      Host01 - Linux
      GGSCI (host01) > Send Extract esalesaa, Stats 
      
      Sending STATS request to EXTRACT ESALESAA ...
      
      Start of Statistics at 2012-09-20 14:08:06.
      
      Output to ./dirdat/aa:
      
      Extracting from OGGUSER1.TCUSTMER to OGGUSER1.TCUSTMER:
      
      *** Total statistics since 2012-09-19 19:27:05 ***
              Total inserts                                      5.00
              Total updates                                      1.00
              Total deletes                                      0.00
              Total discards                                     0.00
              Total operations                                   6.00
      
      *** Daily statistics since 2012-09-20 00:00:00 ***
              Total inserts                                      3.00
              Total updates                                      1.00
              Total deletes                                      0.00
              Total discards                                     0.00
              Total operations                                   4.00
      
      *** Hourly statistics since 2012-09-20 14:00:00 ***
      
              No database operations have been performed.
      
      *** Latest statistics since 2012-09-19 19:27:05 ***
              Total inserts                                      5.00
              Total updates                                      1.00
              Total deletes                                      0.00
              Total discards                                     0.00
              Total operations                                   6.00
      
      Extracting from OGGUSER1.TCUSTORD to OGGUSER1.TCUSTORD:
      
      *** Total statistics since 2012-09-19 19:27:05 ***
              Total inserts                                      5.00
              Total updates                                      3.00
              Total deletes                                      2.00
              Total discards                                     0.00
              Total operations                                  10.00
      
      *** Daily statistics since 2012-09-20 00:00:00 ***
              Total inserts                                      3.00
              Total updates                                      3.00
              Total deletes                                      2.00
              Total discards                                     0.00
              Total operations                                   8.00
      
      *** Hourly statistics since 2012-09-20 14:00:00 ***
      
              No database operations have been performed.
      
      *** Latest statistics since 2012-09-19 19:27:05 ***
              Total inserts                                      5.00
              Total updates                                      3.00
              Total deletes                                      2.00
              Total discards                                     0.00
              Total operations                                  10.00
      
      End of Statistics.
      
      GGSCI (host01) >                                                                
      

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

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

      Host02 - Linux
      GGSCI (host02) > Send Replicat rsalesab, Stats
      
      Sending STATS request to REPLICAT RSALESAB ...
      
      Start of Statistics at 2012-09-20 14:10:51.
      
      Replicating from OGGUSER1.TCUSTMER to OGGUSER2.TCUSTMER:
      
      *** Total statistics since 2012-09-19 19:49:15 ***
              Total inserts                                      5.00
              Total updates                                      1.00
              Total deletes                                      0.00
              Total discards                                     0.00
              Total operations                                   6.00
      
      *** Daily statistics since 2012-09-20 00:00:00 ***
              Total inserts                                      3.00
              Total updates                                      1.00
              Total deletes                                      0.00
              Total discards                                     0.00
              Total operations                                   4.00
      
      *** Hourly statistics since 2012-09-20 14:00:00 ***
      
              No database operations have been performed.
      
      *** Latest statistics since 2012-09-19 19:49:15 ***
              Total inserts                                      5.00
              Total updates                                      1.00
              Total deletes                                      0.00
              Total discards                                     0.00
              Total operations                                   6.00
      
      Replicating from OGGUSER1.TCUSTORD to OGGUSER2.TCUSTORD:
      
      *** Total statistics since 2012-09-19 19:49:15 ***
              Total inserts                                      5.00
              Total updates                                      3.00
              Total deletes                                      2.00
              Total discards                                     0.00
              Total operations                                  10.00
      
      *** Daily statistics since 2012-09-20 00:00:00 ***
              Total inserts                                      3.00
              Total updates                                      3.00
              Total deletes                                      2.00
              Total discards                                     0.00
              Total operations                                   8.00
      
      *** Hourly statistics since 2012-09-20 14:00:00 ***
      
              No database operations have been performed.
      
      *** Latest statistics since 2012-09-19 19:49:15 ***
              Total inserts                                      5.00
              Total updates                                      3.00
              Total deletes                                      2.00
              Total discards                                     0.00
              Total operations                                  10.00
      
      End of Statistics.
      
      GGSCI (host02) >                                                                
      

      前のプライマリのExtractの統計情報は、Data Pumpが関連していたため(ソース・ホストに対してローカルに配置)、OGGUSER1からOGGUSER1まででした。 このReplicatでは、統計情報がスキーマOGGUSER1からOGGUSER2までであるのが、より明らかです。

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

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

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

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

7. 双方向のサポートの設定

    一方向レプリケーションがすでに機能しています。 もっとも簡単な実装では、双方向レプリケーションは単なる2つの関連しない一方向レプリケーションです。 そのため、概要のネーミング/ナンバリング規則を使用し、一方の方向が"a"から"b"までの一連の"sales"ファイル(esalesaa、psalesab、dsalesab、rsalesab)で、もう一方の方向が"b"から"a"までの一連の"sales"ファイル(esalesbb、psalesba、dsalesba、rsalesba)になります。 双方向レプリケーションのサポートを設定するには、以下の手順を実行します。

    7.1 Extractを設定する

      ソースのhost02で、プライマリExtractパラメータ・ファイルを作成します。 この手順は、トピック3.1.1とほぼ同じです。補足情報については、トピック3.1.1を参照してください。

      Host02 - Linux
      [oggadm2@host02 ogg02] ./ggsci 
      Oracle GoldenGate Command Interpreter for Oracle
       ... 見やすくするため、多くの行が省略されています ... 
      
      GGSCI (host02) 1> Obey startup.oby 
      
       ... 見やすくするため、多くの行が省略されています ... 
      
      GGSCI (host02) > Edit Param esalesbb 
      -- Primary Extract from host02 to host01
      -- Created by Joe Admin on 10/11/2012
      -- SETENV(ORACLE_SID = "orcl02")
      Extract esalesbb
      ExtTrail ./dirdat/bb
      UserID oggadm2@orcl02, Password pswd2a
      TranLogOptions ExcludeUser oggadm2
      Table ogguser2.tcust*; 
      
      GGSCI (host02) >                                                                
      

      このExtractパラメータ・ファイルとhost01上のファイルの違い(明らかな名前変更以外)は、TranLogOptionsがここではアクティブ(コメント解除済み)になっていることです。

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

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

      セカンダリExtract(Data Pump)パラメータ・ファイルを作成します。 この手順は、トピック3.2.1とほぼ同じです。補足情報については、トピック3.2.1を参照してください。

      Host02 - Linux
      GGSCI (host02) > Edit Param psalesba 
      -- Data pump (secondary Extract) from host02 to Host01
      -- Created by Joe Admin on 10/11/2012
      Extract psalesba
      RmtHost host01, MgrPort 15001, Compress
      RmtTrail ./dirdat/ba
      Passthru
      Table ogguser2.tcust*; 
      
      GGSCI (host02) >                                                                
      

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

      Host02 - Linux
      GGSCI (host02) > Add Extract psalesba, ExtTrailSource ./dirdat/bb 
      EXTRACT added.
      
      GGSCI (host02) > Add RmtTrail ./dirdat/ba, Extract psalesba, Megabytes 5 
      RMTTRAIL added.
      
      GGSCI (host02) >                                                                
      

      Extractプロセスが正しく作成および登録されていることを確認します。 この手順は、トピック3.3.1とほぼ同じです。補足情報については、トピック3.3.1を参照してください。

      Host02 - Linux
      GGSCI (host02) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING
      EXTRACT     STOPPED     ESALESBB    00:00:00      00:03:35    
      EXTRACT     STOPPED     PSALESBA    00:00:00      00:00:15    
      REPLICAT    RUNNING     RSALESAB    00:00:00      00:00:05    
      
      GGSCI (host02) >                                                                
      

      host02からhost01へのExtract(双方向ソリューションの戻り方向)の設定が完了しました。

    7.2 Replicatを設定する

      ターゲットのhost01で、Replicatパラメータ・ファイルを作成します。 この手順は、トピック4.1.1とほぼ同じです。

      Host01 - Linux
      [oggadm1@host01 ogg01]$ ./ggsci 
      Oracle GoldenGate Command Interpreter for Oracle
       ... 見やすくするため、多くの行が省略されています ... 
      
      GGSCI (host01) 1> Obey startup.oby 
      
       ... 見やすくするため、多くの行が省略されていますが、すべてのプロセスが起動していることを確認してください.
      
      GGSCI (host01) > Edit Param rsalesba
      -- Delivery from host02 to host01
      -- Created by Joe Admin on 10/11/2012
      Replicat rsalesba
      UserID oggadm1@orcl01, password pswd1a
      AssumeTargetDefs 
      -- SourceDefs dirdef/dsalesab.def
      DiscardFile dirrpt/rsalesba.dsc, Append
      Map ogguser2.tcustmer, Target ogguser1.tcustmer;
      Map ogguser2.*,        Target ogguser1.*; 
      
      GGSCI (host01) >                                                                
      

      SourceDefsを再度定義してhost02からhost01にコピーできますが、同じ表構造であるため、AssumeTargetDefsを使用できます。 実際に、rsalesabAssumeTragetDefsを使用することもできます。

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

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

      双方向レプリケーションに対応するように、既存のExtractプロセスを修正します。 ExcludeUser機能を使用して、ループバックを防ぎます。

      この機能を有効にする行をコメント解除します。 host02でも同じです。

      Host01 - Linux
      GGSCI (host01) > Stop esalesaa 
      
      Sending STOP request to EXTRACT ESALESAA ...
      Request processed.
      
      GGSCI (host01) > edit param esalesaa 
      -- Primary Extract from host01 to host02
      -- Created by Joe Admin on 10/11/2012
      -- SETENV(ORACLE_SID = "orcl01")
      Extract esalesaa
      ExtTrail ./dirdat/aa
      UserID oggadm1@orcl01, Password pswd1a
      TranLogOptions ExcludeUser oggadm1 
      Table ogguser1.tcust*; 
      
      GGSCI (host01) >                                                                
      

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

      Host01 - Linux
      GGSCI (host01) > Info All
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING                                           
      EXTRACT     STOPPED     ESALESAA    00:00:00      00:04:22    
      EXTRACT     RUNNING     PSALESAB    00:00:00      00:00:02    
      REPLICAT    STOPPED     RSALESBA    00:00:00      00:06:57    
      
      GGSCI (host01) >                                                                
      

      StatusSTOPPEDの場合は、Time Since Chkptが10秒を超えても問題ありませんが、StatusRUNNINGの場合は、10秒未満になっている必要があります。

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

      Host01 - Linux
      GGSCI (host01) > Start * 
      
      Sending START request to MANAGER ...
      EXTRACT ESALESAA starting
      EXTRACT PSALESAB is already running.
      
      Sending START request to MANAGER ...
      REPLICAT RSALESBA starting
      
      GGSCI (host01) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING                                           
      EXTRACT     RUNNING     ESALESAA    00:00:00      00:00:00    
      EXTRACT     RUNNING     PSALESAB    00:00:00      00:00:02    
      REPLICAT    RUNNING     RSALESBA    00:00:00      00:00:01    
      
      GGSCI (host01) > Exit 
      [oggadm1@host01 ogg01]                                                          
      

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

      Host02 - Linux
      GGSCI (host02) > Start * 
      
      Sending START request to MANAGER ...
      EXTRACT ESALESBB starting
      
      Sending START request to MANAGER ...
      EXTRACT PSALESBA starting
      REPLICAT RSALESAB is already running.
      
      GGSCI (host02) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING
      EXTRACT     RUNNING     ESALESBB    00:00:00      00:00:01    
      EXTRACT     RUNNING     PSALESBA    00:00:00      00:00:02    
      REPLICAT    RUNNING     RSALESAB    00:00:00      00:00:04    
      
      GGSCI (host02) >                                                                
      

      すべてのExtractプロセスとReplicatプロセスがhost02からhost01に設定されて、開始されました。 host01からhost02への前のExtractとReplicatは、まだ実行されています。

    7.3 トラフィックを生成する

      host01で新しい行を挿入(INSERT)します。

      Host01 - Linux
      [oggadm1@host01 ogg01] sqlplus ogguser1@orcl01/pswd1u 
      SQL> INSERT INTO tcustmer VALUES ('WHIZ','WHIZBANG CORP','HOSTA','AA'); 
      1 row created. 
      
      SQL> SELECT * FROM tcustmer; 
      
      CUST NAME                           CITY                 ST
      ---- ------------------------------ -------------------- --
      DAVE DAVE'S PLANES INC.             TALLAHASSEE          FL
      BILL BILL'S USED CARS               DENVER               CO
      ANN  ANN'S BOATS                    NEW YORK             NY
      WHIZ WHIZBANG CORP                  HOSTA                AA
      WILL BG SOFTWARE CO.                SEATTLE              WA
      JANE ROCKY FLYER INC.               DENVER               CO
      
      6 rows selected.
      
      SQL> commit; 
      Commit complete.
      
      SQL> exit 
      [oggadm1@host01 ogg01]                                                          
      

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

      Host02 - Linux
      GGSCI (host02) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING                                           
      EXTRACT     RUNNING     ESALESBB    00:00:00      00:00:05    
      EXTRACT     RUNNING     PSALESBA    00:00:00      00:00:05    
      REPLICAT    RUNNING     RSALESAB    00:00:00      00:00:06    
      
      GGSCI (host02) >                                                                
      

      Whizbang行がhost02にレプリケートされたことを確認します。

      Host02 - Linux
      GGSCI (host02) > Exit 
      [oggadm2@host02 ogg02] sqlplus ogguser2@orcl02/pswd2u 
      SQL> SELECT * FROM tcustmer; 
      
      CUST NAME                           CITY                 ST
      ---- ------------------------------ -------------------- --
      WILL BG SOFTWARE CO.                SEATTLE              WA
      JANE ROCKY FLYER INC.               DENVER               CO
      DAVE DAVE'S PLANES INC.             TALLAHASSEE          FL
      BILL BILL'S USED CARS               DENVER               CO
      ANN  ANN'S BOATS                    NEW YORK             NY
      WHIZ WHIZBANG CORP                  HOSTA                AA
      
      6 rows selected.
      
      SQL>                                                                            
      

      行の順序が異なっていても、問題ありません。 次の手順のために、SQL*Plusを実行したままにします。

      host02で新しい行を挿入(INSERT)します。

      Host02 - Linux
      SQL> INSERT INTO tcustmer VALUES ('FOO','FOOBAR INC','HOSTB','CC'); 
      1 row created. 
      
      SQL> SELECT * FROM tcustmer; 
      
      CUST NAME                           CITY                 ST
      ---- ------------------------------ -------------------- --
      WILL BG SOFTWARE CO.                SEATTLE              WA
      JANE ROCKY FLYER INC.               DENVER               CO
      DAVE DAVE'S PLANES INC.             TALLAHASSEE          FL
      BILL BILL'S USED CARS               DENVER               CO
      ANN  ANN'S BOATS                    NEW YORK             NY
      WHIZ WHIZBANG CORP                  HOSTA                AA
      FOO  FOOBAR INC                     HOSTB                CC
      
      7 rows selected.
      
      SQL> commit; 
      Commit complete.
      
      SQL> exit 
      [oggadm2@host02 ogg02]                                                    
      

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

      Host02 - Linux
      [oggadm2@host02 ogg02] ./ggsci 
      GGSCI (host02) > Info All 
      
      Program     Status      Group       Lag at Chkpt  Time Since Chkpt
      
      MANAGER     RUNNING                                           
      EXTRACT     RUNNING     ESALESBB    00:00:00      00:00:06    
      EXTRACT     RUNNING     PSALESBA    00:00:00      00:00:03    
      REPLICAT    RUNNING     RSALESAB    00:00:00      00:00:04    
      
      GGSCI (host02) >                                                                
      

      Foobar行がhost01にレプリケートされたことを確認します。

      Host01 - Linux
      [oggadm1@host01 ogg01] sqlplus ogguser1@orcl01/pswd1u 
      SQL> SELECT * FROM tcustmer; 
      
      CUST NAME                           CITY                 ST
      ---- ------------------------------ -------------------- --
      DAVE       DAVE'S PLANES INC.             TALLAHASSEE          FL
      BILL       BILL'S USED CARS               DENVER               CO
      ANN        ANN'S BOATS                    NEW YORK             NY
      WHIZ WHIZBANG CORP                  HOSTA                AA
      FOO  FOOBAR INC                     HOSTB                CC
      WILL       BG SOFTWARE CO.                SEATTLE              WA
      JANE       ROCKY FLYER INC.               DENVER               CO
      
      7 rows selected.
      
      SQL> exit 
      [oggadm1@host01 ogg01]                                                          
      

      host01とhost02の両方に同じ行があるはずです (行の順序が異なるのは、挿入した2つの行が、前の削除とロールバックで残った、レプリケートされない"穴"に入ったためです)。

      ここで、競合の検出と解消(CDR)の可能性は考慮しません。これは、このOBEの範囲外になります。

まとめ

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

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

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

    参考資料

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

    • Oracle GoldenGateの製品ドキュメント・バージョン11.2.1(E35209-01)およびその他の旧バージョン
    • Oracle Universityのコース
    • 関連情報が記載された外部Webサイト
    • Oracle GoldenGateの詳細については、Oracle Learning Libraryの他のOBEを参照してください。

    著者

    • カリキュラム主要開発者: Steve Friedberg
    • 共著者: Richard Johnston、Hadi Koesnodihardjo、Simon Whitworth、Joe deBuzna、Chris Lawless。

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

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

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