14 Oracle Database Gateway for DRDAの構成
ゲートウェイのインストール後、次のタスクを実行してOracle Database Gateway for DRDAを構成します。
HS_TRANSACTION_LOG
表の作成、不要になった表およびビューの削除、データ・ディクショナリ・サポート用の表およびビューの作成など、各作業を実行するためのSQLスクリプトが用意されています。
これらのスクリプトは、実行するためのツールがゲートウェイに付属していないため、データベース固有のツール(DB2 UDB for Linux, UNIX, and WindowsでのSPUFIなど)を使用してDRDAサーバー・プラットフォーム上で実行する必要があります。これらのスクリプトを実行する場合に使用するユーザーIDには、適切な権限を付与する必要があります。
SQLスクリプトは、dg4db2/admin
ディレクトリにあります。該当するプラットフォーム用のスクリプトは、ファイル名のDB2プラットフォーム識別子(例: 「zos」、「as400」および「luw」)とバージョン固有の番号(例: vw7、vw8)で示されています。
ゲートウェイ初期化パラメータ・ファイルの構成
ゲートウェイ用のシステム識別子の選択
ゲートウェイ・システム識別子(SID)は、ゲートウェイ・インスタンスを識別する英数字の文字列です。アクセスするDRDAデータベースごとに、1つのゲートウェイ・インスタンスが(したがって1つのゲートウェイSIDが)必要です。ただし、2つのDRDAデータベースにアクセスする場合は、ゲートウェイのインスタンスごとに1つずつ、合計2つのゲートウェイSIDが必要です。DRDAデータベースが1つのみ存在し、そのアクセスに使用するゲートウェイ・パラメータ設定のセットを状況に応じて使い分ける場合、単一のDRDAデータベースに対して複数のゲートウェイSIDを使用します。SIDは、初期化パラメータ・ファイルのファイル名の一部として使用されます。
初期化パラメータ・ファイルのカスタマイズ
必要に応じて、追加のパラメータを使用してパラメータ・ファイルを調整します。サポートされている初期化パラメータのリストは、初期化パラメータを参照してください。また、パラメータ・ファイルを調整するためのセキュリティの側面については、セキュリティ上の考慮事項を参照してください。
ゲートウェイ用のOracle Netの構成
ゲートウェイでは、Oracle Databaseと通信するためにOracle Netが必要です。ゲートウェイの構成後、次のタスクを実行して、ゲートウェイと連携動作するようにOracle Netを構成します。
ゲートウェイ用の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
はゲートウェイのインストール先のディレクトリです)。
listener.oraファイルのエントリの構文
Oracle Databaseは、Oracle Netおよびサポートされている任意のプロトコル・アダプタを使用してゲートウェイと通信します。TCP/IPプロトコル・アダプタを使用してOracle Net Listenerがリスニングするアドレスの構文は次のとおりです。
LISTENER= (ADDRESS= (PROTOCOL=TCP) (HOST=host_name) (PORT=port_number))
説明:
変数 | 説明 |
---|---|
|
ゲートウェイがインストールされているマシンの名前。 |
|
Oracle Net Listenerにより使用されるポート番号。同じマシン上で稼働する他のリスナーが存在する場合、 |
着信接続リクエストに応じてゲートウェイを起動するよう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) ) )
説明:
変数 | 説明 |
---|---|
|
ゲートウェイのSIDを指定します。 |
|
ゲートウェイが存在するOracleホーム・ディレクトリを指定します。 |
|
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管理者ガイドを参照してください。
2フェーズ・コミットの構成
2フェーズ・コミットをサポートするには、DB2サーバー上でORACLE_HOME\dg4db2\admin\dg4db2_tx.sql
スクリプトを実行する必要があります。このスクリプトは、2フェーズ・コミットのゲートウェイによって使用されるオブジェクトを作成します。スクリプトを編集して、アカウントのリカバリのデフォルト・スキーマ(「RECOVER
」)をHS_FDS_RECOVERY_ACCOUNT
初期化パラメータに指定されたアカウント名に置き換えます。詳細は、初期化パラメータを参照してください。
データ・ディクショナリ・サポート用の表およびビューの作成
データ・ディクショナリ変換サポートを有効化するには、ゲートウェイを通じてアクセスするOracle以外のシステムごとに、データ・ディクショナリ表およびビューを作成する必要があります。
次のステップを実行し、データベース固有のツールを使用してデータ・ディクショナリ表およびビューを作成します。
ゲートウェイ・アクセス用の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管理者ガイドを参照してください。
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パラメータ
変数 | 説明 |
---|---|
|
データベース・リンクの作成時に指定された接続先オブジェクトの記述(
注意: |
TCP |
TCP/IP接続に使用されるTCPプロトコルです。 |
|
ゲートウェイが稼働しているマシンを指定します。 |
|
ゲートウェイをリスニングしているOracle Net Listenerにより使用されるポート番号と一致させます。Oracle Net Listenerのポート番号は、Oracle Net Listenerにより使用される |
|
ゲートウェイのSIDを指定し、ゲートウェイをリスニングするOracle Net Listenerの |
|
この接続記述子でOracle以外のシステムに接続することを指定します。 |
複数のリスナー用の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管理者ガイドを参照してください。
データベース・リンクの作成
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';
説明:
変数 | 説明 |
---|---|
|
完全なデータベース・リンク名。 |
|
ゲートウェイを識別する |
データベース・リンクの作成後に、次のようにDRDAデータベースへの接続を確認できます。
SQL> SELECT * FROM DUAL@dblink;
関連項目:
データベース・リンクの使用の詳細は、Oracle Database管理者ガイドを参照してください。
複数のDRDAデータベースにアクセスするためのゲートウェイの構成
複数のDRDAデータベースにアクセスするためのゲートウェイの構成作業は、単一のデータベースを対象とするゲートウェイの構成作業とほぼ同じです。構成の例では、次のことを想定しています。
-
ゲートウェイがインストールされていること。
-
ゲートウェイが
db1
という1つのDRDAデータベース用に構成されていること。 -
IPアドレスが204.179.79.15であるホストに
db2
およびdb3
という2つのDRDAデータベースが追加されること。
複数の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および異なるパラメータ設定を使用します。
複数の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
は、ゲートウェイが存在するディレクトリです。
複数のDRDAデータベースの例: Oracle Net Listenerの停止および起動
次のステップを実行します。
- 「スタート」メニューで、「設定」→「コントロール パネル」→「サービス」を選択します。
- ゲートウェイ用のOracle Net Listenerサービスを選択します。
- 「停止」をクリックします。
- 「開始」をクリックします。
複数の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
ファイルで確認できます。
複数の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;