Sun Cluster Data Service for Oracle ガイド (Solaris OS 版)

Oracle サーバーの障害モニターの動作

Oracle サーバーの障害モニターは、サーバーの状態を照会する要求をサーバーに送信します。

サーバーの障害モニターは、モニターを高可用性にするために pmfadm によって開始されます。モニターが、何らかの理由により強制終了されても、Process Monitor Facility(PMF) によって自動的に再開します。

サーバーの障害モニターは、次のプロセスで構成されます。

主障害モニターの動作

主障害モニターは、データベースがオンラインであり、トランザクション中にエラーが返されていない場合に、操作が正常に終了したと判断します。

データベースクライアント障害検証の動作

データベースクライアント障害検証機能は、以下の処理を行います。

  1. アーカイブされた redo ログのパーティションの監視

  2. パーティションに問題がない場合は、データベースが稼働しているかを確認

検証機能は、Probe_timeout リソースプロパティーに設定されたタイムアウト値を使用して、Oracle を正常に検証するための割り当て時間を判断します。

アーカイブされた redo ログのパーティションを監視する処理

データベースクライアント障害機能は、動的パフォーマンスビュー v$archive_dest に問い合わせ、アーカイブされた redo ログを格納できる場所をすべて割り出します。検証機能はアーカイブ先ごとにその健全性を確認するとともに、アーカイブされた redo ログを格納するだけの十分な空き領域があるかを確認します。

データベースが動作可能かどうかを確認する処理

アーカイブされた redo ログのパーティションが健全な状態であれば、データベースクライアント障害検証機能は動的パフォーマンスビュー v$sysstat に問い合わせて、データベースパフォーマンスの統計情報を取得します。統計の変化は、データベースが稼働していることを意味します。続けて問い合わせても、統計情報に変化がない場合、障害検証機能がデータベーストランザクションを実行し、データベースが稼働しているかどうかを判断します。このトランザクションにはユーザーテーブル空間におけるテーブルの作成、更新、および削除が伴います。

データベースクライアント障害検証機能は、すべてのトランザクションを Oracle ユーザーとして実行します。このユーザーの ID は、「ノードを準備する」で説明したとおり、ノードを準備するときに指定します。

データベーストランザクションが失敗した場合のサーバー障害モニターのアクション

データベーストランザクションが失敗すると、サーバー障害モニターは、失敗の原因であるエラーによって決定されたアクションを実行します。サーバー障害モニターが実行するアクションを変更する場合は、「Sun Cluster HA for Oracle サーバー障害モニターのカスタマイズ」の説明に従って、サーバー障害モニターをカスタマイズしてください。

外部プログラムを実行する必要があるアクションの場合、外部プログラムは別個のプロセスとしてバックグラウンドで実行されます。

実行できるアクションは、次のとおりです。

サーバー障害モニターが記録した警告の走査

Oracle ソフトウェアは、警告を警告ログファイルに記録します。このファイルの絶対パスは、 SUNW.oracle_server リソースの alert_log_file 拡張プロパティーによって指定されます。サーバー障害モニターは、次の場合に警告ログファイルを走査して、新しい警告があるかどうかを確認します。

サーバー障害モニターが検出した記録済みの警告に対してアクションが定義されている場合は、警告への対応としてそのアクションが実行されます。

記録対象警告に対してどのようなアクションが前もって設定されているかについては、表 2 を参照してください。サーバー障害モニターが実行するアクションを変更する場合は、「Sun Cluster HA for Oracle サーバー障害モニターのカスタマイズ」の説明に従って、サーバー障害モニターをカスタマイズしてください。