11 Oracle Database Gateway for ODBCの構成

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

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

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

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

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

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

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

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

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

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

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

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は、初期化パラメータ・ファイルのファイル名の一部として使用されます。

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

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

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

HS_FDS_CONNECT_INFO=dsn_value

where dsn_value is the name of the system DSN defined in the Microsoft Windows ODBC Data Source Administrator.

注意:

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

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

システムDSNは、Microsoft WindowsのODBCデータソース アドミニストレータで定義済であると仮定します。ゲートウェイを通じてこの例のSQL Serverデータベースに接続するには、initsid.oraファイルに次の行が必要です。

HS_FDS_CONNECT_INFO=sqlserver7

sqlserver7は、Microsoft WindowsのODBCデータソース アドミニストレータで定義したシステムDSNの名前です。

Microsoft WindowsのODBCデータソース アドミニストレータ(バージョン3.5)でシステムDSNを定義するには、次の手順を実行します。

  1. 「スタート」メニューで、「設定」「コントロール パネル」「ODBC」を選択します。
  2. 「システムDSN」タブ・ページを選択してシステム・データソースを表示します。
  3. 「追加」をクリックします。
  4. インストール済のODBCドライバのリストから、データソースで使用するドライバの名前を選択します。たとえば、「SQL Server」を選択します。
  5. 「終了」をクリックします。
  6. DSNの名前とオプションの説明を入力します。ODBCドライバに応じて他の情報を入力します。たとえば、SQL Serverでは、SQL Serverのマシン名を入力します。

    注意:

    DSNとして入力する名前は、initsid.oraに指定されている初期化パラメータHS_FDS_CONNECT_INFOの値と一致する必要があります。

  7. ODBCドライバのドキュメントを参照し、プロンプトに従ってDSNの構成を完了します。
  8. システムDSNを作成したら、「OK」をクリックしてODBCデータソース アドミニストレータを終了します。

注意:

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

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

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

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

ゲートウェイ用の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はゲートウェイのインストール先のディレクトリです)。

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=dg4odbc)
      )
   )

説明:

変数 説明

gateway_sid

ゲートウェイのSIDを指定します。tnsnames.oraファイルの接続記述子エントリで指定されたゲートウェイSIDと一致させます。

oracle_home_directory

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

dg4odbc

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

既存の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=dg4odbc)
   )
)

関連項目:

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

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

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

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

ゲートウェイ・アクセス用の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管理者ガイドを参照してください。

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

説明:

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

変数 説明

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

複数のリスナー用の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クライアントは、ゲートウェイを通じて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管理者ガイドを参照してください。

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

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

関連項目:

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

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

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

  • ゲートウェイがdg4odbcというSIDを使用してインストールおよび構成されていること。

  • ゲートウェイがdsn1という1つのODBCデータソースにアクセスするよう構成されていること。

  • dsn2およびdsn3という2つのODBCデータソースが追加されること(dsn2およびdsn3は、Microsoft WindowsのODBCデータソース アドミニストレータで定義されたシステムDSNの名前)。

複数の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
> copy initdg4odbc.ora initdg4odbc2.ora
> copy 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および異なるパラメータ設定を使用します。

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

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

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

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

SID_LIST_LISTENER=
(SID_LIST=
   (SID_DESC=
      (SID_NAME=dg4odbc)
      (ORACLE_HOME=oracle_home_directory)
      (PROGRAM=dg4odbc)
   )
   (SID_DESC=
      (SID_NAME=dg4odbc2)
      (ORACLE_HOME=oracle_home_directory)
      (PROGRAM=dg4odbc)
   )
   (SID_DESC=
      (SID_NAME=dg4odbc3)
      (ORACLE_HOME=oracle_home_directory)
      (PROGRAM=dg4odbc)
   )
)

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

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

次のステップを実行します。

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

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

2つの接続記述子エントリをtnsnames.oraファイルに追加します。複数のゲートウェイ・インスタンスが同じデータベースにアクセスする場合でも、ゲートウェイ・インスタンスごとに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ファイルで確認できます。

複数の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;