Oracle RACは、幅広い範囲でデプロイされるデータベースの高可用性ソリューションです。コンポーネントのほとんどでは、そのデータの永続ストアとしてデータベースが使用されます。ここでOracle Databaseを使用すると、高可用性の様々な構成が可能になります。
データベースのオプションの詳細は、『Oracle Database高可用性概要』を参照してください。
親トピック: 高可用性環境の作成
クラスタは、相互に接続された複数のコンピュータまたはサーバーで構成され、エンド・ユーザーおよびアプリケーションからは1つのサーバーとして認識されます。Oracle RACは、Oracle Databaseのクラスタを構成し、スケーラビリティおよび可用性に優れています。
Oracle WebLogic ServerにデプロイされるOracle Fusion Middlewareコンポーネントはすべて、Oracle RACをサポートします。
クラスタ内のすべてのOracle RACインスタンスは、同じアクセス権および認可レベルを持ちます。ノードおよびインスタンスに障害が発生しても、障害が発生していないサーバー・インスタンスでデータベース・サービスが利用可能であるか、利用可能な状態にすることができるため、パフォーマンスに影響を及ぼす場合はありますが、停止することはありません。
このロードマップを使用して、Oracle RACを設定します。
表5-1に、Oracle RACの設定タスクの概要と関連する情報を示します。
表5-1 Oracle RACの設定手順
タスク/項目 | 参照先 |
---|---|
Oracle RACについて |
『Oracle Real Application Clusters管理およびデプロイメント・ガイド』のOracle RACの概要に関する項 |
Oracle RACのインストール |
Oracle Real Application Clusters管理およびデプロイメント・ガイド |
Oracle RACの管理 |
『Oracle Real Application Clusters管理およびデプロイメント・ガイド』のOracle RAC環境の管理の概要に関する項 |
GridLinkおよびマルチ・データ・ソースの構成とチューニング |
Oracle Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの構成と管理 |
単一クライアント・アクセス名(SCAN)のURLの構成(WebLogicコンソールで、TNSおよびONSのリスナーに使用するホストとポートを指定します) |
『Oracle Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの構成と管理』のSCANアドレスに関する項。 |
接続プールを確立する場合、Oracle Fusion Middlewareでは、(XA JDBCドライバとXA以外のJDBCドライバ両方に対して)Oracle RACバックエンドのアクティブなGridLinkデータ・ソースおよびマルチ・データ・ソースがサポートされます。これらのデータ・ソースでも同様に、Oracle RACノード全体のロード・バランシングがサポートされます。
Oracle RACのノードまたはインスタンスに障害が発生すると、WebLogic ServerまたはOracle Thin JDBCドライバによって、セッション・リクエストがクラスタ内の別のノードにリダイレクトされます。既存の接続はフェイルオーバーしません。新しいアプリケーションの接続要求は、WebLogicプールの既存の接続を使用して処理されるか、稼働中のOracle RACインスタンスへの新しい接続によって処理されます。
データベースがトランザクション・マネージャの場合、通常、進行中のトランザクションはロールバックされます。
WebLogic Serverがトランザクション・マネージャの場合、進行中のトランザクションはフェイルオーバーされ、障害発生時のトランザクションの状態に基づいて、完了するかロールバックするかが判断されます。
XAトランザクションの詳細は、XAトランザクションについてを参照してください。
XAトランザクションのサポートにより、1つのトランザクション内から複数のリソース(データベース、アプリケーション・サーバー、メッセージ・キュー、トランザクション・キャッシュなど)にアクセスできます。
XA以外のトランザクションに関係するリソースは、常に1つのみです。
XAトランザクションは、1つ以上のデータベースや、JMSのような他のリソースとのトランザクション調整マネージャを使用し、これらをすべて単一グローバル・トランザクションに集約しています。
Java EEでは、用語のJTAトランザクション、XAトランザクション、ユーザー・トランザクション、グローバル・トランザクションと同じ意味で、グローバル・トランザクションと呼ぶ場合もあります。このトランザクション・タイプには、複数の異なるXA対応のリソースやXA以外のリソース、さらには異なるリソース・タイプの操作も含まれる場合があります。JTAトランザクションは、常に現在のスレッドに関連付けられており、1つのアプリケーション呼出しとしてサーバー間で受け渡すこともできます。一般的なXAトランザクションの例は、WebLogic JMSとJDBC (データベース)の両方の操作を含む構成です。
データ・ソースは、リレーショナル・データベースへの接続を取得するためにコンポーネントで使用する抽象概念です。
URLまたはユーザー名とパスワードなどの接続情報が、データ・ソース・オブジェクト上でプロパティとして設定されます。アプリケーション・コードで、プロパティを明示的に定義する必要はありません。この抽象化により、アプリケーションが特定のバックエンド・データベースに関連付けらなくなるため、アプリケーションをポータブルな方法で構築できます。データベースは、アプリケーション・コードに影響を与えずに変更できます。
アクティブなGridLinkデータ・ソースとマルチ・データ・ソースが、データベース接続の高可用性、ロード・バランシング、フェイルオーバーをサポートします。ご使用のOracle RACデータベース・バージョンに応じて、次のデータ・ソース・タイプをお薦めします。
Oracle RACデータベースのバージョンが11gリリース2以降の場合は、アクティブなGridLinkデータ・ソースを使用します。
Oracle RACデータベースのバージョンが11gリリース2より前の場合や、Oracle Database以外のデータベースを使用している場合は、マルチ・データ・ソースを使用します。
注意:
Oracle RACデータベースの可用性を最大限に高めるために、アクティブなGridLinkデータ・ソースの使用をお薦めします。アクティブなGridLinkデータ・ソースをサポートしていないOracle RACデータベースのバージョンの場合は、マルチ・データ・ソースを使用して可用性を高めることをお薦めします。
アクティブなGridLinkデータ・ソースは、複数のOracle RACクラスタが含まれる可能性がある、WebLogic ServerとOracleデータベース・サービス間の接続を提供します。
アクティブなGridLinkデータ・ソースには、汎用データ・ソースの機能に加え、Oracle RACに対する次のサポートがあります。
ONSを使用して、Oracle RACにおける状態変化に対応します。
高速アプリケーション通知(FAN)イベントに応答して、高速接続フェイルオーバー(FCF)、ランタイム接続ロード・バランシング、およびRACインスタンスの正常な停止を提供します。FANは、構成やワークロードに関するアラートをアプリケーションにすばやく伝えることができる、Oracle RACの通知メカニズムです。
セッションのすべてのデータベース操作がRACクラスタの同じインスタンスに送信されて、最適なパフォーマンスが得られるように、アフィニティ(XAアフィニティ)ポリシーを提供します。
SCANアドレス
Oracleウォレットを使用したセキュアな通信
次の各トピックの詳細は、Oracle Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの構成と管理のアクティブなGridLinkデータ・ソースの使用を参照してください。
Active GridLinkデータ・ソースとは
ソケット・ダイレクト・プロトコルの使用
接続プール機能の構成
Oracleパラメータの構成
ONSクライアントの構成
Active GridLinkデータ・ソースの接続プールのチューニング
GridLink JDBCリソースのモニター
マルチ・データ・ソースとは、データ・ソースのグループに関する抽象化のことです。この抽象化により、ロード・バランシングやフェイルオーバー処理を実現します。マルチ・データ・ソースは、XAデータ・ソースとXA以外のデータ・ソース両方のロード・バランシングをサポートします。
フェイルオーバー・マルチ・データ・ソースでは、接続リクエストを満たすために、データ・ソースの順序付きリストが提供されます。通常、このようなマルチ・データ・ソースへの接続リクエストはすべて、リストの先頭のデータ・ソースによって処理されます。
ロードバランシング・マルチ・データ・ソースでは、データソースの循環リストからラウンド・ロビン方式で選択が行われます。受信接続リクエストのストリームは、データソース全体に均等に分散されます。データベース接続テストが失敗して接続を置き換えられなかった場合、またはデータ・ソースが中断された場合は、リストの次のデータ・ソースから接続が検索されます。
マルチ・データ・ソースは、通常のデータ・ソースと同様に、JNDIツリーまたはローカル・アプリケーション・コンテキストにバインドされます。アプリケーションは、データ・ソースの場合と同じようにJNDIツリー上のマルチ・データ・ソースまたはローカル・アプリケーション・コンテキスト(java:comp/env
)内のマルチ・データ・ソースをルックアップし、その後データベース接続をリクエストします。マルチ・データ・ソースによって、マルチ・データ・ソース構成で選択されたアルゴリズム(ロード・バランシングまたはフェイルオーバー)に応じて、リクエストに対応するために使用するデータ・ソースが決定します。
注意:
Oracle RACでのマルチ・データ・ソースの構成の詳細は、Oracle Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの構成と管理のOracle RACでのマルチ・データ・ソースの使用を参照してください。
ドメインの作成時に、RACデータベース用のアクティブなGridLinkデータ・ソースとして、コンポーネント・データ・ソースを構成します。
Active GridLinkデータ・ソースの構成は、次の内容により異なります。
操作しているOracleコンポーネント
作成しているドメイン
注意:
アクティブなGridLinkデータ・ソースの作成および構成方法については、『Oracle Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの構成と管理』のアクティブなGridlinkデータ・ソースの使用に関する項を参照してください。
Oracle RACデータベースで使用するアクティブなGridLinkデータ・ソースとしてコンポーネント・データ・ソースを構成する前に、システムが特定の要件を満たしている必要があります。
Oracle RACデータベースのバージョン11gリリース2以降を使用している。
RCUを実行してコンポーネント・スキーマが作成されている。
ドメインを作成または構成するための構成ウィザードで、「JDBCコンポーネント・スキーマ」画面まで進み、「コンポーネント・データソース」を選択する。
ドメインの作成時に、RACデータベース用のアクティブなGridLinkデータ・ソースとして、コンポーネント・データ・ソースを構成します。
アクティブなGridLinkデータ・ソースとしてコンポーネント・データ・ソースを構成するには、次の手順を実行します。
注意:
詳細は、次を参照してください。
「JDBCコンポーネント・スキーマ」画面の詳細は、Oracle Fusion Middleware構成ウィザードによるWebLogicドメインの作成のJDBCコンポーネント・スキーマを参照してください。
コンポーネント・スキーマの構成方法の詳細は、Oracle Fusion Middleware構成ウィザードによるWebLogicドメインの作成のGridLink Oracle RACコンポーネント・スキーマを参照してください。
GridLink RACデータ・ソースの詳細は、Oracle WebLogic Server JDBCデータ・ソースの管理のアクティブなGridLinkデータ・ソースの使用を参照してください。
WebLogicコンソールでTNSリスナーとONSリスナーにホストおよびポートを指定するには、Oracle単一クライアント・アクセス名(SCAN)アドレスを使用することをお薦めします。
Oracle RACノードを追加または削除する場合、SCANアドレスを含むアクティブなGridLinkデータ・ソースを更新する必要はありません。ご使用の環境に対して適切に構成されたSCAN URLについては、御社のネットワーク管理者に問い合せてください。『Oracle Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの構成と管理』のSCANアドレスに関する項を参照してください。
マルチ・データ・ソースを構成するために、様々なツールを使用できます。
Oracle Fusion Middlewareの構成ウィザード(WebLogic Serverドメインの作成時)
Oracle WebLogic Server管理コンソール
WLSTコマンド
Oracle RACでのマルチ・データ・ソースの構成には、特定の要件と完了すべき手順があります。
マルチ・データ・ソースとして、Oracle RACデータベース用のコンポーネント・データ・ソースを構成する前に、次の要件が満たされていることを確認します。
Oracle RACデータベースを使用している。
RCUを実行してコンポーネント・スキーマが作成されている。
ドメインを作成または構成するための構成ウィザードで、「JDBCコンポーネント・スキーマ」画面まで進み、「コンポーネント・スキーマ」を選択する。「JDBCコンポーネント・スキーマ」画面まで進む前に、「データベース構成タイプ」画面で「手動構成」オプションを選択する必要があります。
コンポーネント・データ・ソースをマルチ・データ・ソースとして構成するときに、変換するデータ・ソースを選択してからデータベース情報を入力します。
マルチ・データ・ソースとしてコンポーネント・データ・ソースを構成するには、次の手順を実行します。
mydb.example.com
)。マルチ・データ・ソースには、データベース・サービスを提供するRACインスタンスごとの構成データ・ソースが存在します。RACのバックエンドにインスタンスを追加する場合は、Fusion Middleware層でマルチ・データ・ソースにデータ・ソースを追加することをお薦めします。
非RACのデータベースをRACデータベースに移行する場合は、影響を受けるデータ・ソースごとに同等のマルチ・データ・ソースを新しく作成する必要があります。作成するマルチ・データ・ソースには、各RACインスタンスを構成するデータ・ソースが必要です。データ・ソースのプロパティ値は、Oracle RACでのマルチ・データ・ソースの構成で説明するプロパティに関して、元の単一インスタンス・データ・ソースの値と同じである必要があります。たとえば、単一インスタンス・データ・ソース・ドライバがoracle.jdbc.xa.client.OracleXADataSource
である場合、新しいマルチ・データ・ソースの各構成データ・ソースのドライバはoracle.jdbc.xa.client.OracleXADataSource
である必要があります。
手動で作成されたマルチ・データ・ソースまたは初期構成の後に変更されたマルチ・データ・ソースについては、可用性を最大限に高めるために、次のXAデータ・ソースおよびXA以外のデータ・ソースのプロパティ値に設定することを強くお薦めします。環境の要件により変更が必要な場合は、検討とテストを十分に行ってから変更してください。
表5-2は、XAおよびXA以外のデータ・ソースについて、プロパティの推奨値を示しています。
表5-2 推奨されるマルチ・データ・ソース構成
プロパティ名 | 推奨値 |
---|---|
test-frequency-seconds |
5 |
algorithm-type |
ロード・バランシング |
高可用性環境では、個々のデータ・ソースに対して表5-3の構成値をお薦めします。その他のパラメータについても、アプリケーション要件に従って設定することをお薦めします。
表5-3 XAデータ・ソース構成
プロパティ名 | 推奨値 |
---|---|
ドライバ |
oracle.jdbc.xa.client.OracleXADataSource |
プロパティ・コマンド |
<property> <name>oracle.net.CONNECT_TIMEOUT</name> <value>10000</value> </property> |
initial-capacity |
0 |
connection-creation-retry-frequency-seconds |
10 |
test-frequency-seconds |
300 |
test-connections-on-reserve |
true |
test-table-name |
SQL SELECT 1 FROM DUAL |
seconds-to-trust-an-idle-pool-connection |
0 |
global-transactions-protocol |
TwoPhaseCommit |
keep-xa-conn-till-tx-complete |
true |
xa-retry-duration-seconds |
300 |
xa-retry-interval-seconds |
60 |
サーバー・ログに次の例外を含む警告メッセージが表示された場合は、XAのタイムアウトの設定値を増やす必要があります。
[javax.transaction.SystemException: Timeout during commit processing
XAデータ・ソース設定のトランザクション・タイムアウト値を増やすには、管理コンソールで次の手順を実行します。
XAマルチ・データ・ソースの個々のデータ・ソースすべてに対してこの構成を繰り返します。
表5-4 XA以外のデータ・ソース構成
プロパティ名 | 推奨値 |
---|---|
ドライバ |
oracle.jdbc.OracleDriver |
設定するプロパティ |
<property> <name>oracle.net.CONNECT_TIMEOUT</name> <value>10000</value> </property> |
initial-capacity |
0 |
connection-creation-retry-frequency-seconds |
10 |
test-frequency-seconds |
300 |
test-connections-on-reserve |
true |
test-table-name |
SQL SELECT 1 FROM DUAL |
seconds-to-trust-an-idle-pool-connection |
0 |
global-transactions-protocol |
なし |
MDSデータベース・ベースのリポジトリを使用するアプリケーションは、高可用性Oracleデータベースへのアクセス用に構成できます。
この構成により、MDS(およびWebLogicインフラストラクチャ)による障害検出、リカバリおよび再試行が、アプリケーションの読取り専用のMDS操作を、Oracle RACデータベースの計画停止および計画外停止から保護します。
Fusion Middleware Controlのナビゲーション・ツリーに、マルチ・データ・ソースがMDSリポジトリとして公開されます。これらのマルチ・データ・ソースは、アプリケーション・デプロイメントのカスタマイズ時に選択したり、MDS WLSTコマンドで使用することもできます。
読取り専用操作を再試行できるようなアプリケーションの構成
接続を再試行できるようにアプリケーションを構成するには、アプリケーションのMDS AppConfig MBeanのRetryConnection
属性を構成します。詳細は、『Oracle Fusion Middleware管理者ガイド』を参照してください。
MDSマルチ・データ・ソースの登録
Oracle RACでのマルチ・データ・ソースの構成で説明した手順以外にも、次の点に注意してください。
MDSリポジトリに使用されるマルチ・データ・ソースを構成する子データ・ソースは、XA以外のデータ・ソースとして構成する必要があります。
マルチ・データ・ソースの名前には、接頭辞mds-
を付ける必要があります。これにより、確実にMDSリポジトリとして認識されます。
注意:
MDSデータ・ソースをマルチ・データ・ソースの子として追加すると、このデータ・ソースはMDSリポジトリとしては公開されなくなります。Fusion Middleware Controlのナビゲーション・ツリーの、「メタデータ・リポジトリ」フォルダの下には表示されません。それに対するMDSリポジトリの操作を実行できず、選択可能なリポジトリのリストにデプロイメント時に表示されません。
マルチ・データ・ソースへのデータ・ソースの変換
マルチ・データ・ソースをデータ・ソースに変換する際には、次の点に注意します。
新しい一意の名前を持つマルチ・データ・ソースを新規作成するには、アプリケーションを再デプロイして、デプロイメント・プランのカスタマイズ時に、この新しいマルチ・データ・ソースをMDSリポジトリとして選択します。
アプリケーションの再デプロイを回避するには、データ・ソースを削除し、同じ名前とjndi-name属性を使用して、新しいマルチ・データ・ソースを再作成できます。