インストールおよび構成 補足

連合システムへの Oracle データ・ソースの追加

ニックネームを使って Oracle データベースにアクセスするには、 次のようにします。

ステップ 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 に進んでください。

  1. 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
    



    簡略操作

    Oracle データ・ソースの各国語サポートの詳細については、 Oracle コード・ページのオプションを参照してください。

    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 です。

  2. 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 ファイルの関係


    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 ホスト・ファイルを更新する必要はありません。 そうでない場合、リモート・ホスト用の項目が必要です。 ネットワーク管理者に問い合わせて、ネットワークの構成方法を確かめてください。



簡略操作

Oracle コード・ページ・マッピングの詳細を知りたい場合は、 Oracle コード・ページのオプションに進んでください。

データ・ソースにアクセスできるように正しく連合サーバーを構成したことを確認するには、 Oracle データ・ソースへの接続の確認に進んでください。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]