Oracle® Transparent Gateway for Microsoft SQL Server管理者ガイド 10gリリース1(10.1) for Microsoft Windows 部品番号: B13886-01 |
|
ゲートウェイをインストールした後に、次のタスクを実行して、Microsoft SQL Server用にゲートウェイを構成します。
次のタスクを実行して、Oracle Transparent Gateway for Microsoft SQL Serverを構成します。
ゲートウェイ・システム識別子(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を定義します。
初期化パラメータ・ファイルは、ゲートウェイの起動時に使用できる必要があります。インストール時に、次のデフォルトの初期化パラメータ・ファイルが作成されます。
%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を省略すると(ただしピリオドを含む)、ゲートウェイでは、次のWindows NTレジストリのサブツリーを使用して、server_nameを特定します。
HKEY_LOCAL_MACHINE¥
SOFTWARE¥
Microsoft¥
MSSQLServer¥
Client¥
ConnectTo
ゲートウェイの動作を変更するために、多数の初期化パラメータを使用することもできます。後からシステム要件に合せて、初期化パラメータ・ファイルを変更することは可能です。
関連資料:
初期化パラメータ・ファイルのカスタマイズの詳細は、付録D「異機種間サービス初期化パラメータ」および『Oracle Database Heterogeneous Connectivity管理者ガイド』を参照してください。 |
ゲートウェイには、透過的なデータ・アクセスを提供するためにOracle Net Servicesが必要です。ゲートウェイを構成した後に、Oracle Net Servicesをゲートウェイと連動するよう構成します。
Oracle Net Servicesでは、TNSリスナーを使用してOracle Net Servicesクライアントから着信接続要求を受信します。TNSリスナーおよびゲートウェイは、同じマシン上に存在する必要があります。
TNSリスナーは、Oracleデータベース・サーバーからの着信要求をリスニングします。TNSリスナーがゲートウェイをリスニングするには、ゲートウェイの情報をTNSリスナー構成ファイルlistener.ora
に追加する必要があります。このファイルは、%ORACLE_HOME%¥network¥admin
にあります。%ORACLE_HOME%はゲートウェイがインストールされているディレクトリです。
次のエントリを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の値は、他のリスナーのポート番号とは異なる必要があります。 |
着信接続要求に応答してTNSリスナーにゲートウェイを起動させるには、次の構文を使用してエントリをlistener.ora
ファイルに追加します。
SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (SID_NAME=gateway_sid) (ORACLE_HOME=oracle_home_directory) (PROGRAM=tg4msql) ) )
パラメータの説明:
複数のデータベース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) ) )
TNSリスナーは、新しい設定の使用を開始するために、次のようにして起動する必要があります。
ゲートウェイを使用してMicrosoft SQL Serverデータにアクセスする前に、Oracle Net Servicesを介してゲートウェイと通信できるようにOracleデータベース・サーバーを構成する必要があります。
サーバーを構成するには、接続記述子をtnsnames.ora
ファイルに追加します。Oracle Net Services AssistantまたはOracle Net Services Easy Configの各ツールは、tnsnames.ora
ファイルの構成に使用できません。手動でファイルを編集する必要があります。
Oracleデータベース・サーバーがゲートウェイにアクセスするには、Oracleデータベース・サーバーに接続場所を伝えるためにtnsnames.oraファイルにサービス名エントリまたは接続記述子名エントリが必要です。デフォルトでは、このファイルは%ORACLE_HOME%¥network¥admin
にあります。%ORACLE_HOME%は、Oracleデータベース・サーバーがインストールされているディレクトリです。tnsnames.ora
ファイルは、ゲートウェイではなく、ゲートウェイにアクセスするOracleデータベース・サーバーに必要です。
ゲートウェイの接続記述子を追加するには、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ファイルに、次の行があるかどうかを確認してください。 注意: Oracleデータベース・サーバーがMicrosoft Windows NT上にある場合、ファイルは |
|
TCP/IP接続に使用されるTCPプロトコルです。 |
host_name |
ゲートウェイが稼働しているマシンを指定します。 |
port_number |
ゲートウェイをリスニングするOracle Net ServicesのTNSリスナーで使用されるポート番号です。TNSリスナーのポート番号は、TNSリスナーで使用される |
gateway_sid |
ゲートウェイのSIDを指定します。ゲートウェイをリスニングするTNSリスナーの |
|
この接続記述子がOracle異機種間サービス・オプションを使用することを指定します。 |
Oracleデータベース・サーバーに接続されているOracleクライアントは、ゲートウェイを介してMicrosoft SQL Serverデータにアクセスできます。OracleクライアントとOracleデータベース・サーバーは、異なるマシン上に存在させることができます。ゲートウェイでは、Oracleデータベース・サーバーからの接続のみ受け入れます。
ゲートウェイへの接続は、Oracleセッションでゲートウェイが初めて使用されるときに、データベース・リンクを介して確立されます。ここで、接続とは、Oracleデータベース・サーバーとゲートウェイの間の接続を指します。接続は、Oracleセッションが終了するまで確立されたままです。別のセッションやユーザーは、同じデータベース・リンクにアクセスし、ゲートウェイとMicrosoft SQL Serverデータベースに個別に接続できます。
データベース・リンクは、ゲートウェイ・セッションの継続中はアクティブです。セッション中にデータベース・リンクをクローズする場合は、ALTER SESSION文を使用します。分散データベース・システムのデータベースおよびアプリケーションの管理者は、Microsoft SQL Serverデータベースへのパスを定義する必要なデータベース・リンクを管理する必要があります。
複数のMicrosoft SQL Serverデータベースにアクセスするゲートウェイを構成するためのタスクは、1つのデータベース用にゲートウェイを構成するためのタスクに似ています。構成の例では、次のことを想定しています。
追加されたMicrosoft SQL Serverデータベース用のゲートウェイの構成は、1つのデータベース用の構成と似ており、次のタスクで構成されています。
ゲートウェイの個々のインスタンスは、異なるMicrosoft SQL Serverデータベースにアクセスします。各インスタンスには、固有のゲートウェイ・システムID(SID)が必要です。この例の場合、Microsoft SQL Serverデータベースにアクセスするインスタンスに対して、次のようにゲートウェイSIDが選択されています。
元の初期化パラメータ・ファイル%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
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つの接続記述子エントリを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
ファイルに指定されています。
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';
データベース・リンクが確立されると、次のように新しいMicrosoft SQL Serverデータに問い合せることができます。
SQL> SELECT * FROM ALL_USERS@MSQL2;
または
SQL> SELECT * FROM ALL_USERS@MSQL3;
次の構成タスクを実行できます。
ゲートウェイでは、次のトランザクション機能がサポートされています。
デフォルトでは、ゲートウェイはCOMMIT_CONFIRMトランザクション・モードで稼働します。Microsoft SQL Serverデータベースがトランザクションにより更新されると、ゲートウェイはコミット・ポイント・サイトになります。Oracleデータベース・サーバーは、トランザクション内のすべてのOracleデータベースでトランザクションが正常に準備されたことを確認してから、Microsoft SQL Serverデータベースの作業単位をコミットします。Oracleの2フェーズ・コミット・トランザクションにコミット・ポイント・サイトとして加えることができるゲートウェイは1つのみです。
COMMIT_CONFIRMトランザクション・モードを使用できるようにするには、リカバリ・アカウントおよびパスワードを作成し、ログ表を作成します。ログ表は、デフォルトではHS_TRANSACTION_LOGという名前です。このファイルに2フェーズ・コミット・トランザクションが記録されます。
ゲートウェイで分散トランザクションをリカバリするには、リカバリ・アカウントとパスワードをMicrosoft SQL Serverデータベースに設定する必要があります。デフォルトでは、アカウントのユーザー名とパスワードはどちらもRECOVER
です。アカウントの名前は、ゲートウェイ初期化パラメータHS_FDS_RECOVERY_ACCOUNTを使用して変更できます。アカウントのパスワードは、ゲートウェイ初期化パラメータHS_FDS_RECOVERY_PWDを使用して変更できます。
初期化パラメータ・ファイルの編集の詳細は、「タスク2: 初期化パラメータ・ファイルのカスタマイズ」を参照してください。HS_FDS_RECOVERY_ACCOUNTおよびHS_FDS_RECOVERY_PWDの詳細は、付録D「異機種間サービス初期化パラメータ」を参照してください。
関連項目:
2フェーズ・コミット用にゲートウェイを構成する場合、トランザクションのロギング用に表をMicrosoft SQL Serverデータベースに作成する必要があります。ゲートウェイではトランザクション・ログ表を使用して、ゲートウェイによりMicrosoft SQL Serverデータベースで開始され、表に登録された、失敗したトランザクションのステータスを確認します。
表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
Microsoft SQL Serverに定義されているMicrosoft SQL Serverの表に対するデフォルトの所有者名を使用したり、SQL文に別の所有者を明示的に指定するかわりに、SQL文に名前が明示的に指定されていない場合に必ず使用されるデフォルトの所有者を指定できます。
所有者を指定するには、初期化パラメータ・ファイルでゲートウェイ初期化パラメータHS_FDS_DEFAULT_OWNERを設定します。
関連項目:
HS_FDS_DEFAULT_OWNER初期化パラメータの詳細は、付録D「異機種間サービス初期化パラメータ」を参照してください。 |
|
Copyright © 2002, 2004, Oracle. All rights reserved. |
|