Sun Cluster HA for Oracle には、サーバーモニターとリスナーモニターという 2 つの障害モニターがあります。
Oracle サーバーの障害モニターは、サーバーの状態を照会する要求をサーバーに送信します。
サーバーの障害モニターは、モニターを高可用性にするために pmfadm によって開始されます。モニターが、何らかの理由により強制終了されても、Process Monitor Facility(PMF) によって自動的に再開します。
障害モニターの主プロセスが、エラー検索と scha_control アクションを実行します。
データベースクライアント障害検証が、データベーストランザクションを実行します。
主障害モニターは、データベースがオンラインであり、トランザクション中にエラーが返されていない場合に、操作が正常に終了したと判断します。
データベースクライアント障害検証機能は、動的パフォーマンスビュー v$sysstat に問い合わせて、データベースパフォーマンスの統計情報を取得します。統計の変化は、データベースが稼働していることを意味します。続けて問い合わせても、統計情報に変化がない場合、障害検証機能がデータベーストランザクションを実行し、データベースが稼働しているかどうかを判断します。このトランザクションにはユーザーテーブル空間におけるテーブルの作成、更新、および削除が伴います。
データベースクライアント障害検証機能は、すべてのトランザクションを Oracle ユーザーとして実行します。このユーザーの ID は、 「ノードを準備する」 で説明したとおり、ノードを準備するときに指定します。
検証機能は、Probe_timeout リソースプロパティに設定されたタイムアウト値を使用して、Oracle を正常に検証するための割り当て時間を判断します。
データベーストランザクションが失敗すると、サーバー障害モニターは、失敗の原因であるエラーによって決定されたアクションを実行します。サーバー障害モニターが実行するアクションを変更する場合は、「Sun Cluster HA for Oracle サーバー障害モニターのカスタマイズ」 の説明に従って、サーバー障害モニターをカスタマイズしてください。
外部プログラムを実行する必要があるアクションの場合、外部プログラムは別個のプロセスとしてバックグラウンドで実行されます。
実行できるアクションは、次のとおりです。
無視。サーバー障害モニターはエラーを無視します。
モニター中止。 データベースを停止せずに、サーバー障害モニターを中止します。
再起動。Restart_type 拡張プロパティの値によって指定されたエンティティを停止してサーバー障害モニターは再起動します。
Restart_type 拡張プロパティに RESOURCE_GROUP_RESTART が設定されている場合は、データベースサーバーリソースグループが再起動されます。デフォルトでは、データベースサーバーリソースグループが再起動されます。
Restart_type 拡張プロパティに RESOURCE_RESTART が設定されている場合は、データベースサーバーリソースが再起動されます。
再起動の試行回数が Retry_interval リソースプロパティに指定した時間内に、 Retry_count リソースプロパティの値を超えることがあります。その場合、サーバー障害モニターはリソースグループを別のノードに切り替えようとします。
切り替え。サーバー障害モニターはデータベースサーバーリソースグループを別のノードに切り替えます。ノードが利用できない場合、リソースグループの切り替えは失敗します。リソースグループの切り替えができなかった場合、データベースサーバーが再起動します。
Oracle ソフトウェアは、警告を警告ログファイルに記録します。このファイルの絶対パスは、 SUNW.oracle_server リソースの alert_log_file 拡張プロパティによって指定されます。サーバー障害モニターは、次の場合に警告ログファイルを走査して、新しい警告があるかどうかを確認します。
サーバー障害モニターの起動時。
サーバー障害モニターがサーバーの状態を問い合わせるとき。
サーバー障害モニターが検出した記録済みの警告に対してアクションが定義されている場合は、警告への対応としてそのアクションが実行されます。
記録対象警告に対してどのようなアクションが前もって設定されているかについては、付録 A の表 B–2 を参照してください。サーバー障害モニターが実行するアクションを変更する場合は、「Sun Cluster HA for Oracle サーバー障害モニターのカスタマイズ」 の説明に従って、サーバー障害モニターをカスタマイズしてください。
Oracle リスナーの障害モニターは、Oracle リスナーの状態を調べます。
リスナーが実行されている場合、Oracle リスナーの障害モニターは検証に成功したと判断します。障害モニターがエラーを検知すると、リスナーが再起動されます。
リスナー検証は、可用性を高めるために pmfadm によって開始されます。リスナー検証が強制終了された場合、PMF によって自動的に再開されます。
検証中にリスナーで問題が発生した場合、検証機能によってリスナーの再起動が試行されます。再起動の試行最大回数は、Retry_count リソースプロパティに設定した値によって決定されます。最大回数まで再起動を試行しても検証が成功しない場合、障害モニターは停止され、リソースグループのスイッチオーバーは行われません。