障害の管理について
Oracle Fusion Middleware (FMW)ストレッチ・クラスタ・トポロジは、個々のコンポーネントの障害に対して回復力があります。
各サイトは、Oracle FMWエンタープライズ・デプロイメント・トポロジで概説されている高可用性のベスト・プラクティスに従い、ローカル冗長性がコンポーネント・レベル(ロード・バランサ、Oracle HTTP Serverインスタンス、Oracle WebLogic Serverまたはデータベース・インスタンスなど)の中断から保護されるようにします。
サイト内の完全な層の障害やサイト全体の障害などのシナリオに対処するための考慮事項については、次の各項で説明します。
1つのサイト上のすべてのWebサーバーの障害の管理
すべてのクライアント・リクエストは、サイト・プリファレンスに関係なく、他のサイトにルーティングされます。
したがって、失敗したWebサーバーがあるサイトのOracle WebLogicサーバーは、新しいリクエストを受信しません。処理を続行する場合があります(たとえば、Oracle SOAコンポジットおよびjavaメッセージ・サービス(JMS)メッセージの処理)。ただし、これらのサーバーから内部的に生成されたHTTPコールバックは、Webサーバーに障害が発生した独自のサイトを指しているため、失敗します。
次の図は、1つのサイト上のすべてのWebサーバーの障害を示しています
障害からのリカバリ
クライアントは、Oracle Cloud Infrastructure (OCI) Traffic Managementステアリング・ポリシーまたはグローバル・ロード・バランサ(GLBR)によって、他のサイトに自動的にリダイレクトされます。
失われたWebサーバー・インスタンスを短期間でリストアできない場合は、次の操作を実行して、失敗したWeb層でサイトのWebLogicサーバーを使用できます。
- 障害が発生したサイトのOracle WebLogic Serverインスタンスにリクエストをルーティングするように、もう一方のサイトのOracle HTTP Server (OHS)インスタンスを構成します。
- OHS構成を更新し、
DynamicServerListパラメータをONに設定します。 - この変更を適用するには、OHSをローリング方式で再起動して停止時間を回避します。
- また、Webサーバーから他のサイトのWebLogicサーバーへのリージョン間通信が許可されていることを確認します。
- OHS構成を更新し、
- 使用できないOHSサーバーがあるサイトから発生したハイパーテキスト転送プロトコル(HTTP)コールバックの障害を回避するには、WebLogicサーバー・ホストの
/etc/hostsファイルまたはプライベート・ドメイン・ネーム・システム(DNS)でフロントエンド名のエントリを更新して、他方のサイトのロード・バランサを指すようにします。
- 失敗したサイトでOHSプロセスを起動します。
Oracle Cloud Infrastructure Health Checksが再度OKになるとすぐに、トラフィック管理ステアリング・ポリシーによって、定義されたルールに従って、両方のサイト間でクライアント・リクエストがロード・バランシングされます。
- もう一方のサイトで、
DynamicServerListをもう一度OFFに設定します。 - WebLogicサーバーの
/etc/hostsファイル(またはプライベートDNS)の変更を元に戻して、独自のサイト・ロード・バランサを再度ポイントするようにします。
次のイメージは、Java Message Service (JMS)キュー・メッセージと、1つのサイト上のすべてのWebサーバーの障害時に失敗したクライアント・リクエストを示しています。
予想リカバリ時間目標
DNS更新は、ステアリング・ポリシー・プリファレンスが失敗したリージョンに設定されているクライアントに影響します。TTL値は、正常なサイトを指すように更新する前に、これらのクライアントが古いエントリを引き続き使用する期間を決定します。追加の時間(約1分)は、OCIステアリング・ポリシーで構成されたヘルス・チェックの頻度とタイムアウト(前述のテストでヘルス・チェック間隔に30秒が使用され、タイムアウトは10秒)によって異なります。
グローバル・ロード・バランサ(GLBR)を使用する場合、停止時間は、GLBRで構成されたヘルス・チェックの頻度によって異なります。GLBRがプールを不健全とマークすると、受信リクエストはもう一方のサイトにリダイレクトされます。GLBRではDNS更新がないため、フロントエンド・エントリのTTL値は関係ありません。
1つのサイトですべてのOracle WebLogic Serversの障害の管理
失敗したサイトのロード・バランサは、失敗したレスポンスを返すため、Oracle Cloud Infrastructure (OCI)トラフィック・ステアリング・ポリシーおよびヘルス・チェックに基づくフロントエンド・グローバル・バランシング機能は、サイトを異常としてマークする必要があります。すべてのクライアント・リクエストは、プリファレンスに関係なく、他のサイトにルーティングされます。
Java Database Connectivity (JDBC)永続ストアとともに自動サービス移行を使用すると、WebLogic Java Message Service (JMS)サービスおよびJava Transaction API (JTA)サービスは、他のサイトのサーバーに自動的に移行されます。
Oracle Fusion Middleware (FMW) SOAの場合、障害の発生したサーバーで自動リカバリ・クラスタ・マスターがホストされていた場合、使用可能なサイトで新しいクラスタ・マスターが発生します。このサーバーは、他のサイトで開始されたSOAインスタンスの自動リカバリを実行します。
次の図は、1つのサイト上のすべてのWebLogicサーバーの障害を示しています。
failure-all-weblogic-servers-one-site-oracle.zip
次の図は、サイトですべてのWebLogicサーバーに障害が発生した場合の、サーバー当たりのクライアント失敗リクエストおよびJMSメッセージを示しています。
JMSメッセージ・グラフには4つの線があり、それぞれがサーバーのJMSキューを表します。緑線と青線(ほぼ重なっている)は、強制終了されたサーバーに対応します。これらのキューのJMSメッセージの数は、停止の開始後に増加しません。
赤線と黄線は、リージョン2で稼働しているサーバーを表します。すべてのリクエストがこのリージョンにリダイレクトされると、残りの各サーバーは合計負荷の50%を受け取ります。ただし、メッセージがキューに蓄積される割合は異なります。これは、障害が発生したサーバーのJMSサーバーが残りのサーバーのいずれかに移行されたため、そのサーバーのメッセージは3つのキューによって処理されるようになったためです。その結果、勾配は黄色の勾配の下に表示されます(モニタリング・ツールでは、移行されたキューのメッセージ数は表示されません)。
障害からのリカバリ
障害の発生したサーバが再び利用可能になった後:
- 障害が発生したサイトの管理対象サーバーを起動します。
- Oracle Cloud Infrastructure Health Checksが再度正常になるとすぐに、Traffic Managementステアリング・ポリシーによって、定義されたルールに従って両方のサイト間でクライアント・リクエストがロード・バランシングされます。
予想リカバリ時間目標
これは、1つのサイト上のすべてのWebサーバーで障害が発生した場合と似ています。
DNS更新は、ステアリング・ポリシー・プリファレンスが失敗したリージョンに設定されているクライアントに影響します。TTL値は、正常なサイトを指すように更新する前に、これらのクライアントが古いエントリを引き続き使用する期間を決定します。追加の時間(約1分)は、OCI Traffic Managementステアリング・ポリシーで構成されたヘルス・チェックの頻度とタイムアウト(ヘルス・チェック間隔のテストで30秒が使用され、タイムアウトは10秒)によって異なります。
グローバル・ロード・バランサ(GLBR)を使用する場合、停止時間は、GLBRで構成されたヘルス・チェックの頻度によって異なります。GLBRがプールを不健全とマークすると、受信リクエストはもう一方のサイトにリダイレクトされます。GLBRではDNS更新がないため、フロントエンド・エントリのTTL値は関係ありません。
データベースでの障害の管理: Data Guardスイッチオーバーおよびフェイルオーバー
「WebLogicデータ・ソースの設定」で前述したJava Database Connectivity (JDBC) URL文字列およびOracle Notification Service (ONS)構成により、新しいプライマリ・データベースへの再接続が自動的に行われるようになります。これらの正確なテスト(Oracle Fusion Middleware (FMW) SOA FODの使用、および160回の同時呼出しのワークロードが高い場合でも)では、データベースのスイッチオーバーまたはフェイルオーバーにかかる時間は数分未満です。この時間は、システム構成および環境によって異なります。適切にチューニングされたシステムでは、1-5分のスイッチオーバー時間が一般的ですが、システム・サイズ、リソース、ワークロード、REDOログの同期、ネットワーク・パフォーマンスなどの要因が合計期間に影響する可能性があります。Oracle Data Guardドキュメントおよびその他のリソースへのリンクは、さらに参照してください。
データベースのスイッチオーバーまたはフェイルオーバー中に、アプリケーション・エラーが発生します。また、サービス移行を使用するWebLogicサーバーは、リース表を更新できない場合、ノード・マネージャによって自動的に停止および再起動できます。デフォルトのリース・パラメータで想定される動作は次のとおりです。
- データベースの停止が非常に短い(1-2分未満)場合は、WebLogicサーバーの自動再起動は予期されません。
- データベースの停止時間が長く(2~10分)、WebLogicサーバーは、データベースの再起動時に「lost a lease(リースを失った)」ために自動再起動することがあります。
WebLogicデータベース・リースのチューニングの構成に関する項で前述したように、WebLogicのデータベース・リースの再試行をチューニングすることで、下限を増やすことができます。
- データベースの停止時間が10分より長い場合(10分以上)、WebLogicサーバーは、重要なJDBCストアへのアクセスを失う(JTAのJDBCストアは使用不可)などの他の障害のために自動再起動できます。
次の図は、FMWストレッチ・クラスタ・トポロジのデータベース・スイッチオーバーを示しています
ストレッチクラスタ-db-switchover-oracle.zip
次の図は、FMWストレッチ・クラスタでのデータベース・スイッチオーバー中のサーバー・キュー当たりのクライアント・リクエスト・パフォーマンスおよびJava Message Service (JMS)メッセージを示しています。
障害からのリカバリ
障害の発生したサーバが再び利用可能になった後:
- データベース・フェイルオーバーを実行した場合は、障害が発生したデータベースを回復します。
スイッチオーバーを実行した場合、このアクションは必要ありません。
- 元のサイトへのデータベース・スイッチバックを実行します。
予想リカバリ時間目標
実行されたテストでは、スイッチオーバーにかかる時間は2分未満です。
計画外のスイッチオーバーまたはフェイルオーバーの場合、合計停止時間はデータベースが停止した時間によって異なります。
- データベースのフェイルオーバーまたはスイッチオーバーをほぼ即時に実行すると、リカバリの合計時間が短くなります。これは、データベースがスイッチオーバーまたはフェイルオーバーに必要な時間によって異なります。実行されたテストでは、スイッチオーバーに2分未満かかるため、予想されるリカバリ時間目標(RTO)は次のとおりです。
RTO = DB DOWNTIME + SHORT TIME (1-2 min) - データベースの停止時間が長くなると、Oracle WebLogic Serverの自動再起動などの追加のエラーが発生し、RTOが増加する可能性があります。この場合、予想されるRTOは次のとおりです。
RTO = DB DOWNTIME + WEBLOGIC START TIME
WebLogic管理サーバーでの障害の管理
ノード・マネージャは、障害の発生したサーバーをインプレースで自動的に再起動します。
ただし、停止が管理サーバーが実行されているホストに完全に影響する場合は、管理サーバーを別のノードにフェイルオーバーする必要があります。
基本的に、これは、管理サーバーのドメイン・ディレクトリを含む場所を指し示し、適切な仮想IP (VIP)にマップされるリスニング・アドレスを使用していることを確認して、別のノードでの管理サーバーの再起動で構成されます。
この管理サーバー・ドメイン・ディレクトリは、同じリージョン内の異なるノードで使用可能な共有記憶域の場所、または別のリージョン内のノードで使用可能になったバックアップまたはファイル・システム・レプリケーションからのリストアです。
ノート:
ストレッチされたクラスタ構成に関係なく、Oracle WebLogicドメインに適切なバックアップ手順が用意されていることが期待されます。したがって、Oracle Fusion Middleware (FMW)ストレッチ・クラスタ・トポロジでは、管理サーバーを別のリージョンのノードに移行する場合と、同じリージョンのノードに移行する場合とでは、異なる考慮事項が適用されます。
次の図は、FMWストレッチ・クラスタ内の他のサイトへの管理サーバーのフェイルオーバーを示しています
別のリージョンへのフェイルオーバー
WebLogicリモート・コンソールとOracle Enterprise Manager Fusion Middleware Controlの両方にアクセスして、管理サーバーが正常に機能していることを確認します。
同じリージョンへのフェイルオーバー
したがって、フェイルオーバー手順は、管理サーバーのエンタープライズ・デプロイメント・ガイドの管理サーバーの手動フェイルオーバーの確認で説明されている手順と同じです。
Oracle Cloud Infrastructure (OCI)システムで管理サーバーの仮想IP (VIP)を管理するには、ブログOracle Cloud Infrastructureでの仮想IP (VIP)の使用で説明されているステップを使用できます
プライマリ・データベースをホストするリージョン全体の障害の管理
前の項で説明した推奨構成を使用する場合、残りのサイトのOracle WebLogic Serverインスタンスは、新しいプライマリ・データベースに自動的に再接続されます。
失敗したサイトのロード・バランサは失敗したレスポンスを返すため、フロント・エンドのグローバル・バランシング機能はサイトを不健全とマークする必要があります。すべてのクライアント・リクエストは、プリファレンスに関係なく、他のサイトにルーティングされます。
WebLogic JMSおよびJTAサービスは、JDBC永続ストアとともに自動サービス移行を使用するときに、他のサイトのサーバーに自動的に移行されます。Oracle Fusion Middleware (FMW) Oracle SOA Suiteの場合、障害の発生したサーバーで自動リカバリ・クラスタ・マスターがホストされていた場合、使用可能なサイトで新しいクラスタ・マスターが発生します。新しいクラスタ・マネージャは、他のサイトで開始されたSOAインスタンスの自動リカバリを実行します。
次の図は、FMWストレッチ・クラスタ・トポロジにおけるリージョン1全体の障害を示しています。
障害からのリカバリ
失敗したサイトがリカバリされ、再度使用可能になると、次のようになります。
- 障害が発生したホストのプロセス(Oracle HTTPサーバー、WebLogic管理サーバーおよび管理対象サーバー)を再起動します。
管理サーバーの仮想IP (VIP)が設定されていること、および起動を妨げる孤立ファイルが存在しないことを確認してください。
- データベース・フェイルオーバーを実行した場合は、障害が発生したデータベースを回復します。
スイッチオーバーを実行した場合、このアクションは必要ありません。
- 元のサイトへのデータベース・スイッチオーバーを実行します。
予想リカバリ時間目標
残りのサイトのサーバーは、データベースが残りのサイトで再度実行されるとすぐにリクエストの処理を続行できるため、停止時間は、データベースを切り替える前に使用された時間によって異なります。
- データベースのフェイルオーバーまたはスイッチオーバーをほぼ即時に実行すると、リカバリの合計時間が短くなります。これは、データベースがスイッチオーバーまたはフェイルオーバーに必要な時間によって異なります。実行されたテストでは、スイッチオーバーに2分未満かかるため、予想されるRTOは次のとおりです。
RTO = DB DOWNTIME + SHORT TIME (1-2 min). - データベースの停止時間が長くなると、Oracle WebLogic Serverの自動再起動などの追加のエラーが発生し、RTOが増加する可能性があります。予想されるRTOは次のとおりです。
RTO = DB DOWNTIME + WEBLOGIC START TIME
スタンバイ・データベースをホストするリージョン全体の障害の管理
すべてのクライアント・リクエストは、サイト・プリファレンスに関係なく、リージョン1にルーティングされ、リクエストの処理が続行されます。WebLogic JMSおよびJTAサービスは、自動サービス移行をJDBC永続ストアとともに使用すると、サイト1のサーバーに自動的に移行されます。
Oracle SOA Suiteを使用したOracle Fusion Middleware (FMW)の場合、障害の発生したサーバーで自動リカバリ・クラスタ・マスターがホストされていた場合、使用可能なサイトで新しいクラスタ・マスターが発生します。このサーバーは、他のサイトで開始されたSOAインスタンスの自動リカバリを実行します。
停止はプライマリ・データベースに影響しないため、データベース・スイッチオーバーを実行する必要はありません。
次の図は、FMWストレッチ・クラスタ・トポロジにおけるリージョン2全体の障害を示しています。
障害からのリカバリ
障害が発生したサイトが再度使用可能になったら、Oracle HTTPサーバーおよびWebLogic管理対象サーバーの障害が発生したホスト内のプロセスを再起動します。
WebLogicの起動を妨げる孤立したファイルが存在しないことを確認してください。
グローバル・ロード・バランサ機能(Oracle Cloud Infrastructure Traffic Managementステアリング・ポリシーまたはグローバル・ロード・バランサ)のおかげで、クライアントのリクエストは2つのサイト間で再度リバランスされます。
予想リカバリ時間目標
ドメイン・ネーム・システム(DNS)の更新は、ジオロケーション・ステアリング・ポリシーでリージョン2がプリファレンスとして設定されているクライアントに影響します。DNS更新は、ステアリング・ポリシー・プリファレンスが失敗したリージョンに設定されているクライアントに影響します。TTL値は、正常なサイトを指すように更新する前に、これらのクライアントが古いエントリを引き続き使用する期間を決定します。追加の時間(約1分)は、OCIトラフィック管理ステアリング・ポリシーで構成されたヘルス・チェックの頻度とタイムアウトによって異なります(前述のテストでは、ヘルス・チェック間隔に30秒が使用され、タイムアウトは10秒でした)。
グローバル・ロード・バランサ(GLBR)を使用する場合、停止時間は、GLBRで構成されたヘルス・チェックの頻度によって異なります。GLBRがプールを不健全とマークすると、受信リクエストはもう一方のサイトにリダイレクトされます。GLBRではDNS更新がないため、フロントエンド・エントリのTTL値は関係ありません。








