13 障害からのリカバリ
エラー条件や障害状況が発生した場合、可用性に影響することがあります。エラー状態から自動的にリカバリできる場合は、標準操作が再開されます。ただし、障害からリカバリするためにユーザーによる介入が必要になる場合があります。
TimesTen Scaleoutには、TimesTen Scaleoutを使用するすべてのアプリケーションの継続的操作を維持するために、多数のエラーおよび障害状況に対する自動リカバリ付きのエラーおよび障害検出機能が備わっています。エラーおよび障害状況には、次のものがあります。
-
ソフトウェア・エラー。
-
ネットワークの停止またはその他の通信チャネルの障害。通信チャネルは、TCP接続です。
-
データ・インスタンスをホストしている1つ以上のマシンの、予期しない再起動またはクラッシュ。
-
インスタンスのTimesTenメイン・デーモンまたはそのいずれかのサブデーモンの障害。
-
要素は、ロック待ちで一時停止されるか、高負荷になると、低速になるか応答しなくなります。
-
データ・インスタンスをホストするマシンまたはマシンのラックが、不明な理由で予期せず停止した場合。
エラー条件および障害状況に対して必要な対応は、次のとおりです。
-
一時エラー: 一時エラーは、TimesTen Scaleoutで通常は迅速に解決できる、一時的な状態が原因で発生します。失敗したトランザクションをすぐに再試行でき、再試行は通常は成功します。
-
要素の障害: 要素に障害が発生した場合、TimesTen Scaleoutでは、ほとんどの場合、その要素を自動的にリカバリできます。ただし、要素の障害の状況によっては、ユーザーが問題を解決する必要がある場合があります。要素の障害に対するアプリケーションの対応は、グリッドおよびデータベースの構成によって異なる場合があります。問題の修正後、TimesTen Scaleoutによって要素がリカバリされ、操作が継続されるか、障害が発生した要素のかわりとなる新規要素をユーザーが提供します。
-
レプリカ・セットの障害: レプリカ・セット内のすべての要素に障害が発生した場合、(元となる障害の問題が解決された後で) TimesTen Scaleoutにより自動的に要素をリカバリする方法が用意されています。シード要素と呼ばれる、最新の変更を持つ要素が最初にリカバリされます。その後、後続のすべての要素がシード要素からリカバリされます。
-
データベースの障害: すべてのレプリカ・セットに障害が発生した場合、データベースに障害が発生したとみなされます。リカバリするには、データベースを再ロードする必要があります。再ロードされたときにデータベースがどのようにリカバリされるかは、
Durability
属性の値によって決まります。 -
データ分散の失敗: データ分散プロセスが中断されたか完了に失敗した場合は、データの再同期を試行できます。再同期には、
ttGridAdmin dbDistribute -resync
操作の実行が含まれます。
次の各項では、エラーまたは障害状況およびリカバリについて説明しています。