ステップ 1.
| Oracle 提供の資料を使って、
DB2 連合サーバー上に Oracle クライアント・ソフトウェアをインストールして構成します。
SQL*Net または Net8 を使って、
Oracle バージョン 7 および Oracle バージョン 8 のどちらのデータ・ソースにもアクセスすることができます。
UNIX プラットフォームで実行される連合サーバーに関する注意
| Oracle クライアント・ソフトウェアのインストール時に、
SQL*Net または Net8 の再リンクを要求してください。
|
|
ステップ 2.
| DB2DJ.ini ファイルを変更してから、
db2set コマンドを出して、
データ・ソースの環境変数を設定します。
db2set コマンドは、
ユーザーの設定値を使って DB2 プロファイル・レジストリーを更新します。
DB2DJ.ini ファイルには、
連合サーバーにインストールされている Oracle クライアント・ソフトウェアに関する構成情報が入っています。
区分データベース・システムでは、
ある 1 つのインスタンス内のすべてのノードに対して 1 つの DB2DJ.ini ファイルを使ったり、
ある 1 つのインスタンス内の 1 つ以上のノードに対して固有の DB2DJ.ini ファイルを使ったりすることができます。
非区分データベース・システムでは、
インスタンスごとに 1 つの DB2DJ.ini ファイルしかありません。

| DB2DJ.ini 内のデフォルト設定を受け入れられる構成の場合は、
2 に進んでください。
|
- sqllib/cfg にある DB2DJ.ini ファイルを編集し、
次のような環境変数を設定します。
ORACLE_HOME
|
ORACLE_HOME 環境変数を Oracle ホーム・ディレクトリーに設定します。
以下に例を示します。
ORACLE_HOME=oracle_home_directory
SQL*Net と Net8 では、連合インスタンスを始動する場合は、
事前にこの変数を設定しておく必要があります。
この変数を変更した場合、連合インスタンスを停止してから再始動して、
新しい ORACLE_HOME 値を有効にしなければなりません。
連合インスタンスの個々のユーザーが ORACLE_HOME 環境変数を設定している場合、
それは連合インスタンスでは使われません。
連合インスタンスは、
DB2 プロファイル・レジストリーに設定されている ORACLE_HOME の値しか使いません。
| ORACLE_BASE
|
いずれかのバージョンの UNIX で実行される連合サーバーの場合に、
Oracle クライアント・ソフトウェアのインストール時に ORACLE_BASE 変数を設定すると、
連合サーバーでも次のようにして ORACLE_BASE 環境変数を設定しなければなりません。
ORACLE_BASE=oracle_home_directory
| ORA_NLS
|
Oracle 7.2 以上のデータ・ソースにアクセスするいずれかのバージョンの UNIX で実行される連合サーバーの場合、
次のように ORA_NLS 環境変数を設定します。
ORA_NLS=oracle_home_directory/ocommon/nls/admin/data
| TNS_ADMIN
|
SQL*Net または Net8 の tnsnames.ora ファイルが、
デフォルトの検索パス以外のところにある場合、
tnsnames.ora ファイルのロケーションを指定する TNS_ADMIN 環境変数を設定する必要があります。
以下に例を示します。
TNS_ADMIN=x:\path\tnsnames.ora
Windows サーバーの場合:
| このファイルのデフォルト・ロケーションは、次のように、
使用されるクライアント・ソフトウェアによって異なります。
- SQL*Net を使用する場合、
tnsnames.ora は
%ORACLE_HOME%\NETWORK\ADMIN ディレクトリーに置かれます。
- Net8 を使用する場合、
tnsnames.ora は
%ORACLE_HOME%\NET8\ADMIN ディレクトリーに置かれます。
| UNIX サーバーの場合:
| このファイルのデフォルト・ロケーションは、
$ORACLE_HOME/admin/util/network です。
|
|
- db2set コマンドを出して、
DB2 プロファイル・レジストリーを変更内容で更新します。
非区分データベース・システムでこの DB2DJ.ini ファイルを使用する場合や、
現在のノードにだけこの DB2DJ.ini ファイル内の値を適用したい場合は、
次のようなコマンドを出します。
db2set DB2_DJ_INI = sqllib/cfg/db2dj.ini
区分データベース・システムでこの DB2DJ.ini ファイルを使用する場合に、
このインスタンス内のすべてのノードにこの DB2DJ.ini ファイル内の値を適用したければ、
次のようなコマンドを出します。
db2set -g DB2_DJ_INI = sqllib/cfg/db2dj.ini
区分データベース・システムでこの DB2DJ.ini ファイルを使用する場合に、
特定のノードだけにこの DB2DJ.ini ファイル内の値を適用したければ、
次のようなコマンドを出します。
db2set -i INSTANCEX 3 DB2_DJ_INI = sqllib/cfg/node3.ini
ここで、
- INSTANCEX はインスタンスの名前です。
- 3 は、db2nodes.cfg ファイルにリストされているノード番号です。
- node3.ini は、変更および名前変更のバージョンの DB2DJ.ini ファイルです。
|
ステップ 3.
| SQL*Net または Net8 の tnsnames.ora ファイルは、
必ず、通信を構成する相手先の Oracle サーバーごとに更新します。
tnsnames.ora ファイルでは、SID は Oracle インスタンスの名前、
HOST は Oracle サーバーが置かれているホストの名前です。
|
ステップ 4.
| 次のようにして、DB2 インスタンスをリサイクルします。
Windows サーバーの場合:
|
NET STOP instance_name
NET START instance_name
| UNIX サーバーの場合:
|
db2stop
db2start
|
|
ステップ 5.
| Oracle データ・ソースにアクセスするのに使うラッパー・ライブラリーを定義するには、
CREATE WRAPPER ステートメントを使用します。
ラッパーとは、連合サーバーがデータ・ソースと通信したり、
そこからデータを取り出したりするのに使用するメカニズムです。
以下に CREATE WRAPPER ステートメントの例を示します。
CREATE WRAPPER SQLNET
SQLNET は、
Oracle の SQL*Net クライアント・ソフトウェアで使用するラッパー・モジュールのデフォルト名です。
Oracle の Net8 クライアント・ソフトウェアを使用する場合は、NET8 を使います。
このデフォルト名は、任意の名前に置き換えることができます。ただし、置き換える場合、
DB2 サーバー・プラットフォーム用の LIBRARY パラメーターとラッパー・ライブラリーの名前も含めなければなりません。
ラッパー・ライブラリー名の詳細については、
SQL 解説書 を参照してください。
|
ステップ 6.
| 任意選択: DB2_DJ_COMM 環境変数を、
前のステップで作成したラッパー・モジュールに対応するラッパー・ライブラリーを含めるように設定します。
たとえば、次のようにします。
db2set DB2_DJ_COMM = libsqlnet.a
DB2_DJ_COMM 環境変数は、
連合サーバーの初期化時にラッパー・モジュールをロードするかどうかを制御します。そうすると、
Oracle データ・ソースに初めてアクセスするときのパフォーマンスを向上させることができます。
ラッパー・ライブラリー名の詳細については、
SQL 解説書 を参照してください。
|
ステップ 7.
| 通信を構成する相手先の各 Oracle サーバーを定義するには、
CREATE SERVER ステートメントを使います。次のようにします。
CREATE SERVER ORASERVER TYPE ORACLE VERSION 7.2 WRAPPER SQLNET
OPTIONS (NODE "oranode")
ここで、
- ORASERVER は、Oracle サーバーに割り当てる名前です。
この名前は固有名でなければなりません。
- ORACLE は、
アクセスを構成する相手先のデータ・ソースのタイプです。
- 7.2 は、アクセス先の Oracle のバージョンです。
- SQLNET は、CREATE WRAPPER ステートメントに定義したラッパー名です。
- oranode は、ORASERVER が置かれているノードの名前です。
ノード値は tnsnames.ora ファイルから入手します。
この値では、大文字小文字が区別されます。
図 6 は、
ノード・オプションと tnsnames.ora ファイルの関係を示しています。
ノード値はオプションとして指定しますが、
これは Oracle データ・ソースには必要です。
オプションの包括的リストについては、
SQL 解説書 を参照してください。
図 6 は、tnsnames.ora ファイル、
SYSCAT.SERVEROPTIONS 視点、
および SYSCAT.SERVERS 視点内の情報を示しています。
図 6. DB2 システム・ファイルと Oracle ファイルの関係
|
ステップ 8.
| 連合サーバーでのユーザー ID とパスワードが、
Oracle データ・ソースでのユーザー ID またはパスワードと異なる場合、
CREATE USER MAPPING ステートメントを使ってローカル・ユーザー ID を、
Oracle データ・ソースで定義されているユーザー ID およびパスワードにマップします。
次に例を示します。
CREATE USER MAPPING FOR DB2USER SERVER ORASERVER
OPTIONS ( REMOTE_AUTHID 'orauser', REMOTE_PASSWORD "dayl1te")
ここで、
- DB2USER は、
Oracle データ・ソースで定義されているユーザー ID にマップするローカル・ユーザー ID です。
- ORASERVER は、
CREATE SERVER ステートメントで定義されている Oracle データ・ソースの名前です。
- orauser は、
DB2USER のマッピング先の Oracle データ・ソースでのユーザー ID です。
この値では、大文字小文字が区別されます。
制約事項
| Oracle ユーザー ID (DB2 連合サーバーではなく、Oracle データ・ソースでのもの) は、
「identified externally」文節ではなく「identified by」文節を指定した
Oracle create user コマンドを使って作成されたものでなければなりません。
|
- dayl1te は、orauser に関連付けられているパスワードです。
この値では、大文字小文字が区別されます。
|
ステップ 9.
| Oracle データ・ソースにある視点または表にニックネームを割り当てるには、
CREATE NICKNAME ステートメントを使用します。
このニックネームは、Oracle データ・ソースを照会するときに使用します。
以下に CREATE NICKNAME ステートメントの例を示します。
CREATE NICKNAME ORASALES FOR ORASERVER.SALESDATA.MIDWEST
ここで、
- ORASALES は、Oracle 表または視点の固有ニックネームです。
- ORASERVER.SALESDATA.MIDWEST は、
次のような形式に準じた 3 つの部分から成る識別子です。
data_source_name.remote_schema_name.remote_table_name
CREATE NICKNAME ステートメントの詳細については、
SQL 解説書 を参照してください。
ニックネームに関する一般的な詳細については、
管理の手引き を参照してください。
|
ステップ 10.
| ニックネームを作成したいすべてのデータベース・オブジェクトに対して、
上記のステップを繰り返します。
|
ステップ 11.
| tnsnames.ora ファイルの
DESCRIPTION セクションの各 HOST ごとに、
UNIX サーバーの場合は /etc/hosts ファイルを、
Windows サーバーの場合は x:\winnt\system32\drivers\etc\hosts ファイルを、
必要に応じて更新します。
このファイルを更新する必要があるかどうかは、
ネットワーク上での TCP/IP の構成方法によって異なります。
ネットワークの一部は、
tnsnames.ora ファイル内の DESCRIPTION セクションに指定されているリモート・ホスト名 (例では oranode) をアドレスに変換する必要があります。
ホスト名を認識するネーム・サーバーをもつネットワークの場合、
TCP/IP ホスト・ファイルを更新する必要はありません。
そうでない場合、リモート・ホスト用の項目が必要です。
ネットワーク管理者に問い合わせて、ネットワークの構成方法を確かめてください。
|