14 Oracle Database Gateway for DRDAの構成

ゲートウェイのインストール後、次のタスクを実行してOracle Database Gateway for DRDAを構成します。

  1. ゲートウェイ初期化パラメータ・ファイルの構成

  2. ゲートウェイ用のOracle Netの構成

  3. 2フェーズ・コミットの構成

  4. データ・ディクショナリ・サポート用の表およびビューの作成

  5. ゲートウェイ・アクセス用のOracle Databaseの構成

  6. データベース・リンクの作成

  7. 複数のDRDAデータベースにアクセスするためのゲートウェイの構成

HS_TRANSACTION_LOG表の作成、不要になった表およびビューの削除、データ・ディクショナリ・サポート用の表およびビューの作成など、各作業を実行するためのSQLスクリプトが用意されています。

これらのスクリプトは、実行するためのツールがゲートウェイに付属していないため、データベース固有のツール(DB2 UDB for Linux, UNIX, and WindowsでのSPUFIなど)を使用してDRDAサーバー・プラットフォーム上で実行する必要があります。これらのスクリプトを実行する場合に使用するユーザーIDには、適切な権限を付与する必要があります。

SQLスクリプトは、dg4db2/adminディレクトリにあります。該当するプラットフォーム用のスクリプトは、ファイル名のDB2プラットフォーム識別子(例: 「zos」、「as400」および「luw」)とバージョン固有の番号(例: vw7、vw8)で示されています。

14.1 ゲートウェイ初期化パラメータ・ファイルの構成

次のタスクを実行して、ゲートウェイ初期化パラメータ・ファイルを構成します。

  1. ゲートウェイ用のシステム識別子の選択
  2. 初期化パラメータ・ファイルのカスタマイズ

14.1.1 ゲートウェイ用のシステム識別子の選択

ゲートウェイ・システム識別子(SID)は、ゲートウェイ・インスタンスを識別する英数字の文字列です。アクセスするDRDAデータベースごとに、1つのゲートウェイ・インスタンスが(したがって1つのゲートウェイSIDが)必要です。ただし、2つのDRDAデータベースにアクセスする場合は、ゲートウェイのインスタンスごとに1つずつ、合計2つのゲートウェイSIDが必要です。DRDAデータベースが1つのみ存在し、そのアクセスに使用するゲートウェイ・パラメータ設定のセットを状況に応じて使い分ける場合、単一のDRDAデータベースに対して複数のゲートウェイSIDを使用します。SIDは、初期化パラメータ・ファイルのファイル名の一部として使用されます。

14.1.2 初期化パラメータ・ファイルのカスタマイズ

必要に応じて、追加のパラメータを使用してパラメータ・ファイルを調整します。サポートされている初期化パラメータのリストは、初期化パラメータを参照してください。また、パラメータ・ファイルを調整するためのセキュリティの側面については、セキュリティ上の考慮事項を参照してください。

14.2 ゲートウェイ用のOracle Netの構成

ゲートウェイでは、Oracle Databaseと通信するためにOracle Netが必要です。ゲートウェイの構成後、次のタスクを実行して、ゲートウェイと連携動作するようにOracle Netを構成します。

  1. ゲートウェイ用のOracle Net Listenerの構成
  2. ゲートウェイ用のOracle Net Listenerの停止および起動

14.2.1 ゲートウェイ用のOracle Net Listenerの構成

Oracle Net Listenerは、Oracle Databaseからの着信リクエストをリスニングします。Oracle Net Listenerでゲートウェイをリスニングするためには、ゲートウェイに関する情報をOracle Net Listenerの構成ファイル(listener.ora)に追加する必要があります。このファイルのデフォルトの場所は、ORACLE_HOME\network\adminです(ORACLE_HOMEはゲートウェイのインストール先のディレクトリです)。

次のエントリをlistener.oraファイルに追加する必要があります。

  • Oracle Net ListenerがリスニングするOracle Netアドレスのリスト

  • Oracle Net Listenerが着信接続リクエストに応じて起動するゲートウェイの実行可能ファイルの名前

listener.oraエントリのサンプル(listener.ora.sample)は、ORACLE_HOME\dg4db2\adminディレクトリにあります(ORACLE_HOMEはゲートウェイのインストール先のディレクトリです)。

14.2.1.1 listener.oraファイルのエントリの構文

Oracle Databaseは、Oracle Netおよびサポートされている任意のプロトコル・アダプタを使用してゲートウェイと通信します。TCP/IPプロトコル・アダプタを使用してOracle Net Listenerがリスニングするアドレスの構文は次のとおりです。

LISTENER=
        (ADDRESS= 
          (PROTOCOL=TCP)
          (HOST=host_name)
          (PORT=port_number))

説明:

変数 説明

host_name

ゲートウェイがインストールされているマシンの名前。

port_number

Oracle Net Listenerにより使用されるポート番号。同じマシン上で稼働する他のリスナーが存在する場合、port_numberの値は、他のリスナーのポート番号とは異なる必要があります。

着信接続リクエストに応じてゲートウェイを起動するようOracle Net Listenerを構成するには、listener.oraファイルにエントリを追加します。

注意:

listener.oraファイルと次の手順で構成するtnsnames.oraファイルで同じSID値を使用する必要があります。

SID_LIST_LISTENER=
   (SID_LIST=
      (SID_DESC= 
         (SID_NAME=gateway_sid)
         (ORACLE_HOME=oracle_home_directory)
         (PROGRAM=dg4db2)
      )
   )

説明:

変数 説明

gateway_sid

ゲートウェイのSIDを指定します。tnsnames.ora ファイルの接続記述子エントリに指定されているゲートウェイSIDと同じです。

oracle_home_directory

ゲートウェイが存在するOracleホーム・ディレクトリを指定します。

dg4db2

Oracle Database Gateway for DRDAの実行可能ファイル名を指定します。

複数のデータベースSIDでリスニングするOracle Net Listenerがすでに稼働中の場合、既存のlistener.oraファイルのSID_LISTに次の構文のみを追加します。

SID_LIST_LISTENER=
(SID_LIST= 
   (SID_DESC=.
     .
   )
   (SID_DESC=.
     .
   )
   (SID_DESC=
      (SID_NAME=gateway_sid)
      (ORACLE_HOME=oracle_home_directory)
      (PROGRAM=dg4db2)
   )
)

関連項目:

listener.oraファイルの変更方法の詳細は、Oracle Database Net Services管理者ガイドを参照してください。

14.2.2 ゲートウェイ用のOracle Net Listenerの停止および起動

新規設定を反映するには、次のようにOracle Net Listenerを停止して再起動する必要があります。

  1. 「スタート」メニューで、「設定」「コントロール パネル」「サービス」を選択します。
  2. ゲートウェイ用のOracle Net Listenerサービスを選択します。
  3. サービスがすでに実行中の場合、「停止」をクリックしてサービスを停止します。
  4. 「開始」をクリックしてサービスを起動または再起動します。

14.3 2フェーズ・コミットの構成

2フェーズ・コミットをサポートするには、DB2サーバー上でORACLE_HOME\dg4db2\admin\dg4db2_tx.sqlスクリプトを実行する必要があります。このスクリプトは、2フェーズ・コミットのゲートウェイによって使用されるオブジェクトを作成します。スクリプトを編集して、アカウントのリカバリのデフォルト・スキーマ(「RECOVER」)をHS_FDS_RECOVERY_ACCOUNT初期化パラメータに指定されたアカウント名に置き換えます。詳細は、初期化パラメータを参照してください。

14.4 データ・ディクショナリ・サポート用の表およびビューの作成

データ・ディクショナリ変換サポートを有効化するには、ゲートウェイを通じてアクセスするOracle以外のシステムごとに、データ・ディクショナリ表およびビューを作成する必要があります。

次の手順を実行し、データベース固有のツールを使用してデータ・ディクショナリ表およびビューを作成します。

  1. 以前のゲートウェイ・リリースからアップグレードします。

    以前のリリースのゲートウェイからアップグレードする場合、適切なスクリプトを実行して古いデータ・ディクショナリ定義を削除します。

    • DB2 UDB for Linux, UNIX, and Windowsに接続する場合、次のスクリプトを実行します。

      ORACLE_HOME\dg4db2\admin\dg4db2_luw_drop.sql
      
    • DB2 UDB for z/OSに接続する場合、次のスクリプトを実行します。

      ORACLE_HOME\dg4db2\admin\dg4db2_zos_drop.sql
      
    • DB2 UDB for iSeriesに接続する場合、次のスクリプトを実行します。

      ORACLE_HOME\dg4db2\admin\dg4db2_as400_drop.sql
      
  2. データ・ディクショナリ表を作成します。

    適切なスクリプトを実行してデータ・ディクショナリ表を作成します。

    • Linux、UNIX、Windows上のDB2 UDBに接続する場合は、次を実行します

      ORACLE_HOME\dg4db2\admin\dg4db2_luw_tab.sql
      
    • DB2 UDB for z/OSに接続する場合は、次を実行します

      ORACLE_HOME\dg4db2\admin\dg4db2_zos_tab.sql
      
    • DB2 UDB for iSeriesに接続する場合は、次を実行します

      ORACLE_HOME\dg4db2\admin\dg4db2_as400_tab.sql
      
  3. データ・ディクショナリ・ビューを作成します。

    適切なスクリプトを実行してデータ・ディクショナリ・ビューを作成します。

    • Linux、UNIX、Windows上のDB2 UDBに接続する場合は、次を実行します

      DB2 UDB for Linux, UNIX, and Windows V7の場合:

      ORACLE_HOME\dg4db2\admin\dg4db2_luw_vw7.sql
      

      DB2 UDB for Linux, UNIX, and Windows V8の場合:

      ORACLE_HOME\dg4db2\admin\dg4db2_luw_vw8.sql
      
    • DB2 UDB for z/OSに接続する場合、次のスクリプトを実行します。

      DB2 UDB for z/OS V7 (RACFセキュリティ)の場合:

      ORACLE_HOME\dg4db2\admin\dg4db2_zos_vw7r.sql
      

      DB2 UDB for z/OS V7 (DB2セキュリティ)の場合:

      ORACLE_HOME\dg4db2\admin\dg4db2_zos_vw7s.sql
      

      DB2 UDB for z/OS V8 (RACFセキュリティ)の場合:

      ORACLE_HOME\dg4db2\admin\dg4db2_zos_vw8r.sql
      

      DB2 UDB for z/OS V8 (DB2セキュリティ)の場合:

      ORACLE_HOME\dg4db2\admin\dg4db2_zos_vw8s.sql
      
    • DB2 UDB for iSeriesに接続する場合は、次を実行します

      DB2 UDB for iSeries V5.1の場合:

      ORACLE_HOME\dg4db2\admin\dg4db2_as400_vw51.sql
      

      DB2 UDB for iSeries V5.2の場合:

      ORACLE_HOME\dg4db2\admin\dg4db2_as400_vw52.sql
      

      DB2 UDB for iSeries V5.3の場合:

      ORACLE_HOME\dg4db2\admin\dg4db2_as400_vw53.sql

14.5 ゲートウェイ・アクセス用のOracle Databaseの構成

ゲートウェイを使用してDB2データにアクセスする前に、Oracle Databaseを構成してOracle Netを通じたゲートウェイとの通信を使用可能にする必要があります。

Oracle Databaseを構成するには、tnsnames.oraファイルに接続記述子を追加する必要があります。このファイルのデフォルトの場所は、ORACLE_HOME\network\adminです(ORACLE_HOMEはOracle Databaseのインストール先のディレクトリです)。tnsnames.oraファイルの構成にOracle Net AssistantやOracle Net Easy Configツールを使用することはできません。手動でファイルを編集する必要があります。

tnsnames.oraエントリのサンプル(tnsnames.ora.sample)は、ORACLE_HOME\dg4db2\adminディレクトリにあります(ORACLE_HOMEはゲートウェイのインストール先のディレクトリです)。

関連項目:

tnsnames.oraファイルの詳細は、Oracle Database Net Services管理者ガイドを参照してください。

14.5.1 tnsnames.oraの構成

ゲートウェイの接続記述子を追加するには、tnsnames.oraファイルを編集します。次に、TCP/IPプロトコルを使用するOracle Netエントリの構文を示します。

connect_descriptor=
   (DESCRIPTION=
      (ADDRESS=
         (PROTOCOL=TCP)
         (HOST=host_name)
         (PORT=port_number)
      )
      (CONNECT_DATA=
         (SID=gateway_sid))
      (HS=OK))

説明:

表14-1 tnsnames.oraファイルのOracle Database Gateway for DRDAパラメータ

変数 説明

connect_descriptor

データベース・リンクの作成時に指定された接続先オブジェクトの記述(dg4db2など)。

sqlnet.oraファイルで次のパラメータ設定を確認してください。

names.directory_path = (TNSNAMES)

注意: sqlnet.oraファイルは通常、ORACLE_HOME\network\adminに格納されています。

TCP

TCP/IP接続に使用されるTCPプロトコルです。

host_name

ゲートウェイが稼働しているマシンを指定します。

port_number

ゲートウェイをリスニングしているOracle Net Listenerにより使用されるポート番号と一致させます。Oracle Net Listenerのポート番号は、Oracle Net Listenerにより使用されるlistener.oraファイルで確認できます。listener.oraファイルのエントリの構文を参照してください。

gateway_sid

ゲートウェイのSIDを指定し、ゲートウェイをリスニングするOracle Net Listenerのlistener.oraファイル内で指定されたSIDと一致させます。詳細は、ゲートウェイ用のOracle Net Listenerの構成を参照してください。

(HS=OK)

この接続記述子でOracle以外のシステムに接続することを指定します。

14.5.2 複数のリスナー用のtnsnames.oraの構成

高可用性を確保するために、接続記述子内に複数のリスナーを指定できます。

 connect_descriptor=
    (DESCRIPTION=
       (ADDRESS=
          (PROTOCOL=TCP)
          (HOST=host_name_1)
          (PORT=port_number_1)
       )
       (ADDRESS=
          (PROTOCOL=TCP)
          (HOST=host_name_2)
          (PORT=port_number_2)
       )
       (CONNECT_DATA=
          (SID=gateway_sid))
       (HS=OK))

これは、host_name_1およびport_number_1のリスナーが使用できない場合、host_name_2およびport_number_2の2番目のリスナーが引き継ぐことを示します。

関連項目:

tnsnames.oraファイルの詳細は、Oracle Database Net Services管理者ガイドを参照してください。

14.6 データベース・リンクの作成

Oracle Databaseに接続されたすべてのOracleクライアントは、ゲートウェイを通じてDB2データにアクセスします。OracleクライアントとOracle Databaseは、異なるマシン上に存在できます。ゲートウェイは、Oracle Databaseからの接続のみを受け入れます。

ゲートウェイへの接続は、Oracleセッションでゲートウェイが初めて使用されるときに、データベース・リンクを介して確立されます。この場合の接続とは、Oracle Databaseとゲートウェイ間の接続を示します。接続は、Oracleセッションが終了するまで確立されたままです。別のセッションまたはユーザーが同じデータベース・リンクにアクセスし、ゲートウェイおよびDRDAデータベースに対する別個の接続を取得することも可能です。

データベース・リンクは、ゲートウェイ・セッションの継続中はアクティブです。セッション中にデータベース・リンクをクローズする場合は、ALTER SESSION文を使用します。

DRDAサーバーにアクセスするには、データベース・リンクを作成する必要があります。パブリック・データベース・リンクは、最も一般的なデータベース・リンクです。

SQL> CREATE PUBLIC DATABASE LINK dblink CONNECT TO
2  "user" IDENTIFIED BY "password" USING 'tns_name_entry';

説明:

変数 説明

dblink

完全なデータベース・リンク名。

tns_name_entry

ゲートウェイを識別するtnsnames.oraファイルのOracle Net接続記述子を指定します。

データベース・リンクの作成後に、次のようにDRDAデータベースへの接続を確認できます。

SQL> SELECT * FROM DUAL@dblink;

関連項目:

データベース・リンクの使用の詳細は、Oracle Database管理者ガイドを参照してください。

14.7 複数のDRDAデータベースにアクセスするためのゲートウェイの構成

複数のDRDAデータベースにアクセスするためのゲートウェイの構成作業は、単一のデータベースを対象とするゲートウェイの構成作業とほぼ同じです。構成の例では、次のことを想定しています。

  • ゲートウェイがインストールされていること。

  • ゲートウェイがdb1という1つのDRDAデータベース用に構成されていること。

  • IPアドレスが204.179.79.15であるホストにdb2およびdb3という2つのDRDAデータベースが追加されること。

14.7.1 複数のDRDAデータベースの例: ゲートウェイの構成

DRDAデータベースごとに1つのシステムIDを選択

DRDAデータベースごとにゲートウェイの個別のインスタンスが必要です。各インスタンスには、固有のゲートウェイ・システムID(SID)が必要です。この例では、DRDAデータベースにアクセスするインスタンスに対して次のゲートウェイSIDが選択されます。

  • dg4db22 (データベースdb2にアクセスするゲートウェイ用)。

  • dg4db23 (データベースdb3にアクセスするゲートウェイ用)。

2つの初期化パラメータ・ファイルの作成

ゲートウェイのインスタンスごとに初期化パラメータ・ファイルを作成するため、元の初期化パラメータ・ファイル ORACLE_HOME\dg4db2\admin\initdg4db2.oraを2回コピーします。次のように、1つのファイルにはdb2のゲートウェイSIDを含む名前を付け、もう1つのファイルにはdb3のゲートウェイSIDを含む名前を付けます。

> cd ORACLE_HOME\dg4db2\admin
> copy initdg4db2.ora initdg4db22.ora
> copy initdg4db2.ora initdg4db23.ora

注意:

状況に応じて異なるゲートウェイ・パラメータ設定を使用するために、同じDRDAデータベースに対して複数のゲートウェイSIDを割り当てる場合も、同じ手順に従ってください。複数の初期化パラメータ・ファイルを作成し、それぞれに異なるSIDおよび異なるパラメータ設定を使用します。

14.7.2 複数のDRDAデータベースの例: Oracle Net Listenerの構成

listener.oraへのエントリの追加

Oracle Net Listener構成ファイルlistener.oraに、2つの新規エントリを追加します。複数のゲートウェイ・インスタンスが同じデータベースにアクセスする場合でも、ゲートウェイ・インスタンスごとに1つのエントリが必要です。

次の例では、インストールされていた最初のゲートウェイのエントリが1番目に、新しいエントリがその後に続いて示されています。

SID_LIST_LISTENER=
(SID_LIST=
   (SID_DESC=
      (SID_NAME=dg4db2)
      (ORACLE_HOME=oracle_home_directory)
      (PROGRAM=dg4db2)
   )
   (SID_DESC=
      (SID_NAME=dg4db22)
      (ORACLE_HOME=oracle_home_directory)
      (PROGRAM=dg4db2)
   )
   (SID_DESC=
      (SID_NAME=dg4db23)
      (ORACLE_HOME=oracle_home_directory)
      (PROGRAM=dg4db2)
   )
)

ここで、oracle_home_directoryは、ゲートウェイが存在するディレクトリです。

14.7.3 複数のDRDAデータベースの例: Oracle Net Listenerの停止および起動

次の手順を実行します。

  1. 「スタート」メニューで、「設定」「コントロール パネル」「サービス」を選択します。
  2. ゲートウェイ用のOracle Net Listenerサービスを選択します。
  3. 「停止」をクリックします。
  4. 「開始」をクリックします。

14.7.4 複数のDRDAデータベースの例: ゲートウェイ・アクセス用のOracle Databaseの構成

2つの接続記述子エントリをtnsnames.oraファイルに追加します。複数のゲートウェイ・インスタンスが同じデータベースにアクセスする場合でも、ゲートウェイ・インスタンスごとに1つのエントリが必要です。

この例では、複数のゲートウェイ・インスタンス用にOracle DatabaseでOracle Netを構成する方法について説明します。次の例では、最初にインストールされた元のゲートウェイ用のエントリの次に、新規ゲートウェイ・インスタンス用の2つのエントリが続いています。

old_db_using=(DESCRIPTION=
              (ADDRESS=
                (PROTOCOL=TCP)
                (PORT=port_number)
                (HOST=host_name))
                (CONNECT_DATA=
                    (SID=dg4db2))
               (HS=OK))
new_db2_using=(DESCRIPTION=
              (ADDRESS=
                (PROTOCOL=TCP)
                (PORT=port_number)
                (HOST=host_name))
                (CONNECT_DATA=
                    (SID=dg4db22))
                (HS=OK))
new_db3_using=(DESCRIPTION=
              (ADDRESS=
                (PROTOCOL=TCP)
                (PORT=port_number)
                (HOST=host_name))
                (CONNECT_DATA=
                    (SID=dg4db23))
                (HS=OK)) 

PORTの値は、ゲートウェイをリスニングしているOracle Net ListenerのTCP/IPポート番号です。この番号は、Oracle Net Listenerにより使用されるlistener.oraファイルで確認できます。HOSTの値は、ゲートウェイが稼働しているマシンの名前です。この名前も、Oracle Net Listenerにより使用されるlistener.oraファイルで確認できます。

14.7.5 複数のDRDAデータベースの例: DB2データへのアクセス

次のように入力してdg4db22ゲートウェイ用のデータベース・リンクを作成します。

SQL> CREATE PUBLIC DATABASE LINK DRDA2 CONNECT TO
  2  "user2" IDENTIFIED BY "password2" USING 'new_db2_using';

次のように入力してdg4db23ゲートウェイ用のデータベース・リンクを作成します。

SQL> CREATE PUBLIC DATABASE LINK DRDA3 CONNECT TO
  2  "user3" IDENTIFIED BY "password3" USING 'new_db3_using';

データベース・リンクの作成後に、次のように新規DRDAデータベースへの接続を確認できます。

SQL> SELECT * FROM ALL_USERS@DRDA2;
SQL> SELECT * FROM ALL_USERS@DRDA3;