アプリケーション高可用性のレベルについて

アプリケーション高可用性の要件に応じて、必要な高可用性(HA)保護のレベルを実装できます。

HA保護レベルは次の表で定義され、前のレベルに基づいて段階的にレベルが高くなります。

HAレベル 構成 エクスペリエンス メリット

レベル1: 基本的なアプリケーション高可用性

「レベル1: 基本的なアプリケーション高可用性の構成」を参照

データベースまたはセキュリティの管理者:

  • ロールベースのデータベース・サービスを構成します
  • 推奨のデータベース接続文字列を利用して、LDAPおよびウォレットはオプションで構成します

  • 停止時の即時割込みのために高速アプリケーション通知(FAN)を有効にします

アプリケーション開発者:

  • MAA推奨の接続文字列を使用します
  • 基本的な例外処理を使用します

実装作業: 最小 - 管理者の場合は1時間、開発者の場合は1時間未満

レベル1保護を実装すると、アプリケーションの影響を軽減するアプリケーション + Oracle統合およびインテリジェンスによって、サード・パーティ・アプリケーションのフェイルオーバー・ソリューションと比較して大きなメリットが得られます。

  • アプリケーションの停止時間が短縮されます
  • アプリケーションは、計画メンテナンス時および計画外停止時にエラーを認識し、ターゲット・サービスのある別のOracle RACインスタンスまたはデータベースに自動的に再接続します。
  • 計画外停止および計画メンテナンスに適用できます。場合によっては、長期実行トランザクションは、計画メンテナンス中に延期または一時停止する必要があります。

アプリケーションが自動的にフェイルオーバーして再接続する高可用性

  • 迅速なタイムアウトとデータベース接続文字列を使用した自動的な接続の再試行

  • サービスによる場所の透過性: スタンバイ・データベースと読取り専用データベースに応じたロールベースのサービスにより、アプリケーションが自動的に正しいロールの適切なインスタンスにルーティングされるようにします。

  • データベース接続文字列で自動構成されるFAN

  • FANを使用すると停止時に即座に割込みが発生します(タイムアウトを調整して待機する必要はありません)。

  • ClusterwareはRACとVIPのヘルスを認識するため、FANの働きによりダウンしたエンド・ポイントで待機することはありません

レベル2: 計画メンテナンスに向けたアプリケーションの準備

「レベル2: 計画メンテナンスに向けたアプリケーションの準備の構成」を参照

レベル1の構成 +

アプリケーション開発者:

  • Oracle接続プールまたは接続テストを使用し、各使用の間で接続をプールに返却します

開発者の追加の実装作業: Oracle接続プールにかかわる最小の作業量 - 開発者がアプリケーションで使用される接続テストを特定し、場合によってはデータベース内に新しい接続テストを作成するために、アプリケーション・サーバーを使用する場合は最大で数時間(アプリケーション・サーバーを使用しない場合はアプリケーションの複雑さに応じて数日間)

  • 計画メンテナンス中のエラーを回避します(計画外停止のエラーの可能性は残ります)。
  • アプリケーションの割込みなしにワークロードを適切にドレインおよび移動する機能性
  • 計画外停止と計画メンテナンスのイベントに適用できます。場合によっては、長期実行トランザクションは、計画メンテナンス中に延期または一時停止する必要があります。

ワークロードは、計画メンテナンス中にわずかな遅延とエラーなしでインスタンス間で正常に移動されます。

レベル3: 計画外および計画フェイルオーバーのアプリケーションからのマスク

「レベル3: 計画外および計画フェイルオーバーのアプリケーションからのマスクの構成」を参照

レベル1および2の構成 + "アプリケーション・コンティニュイティ"ソリューション

データベースまたはセキュリティの管理者:

  • 追加のセキュリティと特権が必要です

アプリケーション開発者:

  • データベース外の外部アクション(副次的作用など)を考慮する必要があります

追加の実装作業: 保護範囲を確認するために、開発者とデータベース管理者の間の共同作業に数日から数週間(アプリケーションの複雑さに応じて異なります)

  • 処理中のトランザクションは、アプリケーション・コードの変更なしに自動的にコミットを承認するかリプレイします
  • データベース管理者とアプリケーション開発者は、AWR統計を使用して保護範囲を評価し、ACCHK (アプリケーションコンティニュイティ・ヘルス・チェック)を使用してトランザクションを再実行できる場合とできない場合の範囲または例外を特定することで、準備状況の確認のために調整を実施します

アプリケーションから計画外および計画フェイルオーバーをマスクします

  • アプリケーションは、計画メンテナンスおよび停止中のエラーの認識を回避します

  • 処理中のコミットされていないトランザクションがリプレイされ、コミットされたトランザクションは承認されてリプレイされません

前の表で説明したすべてのHAレベルは、次の理由から、単一の接続VIPエンドポイントとしてロード・バランサを使用する接続管理のアプローチよりも優れています。

  • スマート・サービス・ヘルスおよびインテリジェント再接続: Oracle ClusterwareとOracle Data Guard Brokerは、クラスタおよびデータベースのヘルスと状態を詳細にモニターして、プライマリでオープンされているデータベース・サービスに接続がルーティングされるようにします。
  • 透過的および自動的フェイルオーバー: データベースのヘルスを問い合せて、VIPの移動に適したデータベースを決定する必要はありません。表で説明した高可用性アプローチでは、すべてが透過的になります。
  • 高速通知および自動的な接続の再試行: すでに接続されているセッションの切断は即時に実施され、Oracle ClusterwareとData Guard Brokerがプライマリおよびスタンバイ・データベースで停止またはロールの変更を検出したときにはインテリジェントに実施されます。

用語

このドキュメント全体を通じて次の用語が使用されています。

  • ドレイン: あるインスタンスから別の使用可能なインスタンスに接続を移動します。

    あるインスタンスから別のインスタンスに正常にセッションを移動するためのドレインは、計画メンテナンス中および負荷のリバランス中に使用されます。接続は、アプリケーションがプールに接続を返却した後に新しい接続を取得するときや、別のルールが満たされたときに移動されます。

  • フェイルオーバー: サービスを提供する新しいインスタンスで同等のセッションを再確立します。

    フェイルオーバーは、計画外停止中および計画メンテナンス中に、割り当てられた期間内にセッションがドレインされない場合に発生します。アプリケーション・コンティニュイティが構成されている場合は、アプリケーションがエラーを受信することはありません。

ソフトウェアの推奨事項

HAレベルの構成に推奨のソフトウェアは次のとおりです。

  • Oracle Real Application Clusters (Oracle RAC)およびOracle Clusterware (効率的な停止の管理のためのサービスおよびインフラストラクチャを提供します)。Oracle Grid Infrastructure (GI)リリース19c以降の使用をお薦めします
  • Oracle Active Data Guardは、データベース、クラスタ、ストレージまたはサイトの障害から保護するためにお薦めです。
  • Oracle Database 19cのクライアントとデータベース、またはそれ以降の長期サポート・バージョン(最新のパッチ・レベルが適用されたもの)