2 Oracle Services for Microsoft Transaction Serverのインストール
これらのトピックでは、Microsoft Transaction ServerおよびOracle Database環境のためのインストール要件について説明します。
インストールの概要
OraMTSは、Oracle Database Clientの一部としてインストールできます。OraMTSサービスは、インストールしたOracleホームに対して作成されます。Oracle 12c以降、各Oracleホームには独自のOraMTS RecoveryのWindowsサービスがあります。また、Oracle 12c以降、OraMTSサービスはOracleホーム・ユーザーとして実行されます。
Oracleホーム・ユーザーは、Oracleホームから実行されるOracleサービスの所有者で、インストール後は変更できません。Windows組込みアカウントまたはWindowsユーザー・アカウントを指定できます。セキュリティを強化するため、Oracle Databaseのインストールで、Windowsの組込みアカウントではなく標準のWindowsユーザー・アカウントをOracleホーム・ユーザーとして選択することをお薦めします。Oracleホーム・ユーザーの主な目的は、Windowsユーザー・アカウントを使用してWindowsサービスを実行することです。ただし、このユーザー・アカウント(Oracleホーム・ユーザー)は、データベース管理に使用することのない権限の低いユーザー・アカウントである必要があります。これによって、Oracleホーム・ユーザーで実行するOracle Databaseサービスが持つ権限が、Oracle製品を実行するときに必要な最低限の権限のみになります。Windowsユーザー・アカウントには、ローカル・ユーザー、ドメイン・ユーザーまたは管理対象サービス・アカウントを指定できます。
ソフトウェアのみのインストール、クローン・サイクルまたはデータベースでのAddNode
操作などの一部の場合に、OraMTSサービスを手動で作成する必要がある場合があります。
このトピックでは、OraMTS用にインストールが必要なOracle製品およびOracle以外の製品について説明します。追加のインストール要件は次のとおりです。Oracle Data Provider for .NET(ODP.NET)クラスタ構成(または任意のフェイルオーバー構成)の場合、Microsoft分散トランザクション・コーディネータ(MS DTC)コンポーネントが稼働しているノードにMicrosoft Transaction Serverをインストールします。これにより、フェイルオーバー中にOracle MTS Recovery Serviceがクライアント・アプリケーションとともに移行されます。これは、リカバリ・トランザクションのスケジューリング時に構成できます。
Microsoft Transaction Serverのインストール要件
Microsoft Transaction ServerがインストールされているWindowsコンピュータの製品要件は次のとおりです。
Oracle製品
-
次のようなOracle Services for MTSを使用するデータ・アクセス・ドライバ
-
Oracle Database 11gリリース2以上のバージョンへのアクセス
注意:
-
Oracle ODBCドライバ、ODP.NET、Oracle Provider for OLE DBおよびOCIは、これらの各製品が必要とされるコンポーネントを作成または使用する場合にのみ必要です。
-
インストールによっては、Oracle MTS Recovery Serviceがインダウト・トランザクションを解決するためにリクエストをリスニングするポートの番号を入力するよう求められます。
分散トランザクション
分散トランザクションは1つ以上の文からなり、それらが個別に、またはグループとして、分散データベースの複数ノードのデータを更新します。
ODP.NET管理対象ドライバと管理対象外ドライバは、Microsoft Distributed Transaction Coordinator (MSDTC)およびOracleデータベースと統合されます。MSDTCは、同じSystem.Transactions
オブジェクトに入っているあらゆるリソース・マネージャと連係し、2フェーズ・コミットまたはロールバックをアトミックに実行します。これにより、Oracle分散トランザクションをネットワークで適切にコミットまたはロールバックできます。
ODP.NETでは、分散トランザクションにコミット読取り分離レベルのみがサポートされています。
注意:
ODP.NET Coreは分散トランザクションをサポートしていません。
Microsoft Distributed Transaction Coordinatorの統合
管理対象ODP.NETには、分散トランザクション登録、コミットおよびロールバックのためにMSDTCとの統合をサポートする、ネイティブで完全な管理対象実装が含まれます。
管理対象外ODP.NETの場合、Oracle Services for Microsoft Transaction (OraMTS)がMSDTCとの統合を提供し、クライアント・コンポーネントがOracleデータベース分散トランザクションに参加できるようになります。OraMTSは、MSDTCに対するOracleデータベースのプロキシとして動作し、Oracle分散データベース・トランザクションを残りの分散トランザクションとともにコミットまたはロールバックできるようにします。
管理対象外ODP.NETは、管理対象または管理対象外のOraMTS実装を使用できます。Oracle RACまたはData Guardからの高可用性を必要とするアプリケーションでは、管理対象OraMTSの使用をお薦めします。
分散トランザクションでネットワーク障害やサーバー・ハードウェア障害などの障害が発生した場合、インプロセス・トランザクションをインダウトにしておくことができます。管理対象および管理対象外のODP.NETはどちらも、OraMTSリカバリ・サービスを使用して、これらのインダウト・トランザクションを解決します。このリカバリ・サービスはWindowsサービスとして実行されます。管理者は、OraMTS Windowsリカバリ・サービスをインストールおよび構成して、管理対象と管理対象外のどちらのODP.NETを使用するかについてのリカバリ・シナリオを管理する必要があります。各マシンに必要なリカバリ・サービスは1つのみです。
ODP.NETが実行されMSDTCに参加しているすべてのクライアント・マシンに、OraMTSリカバリ・サービスをインストールする必要があります。マシンには複数のIPアドレスが存在する可能性があるため、管理対象ODP.NETアプリケーションの管理者は、実行中のリカバリ・サービスがあるホスト・マシン名またはIPアドレスをアプリケーションの.NET構成ファイルで指定できます。ODP.NET, Unmanaged Driverは、リカバリ・サービスのIP/マシン名を自動的に解決します。
表2-1 分散トランザクションでサポートされるODP.NETのタイプと.NET Frameworkのバージョン
ODP.NETタイプ | .NET Frameworkバージョン | 分散トランザクションのサポート |
---|---|---|
管理対象 |
4.5.2以上 |
分散トランザクションに対する.NET Frameworkのネイティブ管理対象実装。 |
管理対象外 |
4.5.2以上 |
OraMTS (デフォルト)または管理対象OraMTS実装。Oracle RACまたはData Guardによる高可用性が必要な管理対象外ODP.NETアプリケーションには、OraMTSを使用することが推奨されます。 |
管理対象外 |
3.5 |
OraMTS |
注意:
.NET Framework 4ファミリ内の.NET Framework 4.5.1以下は、MicrosoftおよびOracleでサポートされていません。
関連項目:
『Oracle Services for Microsoft Transaction Server開発者ガイド for Microsoft Windows』のOracle MTS Recovery Serviceの手動作成に関する項。
ODP.NET, Managed Driverの設定
この項では、ODP.NET, Managed Driverで分散トランザクションを使用するのに必要な設定および構成ステップを説明します。これらの.NET Frameworkバージョンで分散トランザクションを構成するには、次のステップに従います。
-
Oracle MTS Recovery Serviceを作成して設定するか、既存のリカバリ・サービスが実行中であることを確認します。
-
.NET構成で
OMTSRECO_PORT
の値を設定し、OraMTS Recovery Serviceが実行されているポート番号を指定します。
ODP.NET, Unmanaged Driverの設定
この項では、ODP.NET, Unmanaged Driverで分散トランザクションを使用するのに必要な設定および構成ステップを説明します。
.NET Framework 4.5.2以上の場合、ODP.NET管理対象外ドライバのアセンブリには管理対象OraMTSが含まれます。OraMTSは、アップグレード時に実装を継続できるよう、ODP.NET管理対象外ドライバのデフォルトのオプションです。ただし、Oracle Real Application ClustersまたはOracle Data Guardとともに高可用性FAN操作(HA Events = true)を使用する場合、管理対象OraMTSオプションを使用することをお薦めします。管理対象OraMTSオプションでは高可用性機能がサポートされますが、従来のOraMTSではサポートされません。
アプリケーションでは、.NET構成ファイルのUseOraMTSManaged
パラメータを使用して、OraMTS (デフォルト)または管理対象OraMTSの使用を設定できます。
ODP.NET管理対象外ドライバに従来のOraMTS実装を使用するリカバリ・サービスを含めて、OraMTSをインストールして構成します。
管理対象OraMTSを設定するには、次のステップを実行します。
-
.NET構成ファイルで、
UseOraMTSManaged
をtrue
に設定します。 -
Oracle MTS Recovery Serviceを作成して設定するか、既存のリカバリ・サービスが実行中であることを確認します。
関連項目:
.NET構成の設定の詳細は、「distributedTransactionセクション」を参照してください
Oracle MTS Recovery Serviceの手動作成
Oracle Database 12c以降、Windowsソフトウェア上のOracle Databaseには、OraMTS Recovery Serviceの手動による作成を有効にするためのoramtsctl.exe
ユーティリティが含まれています。ODP.NET, Managed DriverとUnmanaged Driverは両方とも、OraMTSが不要な完全に管理されたMS DTCソリューションを使用することを選択できます。ただし、いずれの場合にも、Oracle MTS Recovery Serviceは設定する必要があります。MS DTCを使用するOracleクライアント・マシンごとに、1つのOracle MTS Recovery Serviceを構成する必要があります。その1つのサービスを使用して、同じマシン上の複数のOracleアプリケーションを共有できます。実行時に、現在のOracleホームにサービスが作成され、Oracleホーム・ユーザーとして実行されます。
Oracle MTS Recovery Serviceを手動で作成する手順は次のとおりです。
-
Oracle Databaseをインストールします。
-
コマンド・プロンプトを開きます。
-
次のコマンドを実行します。
oramtsctl -new
Oracle MTS Recovery Serviceを削除するには、次を実行します。
oramtsctl -new
oramtsctl -delete
使用方法
oramtsctl <-new|-delete|-start|-stop|-status|-config|-passwd|-trace|-trcdir> [-host <hostname|IP_address> ...] [-port <number>] [-ip <IP_address>] [-dtchost <DTC_hostname>] [-cluster <on|off>] [-default] -new
新しいOracler1MTSRecoveryService
サービスを作成して開始します。
-delete [Oracle_home_directory]
現在のホームまたは指定されたホームのOracler1MTSRecoveryService
を削除します。
-start
Oracler1MTSRecoveryService
サービスを開始します。
-stop
Oracler1MTSRecoveryService
サービスを停止します。
-status Query Oracler1MTSRecoveryService
サービス・ステータス。
-config [-port <number>] [-ip <IP_address>] [-dtchost <DTC_hostname>] [-cluster <on|off>] [-default]
Oracler1MTSRecoveryService
サービスの構成を表示または設定します。
-defaultを使用して、Oracler1MTSRecoveryService
の構成をリセットします。
-passwd
Oracler1MTSRecoveryService
サービスのユーザー・パスワードを更新します。
-trace [0-5]
トレースを表示またはトレース・レベルを設定します。トレースを無効にするにはレベル0を設定します。
-trcdir [trace_directory]
トレース・ディレクトリを表示または設定します。
-host <hostname|IP_address> ...
名前またはIPアドレスで特定されるホストで操作を実行します。
オプションが指定されていない場合は、ローカル・ホストが使用されます。
-port <number>
サービス・ポートを指定するには、このオプションで-new
または-config
を実行します。
オプションが指定されない場合、サービス・ポートは自動的に構成されます。
-ip <IP_address>
IPアドレスを指定するには、このオプションで-new
または-config
を実行します。
-default
デフォルト構成を設定するには、このオプションで-new
または-config
を実行します。
oramtsctl -new -host host1 host2.domain.com host3 -port 2033
例:
自動構成でサービスをインストールします。
oramtsctl -new
サービスをポート2032にインストールします。
oramtsctl -new -port 2032
ポート2033を使用するようにサービスを構成します。
oramtsctl -config -port 2033
サービスのユーザー・パスワードを更新します。
oramtsctl -passwd
複数のホストにサービスをインストールし、統一ポート2033を使用します。
oramtsctl -new -host host1 host2.domain.com host3 -port 2033