ヘッダーをスキップ
Oracle Transparent Gateway for Microsoft SQL Server管理者ガイド
10gリリース2(10.2)for Microsoft Windows(32-bit)
B25367-01
  目次
目次
索引
索引

戻る
戻る
次へ
次へ
 

2 ゲートウェイの構成

ゲートウェイをインストールした後に、次のタスクを実行して、Microsoft SQL Server用にゲートウェイを構成します。

2.1 ゲートウェイの構成

次のタスクを実行して、Oracle Transparent Gateway for Microsoft SQL Serverを構成します。

2.1.1 タスク1: ゲートウェイのシステム識別子の選択

ゲートウェイ・システム識別子(SID)は、ゲートウェイ・インスタンスを識別する英数字の文字列です。アクセスするMicrosoft SQL Serverデータベースごとに1つのゲートウェイ・インスタンスが必要であるため、1つのゲートウェイSIDが必要です。SIDは、初期化パラメータ・ファイルのファイル名の一部として使用されます。デフォルトSIDはtg4msqlです。

ゲートウェイSIDは定義できますが、初期化パラメータ・ファイル名を変更する必要がないため、デフォルトのtg4msqlを使用する方が簡単です。ただし、2つのMicrosoft SQL Serverデータベースにアクセスする場合、ゲートウェイ・インスタンスごとに1つずつ、2つのゲートウェイSIDが必要です。Microsoft SQL Serverデータベースが1つあり、ある時は一組のゲートウェイ・パラメータ設定でアクセスし、またある時は別の一組のゲートウェイ・パラメータ設定でアクセスする場合は、1つのMicrosoft SQL Serverデータベースに複数のゲートウェイSIDを定義します。

2.1.2 タスク2: 初期化パラメータ・ファイルのカスタマイズ

初期化パラメータ・ファイルは、ゲートウェイの起動時に使用できる必要があります。インストール時に、次のデフォルトの初期化パラメータ・ファイルが作成されます。

ORACLE_HOME\tg4msql\admin\inittg4msql.ora

ORACLE_HOMEは、ゲートウェイがインストールされているディレクトリです。

tg4msqlをゲートウェイSIDとして使用しない場合、タスク1で選択したSIDを使用して初期化パラメータ・ファイルの名前を変更する必要があります。このデフォルトの初期化パラメータ・ファイルは、ゲートウェイの起動、正常なインストールの確認およびデモンストレーション・スクリプトの実行用としては十分です。

初期化パラメータ・ファイルに、Microsoft SQL Server接続を次のように指定します。

HS_FDS_CONNECT_INFO=server_name.database_name

database_nameのみを指定し、server_nameを省略すると(ただしピリオドを含む)、ゲートウェイでは、次のMicrosoft Windowsレジストリのサブツリーを使用して、server_nameを特定します。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo

ゲートウェイの動作を変更するために、多数の初期化パラメータを使用することもできます。後からシステム要件に合せて、初期化パラメータ・ファイルを変更することは可能です。


関連資料:

初期化パラメータ・ファイルのカスタマイズの詳細は、付録D「異機種間サービス初期化パラメータ」および『Oracle Database Heterogeneous Connectivity管理者ガイド』を参照してください。

2.2 ゲートウェイ用のOracle Net Servicesリスナーの構成

ゲートウェイには、透過的なデータ・アクセスを提供するためにOracle Net Servicesが必要です。ゲートウェイを構成した後に、Oracle Net Servicesをゲートウェイと連動するよう構成します。

2.2.1 タスク1: ゲートウェイ用のOracle Net ServicesのTNSリスナーの構成

Oracle Net Servicesでは、TNSリスナーを使用してOracle Net Servicesクライアントから着信接続要求を受信します。TNSリスナーおよびゲートウェイは、同じマシン上に存在する必要があります。

TNSリスナーは、Oracleデータベース・サーバーからの着信要求をリスニングします。TNSリスナーがゲートウェイをリスニングするには、ゲートウェイの情報をTNSリスナー構成ファイルlistener.oraに追加する必要があります。このファイルは、ORACLE_HOME\network\adminにあります。ORACLE_HOMEはゲートウェイがインストールされているディレクトリです。


注意:

Oracle Net Servicesを再インストールすると、元のlistener.oraファイルの名前が変更され、新しいlistener.oraファイルがORACLE_HOME\network\adminディレクトリに入ります。

次のエントリをlistener.oraファイルに追加する必要があります。

  • TNSリスナーがリスニングに使用するOracle Net Servicesアドレスのリスト

  • TNSリスナーが着信接続要求に応答して起動するゲートウェイ

2.2.1.1 listener.oraファイル内のリスニングに使用するアドレスの例

Oracleデータベース・サーバーは、Oracle Net ServicesおよびTCP/IP Protocol Adapterを使用してゲートウェイにアクセスします。次に示すのは、listener.oraファイルの接続記述子エントリの構文です。

LISTENER=
        (ADDRESS=
          (PROTOCOL=TCP)
          (HOST=host_name)
          (PORT=port_number))

変数の説明:

変数 説明
host_name ゲートウェイがインストールされているマシンの名前を指定します。
port_number TNSリスナーが使用するポート番号を指定します。他のリスナーがhost_nameで稼働している場合、port_numberの値は、他のリスナーのポート番号とは異なる必要があります。

2.2.1.2 listener.oraファイル内の起動するゲートウェイの例

着信接続要求に応答してTNSリスナーにゲートウェイを起動させるには、次の構文を使用してエントリをlistener.oraファイルに追加します。

SID_LIST_LISTENER=
   (SID_LIST=
      (SID_DESC=
         (SID_NAME=gateway_sid)
         (ORACLE_HOME=oracle_home_directory)
         (PROGRAM=tg4msql)
      )
   )

変数の説明:

変数 説明
gateway_sid ゲートウェイのSIDを指定します。tnsnames.oraファイルの接続記述子エントリに指定されているゲートウェイSIDと同じです。
oracle_home_directory ゲートウェイが存在するOracleホーム・ディレクトリを指定します。
tg4msql Oracle Transparent Gateway for Microsoft SQL Serverを指定します。

複数のデータベースSIDでリスニングするTNSリスナーをすでに実行している場合、既存の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=tg4msql)
   )
)


関連資料:

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

2.2.2 タスク2: ゲートウェイ用のTNSリスナーの停止および起動

TNSリスナーは、新しい設定の使用を開始するために、次のようにして起動する必要があります。

  1. Windowsの「コントロール パネル」から「サービス」を選択します。(たとえば、Windows 2000の場合、Windowsの「スタート」メニューから「設定」→「コントロール パネル」→「管理ツール」→「サービス」の順に選択します。)

  2. ゲートウェイ用のTNSListenerサービスを選択します。

  3. サービスがすでに稼働している場合は、「停止」を選択して停止します。

  4. 「開始」をクリックしてサービスを再起動します。

2.3 ゲートウェイ・アクセス用のOracleデータベース・サーバーの構成

ゲートウェイを使用してMicrosoft SQL Serverデータにアクセスする前に、Oracle Net Servicesを介してゲートウェイと通信できるようにOracleデータベース・サーバーを構成する必要があります。

2.3.1 Oracleデータベース・サーバー用のOracle Net Servicesの構成

サーバーを構成するには、接続記述子をtnsnames.oraファイルに追加します。Oracle Net ServicesアシスタントまたはOracle Net Services Easy Configの各ツールは、tnsnames.oraファイルの構成に使用できません。手動でファイルを編集する必要があります。


関連資料:

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

Oracleデータベース・サーバーがゲートウェイにアクセスするには、Oracleデータベース・サーバーに接続場所を伝えるためにtnsnames.oraファイルにサービス名エントリまたは接続記述子名エントリが必要です。デフォルトでは、このファイルは、ORACLE_HOME\network\adminにあります。ORACLE_HOMEはOracleデータベース・サーバーがインストールされているディレクトリです。tnsnames.oraファイルは、ゲートウェイではなく、ゲートウェイにアクセスするOracleデータベース・サーバーに必要です。

2.3.1.1 tnsnames.oraの構成

ゲートウェイの接続記述子を追加するには、tnsnames.oraファイルを編集します。次に示すのは、Oracleデータベース・サーバーがゲートウェイにアクセスするために必要なTCP/IPプロトコルを使用するOracle Net Servicesエントリの例です。

connect_descriptor=
   (DESCRIPTION=
      (ADDRESS=
         (PROTOCOL=TCP)
         (HOST=host_name)
         (PORT=port_number)
      )
      (CONNECT_DATA=
         (SID=gateway_sid))
      (HS=OK))

変数の説明:

変数 説明
connect_descriptor tg4msqlなど、データベース・リンクを作成する際に指定される、接続先のオブジェクトの記述子です。

Oracleデータベース・サーバーのORACLE_HOMEにあるsqlnet.oraファイルに、次の行があるかどうかを確認してください。

  • names.directory_path = (TNSNAMES, HOSTNAME)

  • names.default_domain = world

  • name.default_zone = world

注意: Oracleデータベース・サーバーがMicrosoft Windows上にある場合、ファイルはORACLE_HOME\network\admin\sqlnet.oraとなります。

sqlnet.oraファイルにこれらの行がある場合、connect_descriptorは拡張子.worldで終わる必要があります。

TCP TCP/IP接続に使用されるTCPプロトコルです。
host_name ゲートウェイが稼働しているマシンを指定します。
port_number ゲートウェイをリスニングするOracle Net ServicesのTNSリスナーで使用されるポート番号です。TNSリスナーのポート番号は、TNSリスナーで使用されるlistener.oraファイルに指定されています。「listener.oraファイル内のリスニングに使用するアドレスの例」を参照してください。
gateway_sid ゲートウェイのSIDを指定します。ゲートウェイをリスニングするTNSリスナーのlistener.oraファイルに指定されているSIDと同じです。詳細は、「タスク1: ゲートウェイ用のOracle Net ServicesのTNSリスナーの構成」を参照してください。
(HS=OK) この接続記述子がOracle異機種間サービス・オプションを使用することを指定します。

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

Oracleデータベース・サーバーに接続されているOracleクライアントは、ゲートウェイを介してMicrosoft SQL Serverデータにアクセスできます。OracleクライアントとOracleデータベース・サーバーは、異なるマシン上に存在させることができます。ゲートウェイでは、Oracleデータベース・サーバーからの接続のみ受け入れます。

ゲートウェイへの接続は、Oracleセッションでゲートウェイが初めて使用されるときに、データベース・リンクを介して確立されます。ここで、接続とは、Oracleデータベース・サーバーとゲートウェイの間の接続を指します。接続は、Oracleセッションが終了するまで確立されたままです。別のセッションやユーザーは、同じデータベース・リンクにアクセスし、ゲートウェイとMicrosoft SQL Serverデータベースに個別に接続できます。

データベース・リンクは、ゲートウェイ・セッションの継続中はアクティブです。セッション中にデータベース・リンクをクローズする場合は、ALTER SESSION文を使用します。分散データベース・システムのデータベースおよびアプリケーションの管理者は、Microsoft SQL Serverデータベースへのパスを定義する必要なデータベース・リンクを管理する必要があります。


関連資料:

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

2.5 ゲートウェイ・パスワード暗号化ツール

ゲートウェイでは、ユーザーIDとパスワードを使用して、リモート・データベース上の情報にアクセスします。リソースのリカバリなどの機能を実行するために、一部のユーザーIDとパスワードをゲートウェイ初期化ファイルに定義しておく必要があります。セキュリティに特に注意を払う必要がある現在の環境では、簡単にアクセスできるプレーン・テキストでパスワードを初期化ファイルに格納しておくのは安全とは言えません。パスワードの安全を確保するために、異機種間サービスのGeneric Connectivityにはtg4pwdという暗号化ユーティリティが追加されています。このユーティリティには、このゲートウェイからアクセスできます。機密情報の値が含まれる初期化パラメータを暗号化された形で格納できます。


関連資料:

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

2.6 複数のMicrosoft SQL Serverデータベース用のゲートウェイの構成

複数のMicrosoft SQL Serverデータベースにアクセスするゲートウェイを構成するためのタスクは、1つのデータベース用にゲートウェイを構成するためのタスクに似ています。構成の例では、次のことを想定しています。

追加されたMicrosoft SQL Serverデータベース用のゲートウェイの構成は、1つのデータベース用の構成と似ており、次のタスクで構成されています。

2.6.1 複数データベースの例: ゲートウェイの構成

各Microsoft SQL Serverデータベース用に2つのシステムIDを選択

ゲートウェイの個々のインスタンスは、異なるMicrosoft SQL Serverデータベースにアクセスします。各インスタンスには、固有のゲートウェイ・システムID(SID)が必要です。この例の場合、Microsoft SQL Serverデータベースにアクセスするインスタンスに対して、次のようにゲートウェイSIDが選択されています。

  • データベースdb2にアクセスするゲートウェイにはtg4msql2

  • データベースdb3にアクセスするゲートウェイにはtg4msql3

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

元の初期化パラメータ・ファイルORACLE_HOME\tg4msql\admin\inittg4msql.oraを2回コピーし、一方のファイルにはdb2のゲートウェイSIDを、もう一方のファイルにはdb3のゲートウェイSIDを使用して名前を付け、ゲートウェイのインスタンスごとに初期化パラメータ・ファイルを作成します。

> cd ORACLE_HOME\tg4msql\admin
> copy inittg4msql.ora inittg4msql2.ora
> copy inittg4msql.ora inittg4msql3.ora

新しいファイルのHS_FDS_CONNECT_INFOパラメータの値を変更します。

inittg4msql2.oraの場合は、次のように入力します。

HS_FDS_CONNECT_INFO=msql_nt2.db2

inittg4msql3.ora場合は、次のように入力します。

HS_FDS_CONNECT_INFO=msql_nt3.db3


注意:

接続ごとに異なるゲートウェイ・パラメータ設定を使用するため、同じMicrosoft SQL Serverデータベースに対して複数のゲートウェイSIDがある場合、同じ手順に従います。複数の初期化パラメータ・ファイルを作成し、それぞれに異なるSIDおよび異なるパラメータ設定を使用します。

2.6.2 複数データベースの例: Oracle Net Servicesリスナーの構成

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

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

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

SID_LIST_LISTENER=
(SID_LIST=
   (SID_DESC=
      (SID_NAME=tg4msql)
      (ORACLE_HOME=oracle_home_directory)
      (PROGRAM=tg4msql)
   )
   (SID_DESC=
      (SID_NAME=tg4msql2)
      (ORACLE_HOME=oracle_home_directory)
      (PROGRAM=tg4msql)
   )
   (SID_DESC=
      (SID_NAME=tg4msql3)
      (ORACLE_HOME=oracle_home_directory)
      (PROGRAM=tg4msql)
   )
)

2.6.3 複数データベースの例: TNSリスナーの停止および起動

  1. Windowsの「コントロール パネル」から「サービス」を選択します。(たとえば、Windows 2000の場合、Windowsの「スタート」メニューから「設定」「コントロール パネル」「管理ツール」「サービス」の順に選択します。)

  2. ゲートウェイ用のTNSListenerサービスを選択します。

  3. 「停止」をクリックします。

  4. 「開始」をクリックします。

2.6.4 複数データベースの例: ゲートウェイ・アクセス用のOracleデータベース・サーバーの構成

2.6.4.1 複数のゲートウェイ・インスタンス用のOracleデータベース・サーバー上でのOracle Net Servicesの構成

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

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

old_db_using=(DESCRIPTION=
              (ADDRESS=
                (PROTOCOL=TCP)
                (PORT=1541)
                (HOST=gtwhost))
                (CONNECT_DATA=
                    (SID=tg4msql))
               (HS=OK))
new_db2_using=(DESCRIPTION=
              (ADDRESS=
                (PROTOCOL=TCP)
                (PORT=1541)
                (HOST=gtwhost))
                (CONNECT_DATA=
                    (SID=tg4msql2))
                (HS=OK))
new_db3_using=(DESCRIPTION=
              (ADDRESS=
                (PROTOCOL=TCP)
                (PORT=1541)
                (HOST=gtwhost))
                (CONNECT_DATA=
                    (SID=tg4msql3))
                (HS=OK))

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

2.6.5 複数データベースの例: Microsoft SQL Serverデータへのアクセス

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

SQL> CREATE PUBLIC DATABASE LINK MSQL2 CONNECT TO
  2  user2 IDENTIFIED BY password2 USING 'new_db2_using';

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

SQL> CREATE PUBLIC DATABASE LINK MSQL3 CONNECT TO
  2  user3 IDENTIFIED BY password3 USING 'new_db3_using';


注意:

通常は初期化ファイルにプレーン・テキストとして格納される初期化パラメータを暗号化するには、『Oracle Database Heterogeneous Connectivity管理者ガイド』の説明に従って、tg4pwdユーティリティを使用する必要があります。

データベース・リンクが確立されると、次のように新しいMicrosoft SQL Serverデータに問い合せることができます。

SQL> SELECT * FROM ALL_USERS@MSQL2;

または

SQL> SELECT * FROM ALL_USERS@MSQL3;

2.7 構成タスクの実行

次の構成タスクを実行できます。

2.7.1 2フェーズ・コミット用の構成

ゲートウェイでは、次のトランザクション機能がサポートされています。

  • COMMIT_CONFIRM

  • READ_ONLY

  • SINGLE_SITE

  • TWO_PHASE_COMMIT

デフォルトでは、ゲートウェイはCOMMIT_CONFIRMトランザクション・モードで稼働します。Microsoft SQL Serverデータベースがトランザクションにより更新されると、ゲートウェイはコミット・ポイント・サイトになります。Oracleデータベース・サーバーは、トランザクション内のすべてのOracleデータベースでトランザクションが正常に準備されたことを確認してから、Microsoft SQL Serverデータベースの作業単位をコミットします。Oracleの2フェーズ・コミット・トランザクションにコミット・ポイント・サイトとして加えることができるゲートウェイは1つのみです。


関連資料:

2フェーズ・コミット処理の詳細は『Oracle Database Heterogeneous Connectivity管理者ガイド』を参照してください。

COMMIT_CONFIRMトランザクション・モードを使用できるようにするには、リカバリ・アカウントおよびパスワードを作成し、ログ表を作成します。ログ表は、デフォルトではHS_TRANSACTION_LOGという名前です。このファイルに2フェーズ・コミット・トランザクションが記録されます。

2.7.1.1 タスク1: リカバリ・アカウントおよびパスワードの作成

ゲートウェイで分散トランザクションをリカバリするには、リカバリ・アカウントとパスワードをMicrosoft SQL Serverデータベースに設定する必要があります。デフォルトでは、アカウントのユーザー名とパスワードはどちらもRECOVERです。アカウントの名前は、ゲートウェイ初期化パラメータHS_FDS_RECOVERY_ACCOUNTを使用して変更できます。アカウントのパスワードは、ゲートウェイ初期化パラメータHS_FDS_RECOVERY_PWDを使用して変更できます。


注意:

ユーザー名とパスワードにはデフォルト値のRECOVERを使用しないことをお薦めします。また、ユーザー名とパスワードを初期化ファイルにプレーン・テキストで保存するのは、セキュリティ・ポリシーとして適切ではありません。tg4pwdというユーティリティを使用して、暗号化する必要があります。詳細は、『Oracle Database Heterogeneous Connectivity 管理者ガイド』の第4章「初期化パラメータの暗号化」を参照してください。

  1. ユーザー・アカウントをMicrosoft SQL Serverデータベースに設定します。ユーザー名とパスワードはどちらも有効なMicrosoft SQL Serverのユーザー名とパスワードである必要があります。

  2. 初期化パラメータ・ファイルに、次のゲートウェイ初期化パラメータを設定します。

2.7.1.2 タスク2: トランザクション・ログ表の作成

2フェーズ・コミット用にゲートウェイを構成する場合、トランザクションのロギング用に表をMicrosoft SQL Serverデータベースに作成する必要があります。ゲートウェイではトランザクション・ログ表を使用して、ゲートウェイによりMicrosoft SQL Serverデータベースで開始され、表に登録された、失敗したトランザクションのステータスを確認します。


注意:

トランザクション・ログ表への更新は、Oracle分散トランザクションの一部として実行することはできません。


注意:

トランザクション・ログ表の情報は、リカバリ処理で必要となり、変更することはできません。この表の使用、アクセスまたは更新は、ゲートウェイによってのみ実行される必要があります。

表HS_TRANSACTION_LOGは、GLOBAL_TRAN_ID(データ型CHAR(64) NOT NULL)とTRAN_COMMENT(データ型CHAR(255))の2つの列で構成されています。

HS_FDS_TRANSACTION_LOG初期化パラメータを使用して別の名前を指定すると、HS_TRANSACTION_LOG以外の別の名前をログ表に使用できます。


関連項目:

HS_FDS_TRANSACTION_LOG初期化パラメータの詳細は、付録D「異機種間サービス初期化パラメータ」を参照してください。

「タスク1: リカバリ・アカウントおよびパスワードの作成」で作成したユーザー・アカウントでトランザクション・ログ表を作成します。トランザクション・ログ表は、ゲートウェイ・トランザクションのステータスを記録するために使用されるため、Microsoft SQL Serverの更新が実行されるデータベースに存在する必要があります。また、トランザクション・ログ表は、リカバリ・アカウントの所有者で作成される必要があります。


注意:

トランザクション・ログ表を使用するには、表に対する権限がゲートウェイのユーザーに付与されている必要があります。

トランザクション・ログ表を作成するには、ORACLE_HOME\tg4msql\adminディレクトリにあるtg4msql_tx.sqlスクリプトを使用します。ORACLE_HOMEは、ゲートウェイがインストールされているディレクトリです。次のように、isqlを使用してコマンド・プロンプトでスクリプトを実行します。

> isql -Urecovery_account -Precovery_account_password [-Sserver] -itg4msql_tx.sql

2.7.2 所有者の指定

Microsoft SQL Serverに定義されているMicrosoft SQL Serverの表に対するデフォルトの所有者名を使用したり、SQL文に別の所有者を明示的に指定するかわりに、SQL文に名前が明示的に指定されていない場合に必ず使用されるデフォルトの所有者を指定できます。

所有者を指定するには、初期化パラメータ・ファイルでゲートウェイ初期化パラメータHS_FDS_DEFAULT_OWNERを設定します。


関連項目:

HS_FDS_DEFAULT_OWNER初期化パラメータの詳細は、付録D「異機種間サービス初期化パラメータ」を参照してください。