Sun Cluster HA for Oracle データサービスの障害モニタリングは、次の障害モニターが行います。
Oracle サーバー障害モニター
Oracle リスナー障害モニター
各障害モニターには、次の表に示すリソースタイプを持つリソースがあります。
表 4 Sun Cluster HA for Oracle 障害モニターのリソースタイプ
障害モニター |
リソース型 |
---|---|
Oracle サーバー |
SUNW.oracle_server |
Oracle リスナー |
SUNW.oracle_listener |
障害モニターの動作は、このリソースのシステムプロパティーと拡張プロパティーによって制御されます。事前に設定された障害モニターの動作は、これらのプロパティーのデフォルト値に基づいています。現在の動作は、ほとんどの Sun Cluster システムに適しているはずです。したがって、事前に設定されたこの動作を変更する場合「のみ」、障害モニターを調整してください。
Sun Cluster HA for Oracle 障害モニターの調整には、次のような作業があります。
障害モニターの検証間隔を設定する。
障害モニターの検証タイムアウトを設定する。
継続的な障害とみなす基準を定義する。
リソースのフェイルオーバー動作を指定する
詳細については、『Sun Cluster Data Services Planning and Administration Guide for Solaris OS』の「Tuning Fault Monitors for Sun Cluster Data Services」を参照してください。これらの作業を行うのに必要な Sun Cluster HA for Oracle 障害モニターについては、次の副節を参照してください。
Sun Cluster HA for Oracle を登録、構成する際に、Sun Cluster HA for Oracle 障害モニターを調整します。詳細については、「Sun Cluster HA for Oracle の登録と構成」を参照してください。
Oracle サーバーの障害モニターは、サーバーへのリクエストを使用して、サーバーの状態をクエリします。
サーバー障害モニターは、pmfadm を介して起動され、モニターの可用性を高めます。何らかの理由でモニターが終了すると、手順モニター機能 (PMF) がモニターを自動的に再起動します。
サーバー障害モニターは、次の要素から構成されます。
主要障害モニター手順
データベースクライアント障害プローブ
このセクションには、サーバー障害モニターに関する次の情報が含まれています。
主要障害モニターは、データベースがオンラインで、トランザクション中にエラーが返されない場合、操作が成功したと見なします。
データベースクライアント障害プローブは、次の操作を実行します。
アーカイブされた再実行ログの区分のモニター「アーカイブされた再実行ログの区分をモニターする操作」を参照してください。
区分が健全である場合、データベースが操作可能かどうかを決定します。「データベースが操作可能かどうかを決定する操作」を参照してください。
プローブは、リソースプロパティ Probe_timeout で設定されているタイムアウト値を使用して、Oracle のプローブを成功させるために割り当てる時間を決定します。
データベースクライアント障害プローブは、動的パフォーマンス表示 v$archive_dest をクエリーし、アーカイブされた再実行ログのすべての可能な送信先を決定します。すべてのアクティブな送信先に対して、プローブは送信先が健全で、アーカイブされた再実行ログを保存するための十分な空き容量があるかどうかを決定します。
送信先が健全である場合、プローブは送信先のファイルシステムの空き容量を決定します。空き容量がファイルシステム容量の 10% 未満で、20 M バイト未満の場合、プローブは syslog にメッセージを出力します。
送信先が ERROR 状態の場合、プローブは syslog にメッセージを出力し、データベースが操作可能かどうかを判定するために操作を無効にします。操作は、エラー状態がクリアされるまで無効のままです。
アーカイブされた再実行ログ用の区分が健全な場合、データベースクライアント障害プローブは動的パフォーマンス表示 v$sysstat をクエリーし、データベースパフォーマンス統計を取得します。これらの統計が変更されている場合、データベースが操作されていることを示します。連続したクエリー間で統計が変化しなかった場合、障害プローブはデータベーストランザクションを実行し、データベースが運用されているかを判定します。これらのトランザクションには、ユーザー表スペースでの、表の作成、更新およびドロップが関係しています。
データベースクライアント障害プローブは、Oracle ユーザーとしてすべてのトランザクションを実行します。このユーザーの ID は、「ノードの準備方法」に説明されているように、ノードまたはゾーンの準備中に指定されます。
データベーストランザクションに失敗した場合、サーバー障害モニターは障害の原因になったエラーによって決定されるアクションを実行します。サーバー障害モニターが実行するアクションを変更するには、「Sun Cluster HA for Oracle サーバー 障害モニターのカスタマイズ」に説明されているように、サーバー障害モニターをカスタマイズします。
アクションで外部プログラムの実行が必要な場合、そのプログラムはバックグラウンドで別のプロセスとして実行されます。
可能なアクションは、次のとおりです。
無視。サーバー障害モニターはエラーを無視します。
モニター停止。データベースをシャッドダウンせずに、サーバー障害モニターが停止されます。
再起動。サーバー障害モニターは、Restart_type 拡張プロパティーの値によって指定されたエンティティーを停止および再起動します。
Restart_type 拡張プロパティーが RESOURCE_RESTART に設定されている場合、サーバー障害モニターはデータベースサーバーリソースを再起動します。デフォルトでは、サーバー障害モニターはデータベースサーバーリソースを再起動します。
Restart_type 拡張プロパティーが RESOURCE_GROUP_RESTART に設定されている場合、サーバー障害モニターはデータベースサーバーリソースグループを再起動します。
再起動を試みる回数は、Retry_interval リソースプロパティが指定する時間内に、Retry_count リソースプロパティが指定した値を超えることがあります。この状況が生じた場合、サーバー障害モニターは、別のノードやゾーンへのリソースグループの切り換えを試みます。
切り換え。サーバー障害モニターは、データベースサーバーリソースグループを別のノードまたはゾーンに切り換えます。使用可能なノードまたはゾーンがない場合、リソースグループを切り換える試みは失敗します。リソースグループを切り換える試みが失敗すると、データベースサーバーは再起動されます。
Oracle ソフトウェアは、警告を警告ログファイルに記録します。このファイルの絶対パスは、SUNW.oracle_server リソースの alert_log_file 拡張プロパティーにより指定されます。サーバー障害モニターは、次のタイミングで新しい警告があるかどうか、警告ログファイルをスキャンします。
サーバー障害モニターが起動されたとき
サーバー障害モニターがサーバーの健全性をクエリーするたび
サーバー障害モニターが検出する警告ログに対するアクションが定義されている場合、サーバー障害モニターは警告に対してアクションを実行します。
記録された警告用の事前設定アクションは、表 2 に一覧表示されています。サーバー障害モニターが実行するアクションを変更するには、「Sun Cluster HA for Oracle サーバー 障害モニターのカスタマイズ」に説明されているように、サーバー障害モニターをカスタマイズします。
Oracle リスナー障害モニターは、Oracle リスナーの状態を確認します。
リスナーが実行されている場合、Oracle リスナー障害モニターはプローブが成功したと見なします。障害モニターがエラーを検出すると、リスナーは再起動されます。
リスナーリソースは、リスナーパスワードを設定する機構を提供していません。Oracle リスナーセキュリティが有効の場合、リスナー障害モニターによって、プローブは Oracle エラー TNS-01169 を返すことがあります。リスナーは応答することができるので、リスナー障害モニターはプローブが成功したものと見なします。このアクションのためにリスナーが検出されないままになるという障害が生じることはありません。リスナーが故障している場合、異なるエラーが返されるか、プローブがタイムアウトになります。
リスナープローブは、pmfadm を介して起動することで、プローブの可用性を高めます。プローブが終了した場合、PMF は自動的にプローブを再起動します。
プローブ中にリスナーに問題が生じた場合、プローブはリスナーの再起動を試みます。リソースプロパティ retry_count に設定されている値は、プローブが再起動を試みる最大回数を決定します。最大回数まで起動を試みても、まだプローブが成功しない場合は、プローブは障害モニターを停止し、リソースグループの切り換えを行いません。
不明な DBMS タイムアウトのトラブルシューティングを容易にするために、障害モニターを有効にして、プローブタイムアウトが生じたときにコアファイルを作成することができます。コアファイルの内容は、障害モニター手順に関連します。障害モニターは、/ ディレクトリにコアファイルを作成します。障害モニターがコアファイルを作成できるためには、coreadm コマンドを使用して set-id コアダンプを有効にします。詳細は、coreadm(1M) のマニュアルページを参照してください。