ヘッダーをスキップ
Oracle Database Gatewayインストレーションおよび構成ガイド
11gリリース1(11.1) for AIX 5L Based Systems(64-bit), HP-UX PA-RISC(64-bit), HP-UX Itanium, Solaris Operating System (SPARC 64-bit), Linux x86, and Linux x86-64
E05708-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

11 Oracle Database Gateway for ODBCの構成

ゲートウェイおよびOracle以外のシステムに対応するODBCドライバのインストール後、次のタスクを実行してOracle Database Gateway for ODBCを構成します。

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

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

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

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

  5. ゲートウェイ初期化パラメータ値の暗号化

  6. 複数のODBCデータソースにアクセスするためのゲートウェイの構成

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

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

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

  2. 初期化パラメータ値の設定

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

Oracle Database Gateway for ODBC用に、初期化ファイルを作成する必要があります。Oracleには、サンプルの初期化ファイルinitdg4odbc.oraが付属します。サンプル・ファイルは、$ORACLE_HOME/hs/adminディレクトリに格納されています。

ODBCゲートウェイ用の初期化ファイルを作成するには、サンプルの初期化ファイルをコピーしてその名前をinitsid.oraに変更します(sidは、ゲートウェイの接続先となるOracle以外のシステムのインスタンスで使用されるシステム識別子(SID)です)。

ゲートウェイ・システム識別子(SID)は、ゲートウェイ・インスタンスを識別する英数字の文字列です。アクセスするODBCソースごとに、1つのゲートウェイ・インスタンスが(したがって1つのゲートウェイSIDが)必要です。

2つのODBCソースにアクセスする場合は、ゲートウェイのインスタンスごとに1つずつ、合計2つのゲートウェイSIDが必要です。ODBCソースが1つのみ存在し、そのアクセスに使用するゲートウェイ・パラメータ設定のセットを状況に応じて使い分ける場合、単一のODBCソースに対して複数のゲートウェイSIDが必要です。SIDは、初期化パラメータ・ファイルのファイル名の一部に使用されます。

11.1.2 初期化パラメータ値の設定

初期化ファイルを作成したら、初期化パラメータ値を設定する必要があります。複数の初期化パラメータを使用して、ゲートウェイの動作を変更できます。HS_FDS_CONNECT_INFOおよびHS_FDS_SHAREABLE_NAME初期化パラメータを設定する必要があります。その他の初期化パラメータは、デフォルト値を持つか、オプションです。デフォルト値を使用して、オプションのパラメータを省略できます。または、独自のインストール環境に適した値を使用してパラメータを指定できます。設定可能な初期化パラメータの完全なリストは、付録C「初期化パラメータ」を参照してください。初期化パラメータに加えた変更は、次のゲートウェイ・セッションまで反映されません。

HS_FDS_CONNECT_INFO初期化パラメータでは、Oracle以外のシステムに接続するのに必要な情報を指定します。HS_FDS_CONNECT_INFOは、次のように設定します。

HS_FDS_CONNECT_INFO=dsn_value

ここで、dsn_valueは、odbc.iniファイルに構成されているデータソース名です。

HS_FDS_SHAREABLE_NAME初期化パラメータでは、ODBCドライバ・マネージャのフルパスを指定します。HS_FDS_SHAREABLE_NAMEは、次のように設定します。

HS_FDS_SHAREABLE_NAME=full_path_of_odbc_driver

ここで、full_path_of_odbc_driverは、ODBCドライバ・マネージャのフルパスです。


注意:

デフォルト値をそのまま使用するか、または変更するかを決定する前に、付録C「初期化パラメータ」ですべての初期化パラメータの詳細を参照してください。

11.1.2.1 例: 初期化パラメータ値の設定

次に、DataDirect Technologies社のSQL Server ODBCドライバを使用するodbc.iniファイルの例を示します。ODBCドライバは、$ODBCHOME/opt/odbc520ディレクトリ)にインストールされます。

[ODBC Data Sources]
SQLServerWP=DataDirect 5.20 SQL Server Wire Protocol

[SQLServerWP]
Driver=/opt/odbc520/lib/ivmsss18.so
Description=DataDirect 5.20 SQL Server Wire Protocol
Database=oratst
LogonID=TKHOUSER
Password=TKHOUSER
Address=sqlserver-pc,1433
QuotedId=Yes
AnsiNPW=No

[ODBC]
Trace=0
TraceFile=/opt/odbc520/odbctrace.out
TraceDll=/opt/odbc520/lib/odbctrac.so
InstallDir=/opt/odb520
ConversionTableLocation=/opt/odbc520/tables
UseCursorLib=0

このドライバを使用するようOracle Database Gateway for ODBCを構成するには、次の行がinitsid.oraに必要です。

HS_FDS_CONNECT_INFO=SQLServerWP
HS_FDS_SHAREABLE_NAME=/opt/odbc520/lib/libodbc.so
set ODBCINI=/opt/odbc/odbc.ini

ODBCドライバの使用によりいくつかの環境変数を設定する必要がある場合、それらの変数は、初期化ファイルに設定するか、環境に設定することができます。

HS_FDS_CONNECT_INFO初期化パラメータ値は、odbc.iniファイルのODBCデータソース名と一致する必要があります。


注意:

ODBCドライバで引用識別子または区切り識別子がサポートされる場合、それを有効化する必要があります。

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

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

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

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

11.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/dg4odbc/adminディレクトリにあります($ORACLE_HOMEはゲートウェイのインストール先のディレクトリです)。

11.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ファイルにエントリを追加します。HP-UX PA-RISCの構文は、他のプラットフォームとは多少異なります。


注意:

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

Linuxの場合:

SID_LIST_LISTENER=
   (SID_LIST=
      (SID_DESC=
         (SID_NAME=gateway_sid)
         (ORACLE_HOME=oracle_home_directory)
         (PROGRAM=dg4odbc)
         (ENVS=LD_LIBRARY_PATH=odbc_library_dir:$ORACLE_HOME/lib)
      )
   )

HP-UX PA-RISCの場合:

SID_LIST_LISTENER=
   (SID_LIST=
      (SID_DESC=
         (SID_NAME=gateway_sid)
         (ORACLE_HOME=oracle_home_directory)
         (PROGRAM=dg4odbc)
         (ENVS=SHLIB_PATH=odbc_library_dir:$ORACLE_HOME/lib32)
      )
   )

変数の意味は次のとおりです。

変数 説明
gateway_sid ゲートウェイのSIDを指定します。tnsnames.oraファイルの接続記述子エントリで指定されたゲートウェイSIDと一致させます。
oracle_home_directory ゲートウェイの存在するOracleホーム・ディレクトリを指定します。
odbc_library_dir ODBCドライバのライブラリ・パスを指定します。
dg4odbc Oracle Database Gateway for ODBCの実行可能ファイル名を指定します。

既存のOracle Net Listenerがすでに存在する場合、既存のlistener.oraファイルのSID_LISTに次の構文を追加します。

Linuxの場合:

SID_LIST_LISTENER=
(SID_LIST=
   (SID_DESC=.
     .
   )
   (SID_DESC=.
     .
   )
   (SID_DESC=
      (SID_NAME=gateway_sid)
      (ORACLE_HOME=oracle_home_directory)
      (PROGRAM=dg4odbc)
(ENVS=LD_LIBRARY_PATH=odbc_library_dir:$ORACLE_HOME/lib)
   )
)

HP-UX PA-RISCの場合:

SID_LIST_LISTENER=
(SID_LIST=
   (SID_DESC=.
     .
   )
   (SID_DESC=.
     .
   )
   (SID_DESC=
      (SID_NAME=gateway_sid)
      (ORACLE_HOME=oracle_home_directory)
      (PROGRAM=dg4odbc)
      (ENVS=SHLIB_PATH=odbc_library_dir:$ORACLE_HOME/lib32)
   )
)

関連項目:

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

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

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

  1. PATH環境変数を$ORACLE_HOME/binに設定します($ORACLE_HOMEはゲートウェイのインストール先のディレクトリです)。

    たとえば、LinuxプラットフォームでBourneシェルまたはKornシェルを使用している場合、次のように入力します。

    $ PATH=$ORACLE_HOME/bin:$PATH;export PATH
    $ LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH
    

    Cシェルを使用している場合、次のように入力します。

    $ setenv PATH $ORACLE_HOME/bin:$PATH
    $ setenv LD_LIBRARY_PATH $ORACLE_HOME/lib:$LD_LIBRARY_PATH
    

    表11-1に、異なるプラットフォームで使用するパラメータ値を示します。

    表11-1 UNIXベース・プラットフォームのパラメータ値

    プラットフォーム パラメータ値

    Solaris(SPARC)64-bit

    LD_LIBRARY_PATH=$ORACLE_HOME/lib

    HP-UX PA-RISC

    SHLIB_PATH=$ORACLE_HOME/lib

    HP-UX Itanium

    LD_LIBRARY_PATH=$ORACLE_HOME/lib

    Linux x86およびLinux x86 64-bit

    LD_LIBRARY_PATH=$ORACLE_HOME/lib

    AIX

    LIBPATH=$ORACLE_HOME/lib


  2. リスナーがすでに実行中の場合、次のようにlsnrctlコマンドを使用してリスナーを停止し、新規設定を使用して起動します。

    $ lsnrctl stop
    $ lsnrctl start
    
  3. 次のように新規設定に基づくリスナーのステータスを確認します。

    $ lsnrctl status
    

    次の例は、lsnrctlのステータス確認による出力の一部です。この例で、dg4odbcはSIDです。

.
.
.
Services Summary...
Service "dg4odbc" has 1 instance(s).
  Instance "dg4odbc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

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

ゲートウェイを使用してODBCデータソースにアクセスする前に、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/dg4odbc/adminディレクトリにあります($ORACLE_HOMEはゲートウェイのインストール先のディレクトリです)。


関連項目:

tnsnames.oraファイルの編集方法の詳細は、『Oracle Database管理者ガイド』を参照してください。

11.3.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))

変数の意味は次のとおりです。

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

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以外のシステムに接続することを指定します。

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

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

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

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

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

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接続記述子を指定します。

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

SQL> SELECT * FROM DUAL@dblink;

関連項目:

データベース・リンクの使用方法の詳細は、『Oracle Database管理者ガイド』および『Oracle Database Heterogeneous Connectivity管理者ガイド』を参照してください。

11.5 ゲートウェイ初期化パラメータ値の暗号化

ゲートウェイでは、ユーザーIDとパスワードを使用してリモート・データベースの情報にアクセスします。一部のユーザーIDおよびパスワードは、リソース・リカバリなどの機能を処理するためにゲートウェイ初期化ファイルに定義する必要があります。セキュリティを意識した現在の環境では、初期化ファイルでアクセス可能なプレーン・テキスト・パスワードは、セキュアではないとみなされます。セキュリティを向上するために、異機種間サービスの一部としてdg4pwd暗号化ユーティリティが追加されました。このユーティリティには、ゲートウェイからアクセスできます。機密値を含む初期化パラメータは、暗号化された形式で格納できます。


関連項目:

このユーティリティの使用方法の詳細は、『Oracle Database Heterogeneous Connectivity管理者ガイド』を参照してください。

11.6 複数のODBCデータソースにアクセスするためのゲートウェイの構成

複数のODBCデータソースにアクセスするためのゲートウェイの構成作業は、単一のデータソースを対象とするゲートウェイの構成作業とほぼ同じです。構成例の前提条件は次のとおりです。

11.6.1 複数のODBCデータソースの例: ゲートウェイの構成

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

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

  • dg4odbc2(データソースdsn2にアクセスするゲートウェイ用)。

  • dg4odbc3(データソースdsn3にアクセスするゲートウェイ用)。

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

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

$ cd ORACLE_HOME/hs/admin
$ cp initdg4odbc.ora initdg4odbc2.ora
$ cp initdg4odbc.ora initdg4odbc3.ora

次のように各新規ファイルのHS_FDS_CONNECT_INFOパラメータの値を変更します。

initdg4odbc2.oraでは、次のように入力します。

HS_FDS_CONNECT_INFO=dsn2

initdg4odbc3.oraでは、次のように入力します。

HS_FDS_CONNECT_INFO=dsn3

注意:

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

11.6.2 複数のODBCデータソースの例: Oracle Net Listenerの構成

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

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

次の例では、最初にインストールされた元のゲートウェイ用のエントリの次に、新規エントリが続いています。HP-UX PA-RISCの構文は、他のプラットフォームとは多少異なります。

SID_LIST_LISTENER=
(SID_LIST=
   (SID_DESC=
      (SID_NAME=dg4odbc)
      (ORACLE_HOME=oracle_home_directory)
      (PROGRAM=dg4odbc)
(ENVS=LD_LIBRARY_PATH=odbc_library_dir:$ORACLE_HOME/lib)
   )
   (SID_DESC=
      (SID_NAME=dg4odbc2)
      (ORACLE_HOME=oracle_home_directory)
      (PROGRAM=dg4odbc)
(ENVS=LD_LIBRARY_PATH=odbc_library_dir:$ORACLE_HOME/lib)
   )
   (SID_DESC=
      (SID_NAME=dg4odbc3)
      (ORACLE_HOME=oracle_home_directory)
      (PROGRAM=dg4odbc)
(ENVS=LD_LIBRARY_PATH=odbc_library_dir:$ORACLE_HOME/lib)
   )
)

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

11.6.3 複数のODBCデータソースの例: Oracle Net Listenerの停止および起動

リスナーがすでに実行中の場合、次のようにlsnrctlコマンドを使用してリスナーを停止し、新規設定を使用して起動します。

$ lsnrctl stop
$ lsnrctl start

11.6.4 複数のODBCデータソースの例: ゲートウェイ・アクセス用のOracle Databaseの構成

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

次の例では、最初にインストールされた元のゲートウェイ用のエントリの次に、新規ゲートウェイ・インスタンス用の2つのエントリが続いています。

old_dsn_using=(DESCRIPTION=
              (ADDRESS=
                (PROTOCOL=TCP)
                (PORT=port_number)
                (HOST=host_name))
                (CONNECT_DATA=
                    (SID=dg4odbc))
               (HS=OK))
new_dsn2_using=(DESCRIPTION=
              (ADDRESS=
                (PROTOCOL=TCP)
                (PORT=port_number)
                (HOST=host_name))
                (CONNECT_DATA=
                    (SID=dg4odbc2))
                (HS=OK))
new_dsn3_using=(DESCRIPTION=
              (ADDRESS=
                (PROTOCOL=TCP)
                (PORT=port_number)
                (HOST=host_name))
                (CONNECT_DATA=
                    (SID=dg4odbc3))
                (HS=OK))

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

11.6.5 複数のODBCデータソースの例: ODBCデータへのアクセス

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

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

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

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

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

SQL> SELECT * FROM ALL_USERS@ODBC2;
SQL> SELECT * FROM ALL_USERS@ODBC3;