Oracle インスタンスの監視
Oracle インスタンスの監視処理は以下のようになります。
Oracleバックグラウンド・プロセス(PMON・SMON)の存在を30秒間隔(固定)で確認。
Oracleインスタンスが起動し、プロセス(PMON・SMON)の存在を確認した場合は 2 へ進む。
su - <Oracle ユーザー>
Oracleデータベースの SYSTEM ユーザーで Oracleインスタンスへローカル接続。
Oracleインスタンスのステータスが OPEN であることを確認した場合は 5 へ進む。
Oracleバックグラウンド・プロセス(PMON・SMON・DBWn・LGWR・CKPT)の生存を監視。
監視間隔はデフォルト30秒で、設定項目「監視間隔(Interval)」で変更可能です。
「監視間隔(Interval)」に設定された監視間隔でSQL監視を実行。
SQL監視は、SYSTEM ユーザーのデフォルト表領域上の監視用テーブルに対し、SQL(INSERT・UPDATE・DELETE・COMMIT) が正常に実施できるかを確認します。
ただし、前回のSQL監視からの経過時間をチェックし、60秒以上経過している場合にのみSQL監視を実行します。
PDBの監視
Oracleインスタンスリソースの設定で“UsePDB”をyesにした場合、「監視間隔(Interval)」に設定された監視間隔でPDBの監視を実行します。
V$PDBS表で各PDBのOPEN_MODEを確認します。
Oracle Data Guard、Oracle Active Data Guard環境では、CDBがOPEN状態(PDBが起動可能な状態)で起動された場合に実行されます。Oracle Data Guard、Oracle Active Data Guard環境でのCDBとPDBの起動については、「F.1 機能概要」「CDBとPDBの起動・停止」を参照してください。
24時間に1度、Oracleインスタンスへ再接続します。
待機ノードでは、 1 を実行し、Oracleバックグラウンド・プロセス(PMON・SMON)が存在しないことを確認します。
SYSTEM ユーザーのパスワード
PRIMECLUSTER Wizard for Oracle によるOracleインスタンスの監視は SYSTEM ユーザーで行います。「4.3 clorapass - 監視用パスワードの登録」に従って、SYSTEM ユーザーのパスワードを PRIMECLUSTER Wizard for Oracle に登録してください。
監視用テーブル (FAILSAFEORACLE_<ORACLE_SID>)
PRIMECLUSTER Wizard for Oracle は、監視のために監視用テーブルを SYSTEM ユーザーのデフォルト表領域上に作成します (初回起動時や、監視時の監視用テーブルが存在しない場合自動作成されます)。監視用テーブルは削除されません。
WarningとなるOracleデータベース異常
以下の異常を検出した場合、Warningを通知します (Fault ではないためフェイルオーバはしません)。
clorapass コマンドで登録された SYSTEM ユーザーのパスワードが誤っており Oracleインスタンスに接続できない場合 (ORA-01017を検出)
SYSTEM ユーザーのアカウントがロックされており、Oracleインスタンスに接続できない場合 (ORA-28000を検出)
SYSTEM ユーザーのパスワードが期限切れとなり、監視機能がOracleインスタンスに接続できない場合 (ORA-28001を検出)
max session エラー、max process エラーなどで Oracleインスタンスに接続できない場合 (ORA-00018 や ORA-00020を検出)
監視の SQL 文が一定時間応答せず監視タイムアウトが発生した場合
監視タイムアウトが発生した場合、再度監視を実施し、SQL文から応答があればOnlineを通知します。
フェイルオーバとなるOracleデータベース異常
Oracleデータベースの異常を検出しOfflineを通知した場合、リソース異常となりフェイルオーバします。
Oracleインスタンスリソースの設定で、AutoRecover(A) が有効の場合、リソース異常となる前にリソースを再起動し復旧を試みます。AutoRecover(A) については、「2.2.7.1 Oracle リソースの作成と userApplication への登録」を参照してください。
以下の場合にOfflineを通知します。
バックグラウンド・プロセス (PMON・SMON・DBWn・LGWR・CKPT)のどれか1つでも存在しない場合
例
以下の場合が該当します。
インスタンスが異常終了した場合
監視を中断せずにインスタンスを停止した場合
SQL 文を実行したが Oracleデータベースからエラー (ORA-xxxxx) が返された場合
SQL 監視でエラー (ORA-xxxxx) が発生した場合、Wizard for Oracle は、アクション定義ファイル(/opt/FJSVclora/etc/FJSVclorafm.actionlist) に従った動作をします。アクション定義ファイルで Of が定義されているORA-xxxxxを検出した場合、異常と判断します。詳細は、「付録G (参考)アクション定義ファイル」を参照してください。
例
以下の場合が該当します。
ORA-4031(共有プール不足)のエラーが発生した場合
SQL 文を実行したが監視タイムアウトが2回連続で発生した場合
SQL 文を実行しても300 秒間(デフォルト)応答が無かった場合は「監視タイムアウト」となり、Oracleインスタンスリソースは Warning 状態となります。その後、Oracleインスタンスへ再接続を試みますが、接続処理でも 300秒間応答が無かった場合は、異常と判断します。
監視タイムアウトの300秒は、設定項目「監視タイムアウト(WatchTimeout)」で変更可能です。
例
以下の場合が該当します。
アーカイブログ領域の枯渇などで、Oracleデータベースがハングした場合
システム負荷が高負荷状態の場合
PDBの監視
V$PDBS表で各PDBのOPEN_MODEを確認します。OPEN_MODEが“READ WRITE”の場合はPDBが正常と判断します。OPEN_MODEが“READ WRITE”以外の場合はPDBが異常と判断します。
「監視間隔(Interval)」に設定された監視間隔でPDBの監視を実行し、前回の監視時から状態が変わった場合はsyslogへメッセージを出力します。PDBの異常による再起動やフェイルオーバは行いません。
PDBが正常な状態になった場合は以下のメッセージを出力します。
FSP_PCLW-ORACLE_FJSVclora: INFO: 9142: OPEN_MODE of PDB <PDB名> was OPEN. (CDB=<CDBのORACLE_SID> PDB=<PDB名> OPEN_MODE=<PDBのステータス>)
PDBの異常を検出した場合は以下のメッセージを出力します。
FSP_PCLW-ORACLE_FJSVclora: ERROR: 9242: clorapdbmon detected OPEN_MODE of PDB <PDB名> is invalid. (CDB=<CDBのORACLE_SID> PDB=<PDB名> OPEN_MODE=<PDBのステータス>)
Oracle Data Guard/Oracle Active Data Guard環境でのPDBの監視については、「F.1 機能概要」を参照してください。
注意
フェイルオーバは、userApplication (クラスタアプリケーション) のAutoSwitchOverの設定に従います。 ResourceFailure(リソース故障時)を有効としている場合は、リソース異常でフェイルオーバします。userApplication (クラスタアプリケーション) の設定については、「PRIMECLUSTER 導入運用手引書」を参照してください。
リスナーの監視
リスナーの監視処理は以下のようになります。
psコマンドを使用し、リスナープロセスの生存を監視。
監視間隔はデフォルト30秒で、設定項目「監視間隔(Interval)」で変更可能です。
「監視間隔(Interval)」に設定された監視間隔でtnsping コマンドを実行。
ネット・サービス名に到達できるかを確認します。
ただし、前回のtnspingコマンド実行からの経過時間をチェックし、60秒以上経過している場合にのみtnspingコマンドを実行します。
注意
本監視は、Oracleリスナーリソースの設定で、TNSName(OracleTNS名)が設定されている場合に実行されます。TNSNameについては、「2.2.7.1 Oracle リソースの作成と userApplication への登録」を参照してください。
待機ノードでは、“1”を実行し、リスナープロセスが存在していないことを確認します。
監視タイムアウト
tnspingコマンドからの応答が一定時間返らない場合、監視タイムアウトと判定し、Oracleリスナーリソースの状態を Warning にします。監視タイムアウトが2回連続して発生すると、リソース異常と判断してフェイルオーバさせます。
Oracle リスナーからの応答待ち時間 (監視タイムアウト時間) は、設定項目「監視タイムアウト(WatchTimeout)」で変更可能です。
フェイルオーバ
リスナーの異常を検出しOfflineを通知した場合、リソース異常となりフェイルオーバします。
Oracleリスナーリソースの設定で、AutoRecover(A) が有効の場合、リソース異常となる前にリソースを再起動し復旧を試みます。AutoRecover(A) については、「2.2.7.1 Oracle リソースの作成と userApplication への登録」を参照してください。
以下の場合にOfflineを通知します。
リスナープロセスが存在しない場合
tnspingコマンドがエラーとなった場合
監視タイムアウトが2回連続して発生した場合
注意
フェイルオーバは、userApplication (クラスタアプリケーション) のAutoSwitchOverの設定に従います。 ResourceFailure(リソース故障時)を有効としている場合は、リソース異常でフェイルオーバします。userApplication (クラスタアプリケーション) の設定については、「PRIMECLUSTER 導入運用手引書」を参照してください。
Oracle ASM インスタンスの監視
Oracle ASM インスタンスの監視は行いません。NullDetector フラグが自動的に有効になります。