Oracle Transparent Gateway for Microsoft SQL Server管理者ガイド 10gリリース2(10.2)for Microsoft Windows(32-bit) B25367-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を省略すると(ただしピリオドを含む)、ゲートウェイでは、次のMicrosoft Windowsレジストリのサブツリーを使用して、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はゲートウェイがインストールされているディレクトリです。
注意: Oracle Net Servicesを再インストールすると、元のlistener.ora ファイルの名前が変更され、新しいlistener.ora ファイルがORACLE_HOME\network\admin ディレクトリに入ります。
|
次のエントリをlistener.ora
ファイルに追加する必要があります。
TNSリスナーがリスニングに使用するOracle Net Servicesアドレスのリスト
TNSリスナーが着信接続要求に応答して起動するゲートウェイ
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) ) )
変数の説明:
変数 | 説明 |
---|---|
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管理者ガイド』を参照してください。
|
ゲートウェイを使用してMicrosoft SQL Serverデータにアクセスする前に、Oracle Net Servicesを介してゲートウェイと通信できるようにOracleデータベース・サーバーを構成する必要があります。
サーバーを構成するには、接続記述子を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データベース・サーバーに必要です。
ゲートウェイの接続記述子を追加するには、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上にある場合、ファイルは
|
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異機種間サービス・オプションを使用することを指定します。 |
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管理者ガイド』を参照してください。 |
ゲートウェイでは、ユーザーIDとパスワードを使用して、リモート・データベース上の情報にアクセスします。リソースのリカバリなどの機能を実行するために、一部のユーザーIDとパスワードをゲートウェイ初期化ファイルに定義しておく必要があります。セキュリティに特に注意を払う必要がある現在の環境では、簡単にアクセスできるプレーン・テキストでパスワードを初期化ファイルに格納しておくのは安全とは言えません。パスワードの安全を確保するために、異機種間サービスのGeneric Connectivityにはtg4pwdという暗号化ユーティリティが追加されています。このユーティリティには、このゲートウェイからアクセスできます。機密情報の値が含まれる初期化パラメータを暗号化された形で格納できます。
関連資料: このユーティリティの使用の詳細は、『Oracle Database Heterogeneous Connectivity管理者ガイド』を参照してください。 |
複数のMicrosoft SQL Serverデータベースにアクセスするゲートウェイを構成するためのタスクは、1つのデータベース用にゲートウェイを構成するためのタスクに似ています。構成の例では、次のことを想定しています。
ゲートウェイはインストールされ、デフォルトSIDのtg4msql
を使用して構成されています。
ゲートウェイは、db1
という名前の1つのMicrosoft SQL Serverデータベース用に構成されています。
db2およびdb3という名前の2つのMicrosoft SQL Serverデータベースがそれぞれmsql_nt2
およびmsql_nt3
という名前のサーバーに追加されています。
追加されたMicrosoft SQL Serverデータベース用のゲートウェイの構成は、1つのデータベース用の構成と似ており、次のタスクで構成されています。
ゲートウェイの構成
ゲートウェイおよびOracleデータベース・サーバー用のOracle Net Servicesの構成
各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パラメータの値を変更します。
init
tg4msql
2.ora
の場合は、次のように入力します。
HS_FDS_CONNECT_INFO=msql_nt2.db2
init
tg4msql
3.ora
場合は、次のように入力します。
HS_FDS_CONNECT_INFO=msql_nt3.db3
注意: 接続ごとに異なるゲートウェイ・パラメータ設定を使用するため、同じMicrosoft SQL Serverデータベースに対して複数のゲートウェイSIDがある場合、同じ手順に従います。複数の初期化パラメータ・ファイルを作成し、それぞれに異なるSIDおよび異なるパラメータ設定を使用します。 |
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) ) )
Windowsの「コントロール パネル」から「サービス」を選択します。(たとえば、Windows 2000の場合、Windowsの「スタート」メニューから「設定」→「コントロール パネル」→「管理ツール」→「サービス」の順に選択します。)
ゲートウェイ用のTNSListenerサービスを選択します。
「停止」をクリックします。
「開始」をクリックします。
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';
注意: 通常は初期化ファイルにプレーン・テキストとして格納される初期化パラメータを暗号化するには、『Oracle Database Heterogeneous Connectivity管理者ガイド』の説明に従って、tg4pwdユーティリティを使用する必要があります。 |
データベース・リンクが確立されると、次のように新しいMicrosoft SQL Serverデータに問い合せることができます。
SQL> SELECT * FROM ALL_USERS@MSQL2;
または
SQL> SELECT * FROM ALL_USERS@MSQL3;
次の構成タスクを実行できます。
ゲートウェイでは、次のトランザクション機能がサポートされています。
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フェーズ・コミット・トランザクションが記録されます。
ゲートウェイで分散トランザクションをリカバリするには、リカバリ・アカウントとパスワードをMicrosoft SQL Serverデータベースに設定する必要があります。デフォルトでは、アカウントのユーザー名とパスワードはどちらもRECOVER
です。アカウントの名前は、ゲートウェイ初期化パラメータHS_FDS_RECOVERY_ACCOUNTを使用して変更できます。アカウントのパスワードは、ゲートウェイ初期化パラメータHS_FDS_RECOVERY_PWDを使用して変更できます。
注意: ユーザー名とパスワードにはデフォルト値のRECOVERを使用しないことをお薦めします。また、ユーザー名とパスワードを初期化ファイルにプレーン・テキストで保存するのは、セキュリティ・ポリシーとして適切ではありません。tg4pwdというユーティリティを使用して、暗号化する必要があります。詳細は、『Oracle Database Heterogeneous Connectivity 管理者ガイド』の第4章「初期化パラメータの暗号化」を参照してください。 |
ユーザー・アカウントをMicrosoft SQL Serverデータベースに設定します。ユーザー名とパスワードはどちらも有効なMicrosoft SQL Serverのユーザー名とパスワードである必要があります。
初期化パラメータ・ファイルに、次のゲートウェイ初期化パラメータを設定します。
HS_FDS_RECOVERY_ACCOUNTは、リカバリ用に設定したMicrosoft SQL Serverユーザー・アカウントのユーザー名に設定します。
HS_FDS_RECOVERY_PWDは、リカバリ用に設定したMicrosoft SQL Serverユーザー・アカウントのパスワードに設定します。
関連項目: 初期化パラメータ・ファイルの編集の詳細は、「タスク2: 初期化パラメータ・ファイルのカスタマイズ」を参照してください。HS_FDS_RECOVERY_ACCOUNTおよびHS_FDS_RECOVERY_PWDの詳細は、付録D「異機種間サービス初期化パラメータ」を参照してください。 |
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以外の別の名前をログ表に使用できます。
「タスク1: リカバリ・アカウントおよびパスワードの作成」で作成したユーザー・アカウントでトランザクション・ログ表を作成します。トランザクション・ログ表は、ゲートウェイ・トランザクションのステータスを記録するために使用されるため、Microsoft SQL Serverの更新が実行されるデータベースに存在する必要があります。また、トランザクション・ログ表は、リカバリ・アカウントの所有者で作成される必要があります。
注意: トランザクション・ログ表を使用するには、表に対する権限がゲートウェイのユーザーに付与されている必要があります。 |
トランザクション・ログ表を作成するには、ORACLE_HOME\tg4msql\admin
ディレクトリにあるtg4msql_tx.sql
スクリプトを使用します。ORACLE_HOMEは、ゲートウェイがインストールされているディレクトリです。次のように、isqlを使用してコマンド・プロンプトでスクリプトを実行します。
> isql -Urecovery_account -Precovery_account_password [-Sserver] -itg4msql_tx.sql