第3章 運用
3.1 クラスタ環境における Oracle データベースの制御
3.1.1 スタンバイ運用の場合
3.1.1.2 スタンバイ運用におけるOracleリソースの監視
3. “2”で Oracle ASM が停止しない場合、以下を実行(“2”で、abort 以外の場合) sqlplus /nolog
connect / as sysdba (Oracle Database 11g 以降は connect / as sysasm) shutdown abort
4. “2”または“3”で Oracle ASM が停止しない場合、バックグラウンド・プロセスに SIGKILL を送信して強制停止
- 監視のSQL 文が一定時間応答せず監視タイムアウトが発生した場合
監視タイムアウトが発生した場合、再度監視を実施し、SQL文から応答があればOnlineを通知します。
・ フェイルオーバとなる Oracle データベース異常
Oracleデータベースの異常を検出しOfflineを通知した場合、リソース異常となりフェイルオーバします。
Oracleインスタンスリソースの設定で、AutoRecover(A) が有効の場合、リソース異常となる前にリソースを再起動し復旧を試みま す。AutoRecover(A) については、「2.2.7.2 Oracle リソースの作成」を参照してください。
以下の場合に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を検出した場
合、異常と判断します。詳細は、「付録H (参考)アクション定義ファイル」を参照してください。
例
以下の場合が該当します。
- 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 Data Guard/Oracle Active Data Guard環境でのPDBの監視については、“G.1 機能概要”を参照してください。
注意
フェイルオーバは、userApplication (クラスタアプリケーション) のAutoSwitchOverの設定に従います。 ResourceFailure(リソース故障 時)を有効としている場合は、リソース異常でフェイルオーバします。userApplication (クラスタアプリケーション) の設定については、
「PRIMECLUSTER 導入運用手引書」を参照してください。
リスナーの監視
リスナーの監視処理は以下のようになります。
1. psコマンドを使用し、リスナープロセスの生存を監視。
監視間隔はデフォルト30秒で、設定項目「監視間隔(Interval)」で変更可能です。
2. 「監視間隔(Interval)」に設定された監視間隔でtnsping コマンドを実行。
ネット・サービス名に到達できるかを確認します。
ただし、前回のtnspingコマンド実行からの経過時間をチェックし、60秒以上経過している場合にのみtnspingコマンドを実行しま す。
注意
本監視は、Oracleリスナーリソースの設定で、TNSName(OracleTNS名)が設定されている場合に実行されます。TNSNameにつ いては、「2.2.7.2 Oracle リソースの作成」を参照してください。
待機ノードでは、“1”を実行し、リスナープロセスが存在していないことを確認します。
・ 監視タイムアウト
tnspingコマンドからの応答が一定時間返らない場合、監視タイムアウトと判定し、Oracleリスナーリソースの状態を Warning にしま
す。監視タイムアウトが2回連続して発生すると、リソース異常と判断してフェイルオーバさせます。
Oracle リスナーからの応答待ち時間 (監視タイムアウト時間) は、設定項目「監視タイムアウト(WatchTimeout)」で変更可能です。
・ フェイルオーバ
リスナーの異常を検出しOfflineを通知した場合、リソース異常となりフェイルオーバします。
Oracleリスナーリソースの設定で、AutoRecover(A) が有効の場合、リソース異常となる前にリソースを再起動し復旧を試みます。
AutoRecover(A) については、「2.2.7.2 Oracle リソースの作成」を参照してください。
以下の場合にOfflineを通知します。
- リスナープロセスが存在しない場合
- tnspingコマンドがエラーとなった場合
- 監視タイムアウトが2回連続して発生した場合
注意
フェイルオーバは、userApplication (クラスタアプリケーション) のAutoSwitchOverの設定に従います。 ResourceFailure(リソース故 障時)を有効としている場合は、リソース異常でフェイルオーバします。userApplication (クラスタアプリケーション) の設定について は、「PRIMECLUSTER 導入運用手引書」を参照してください。
Oracle ASMインスタンスの監視
Oracle ASM インスタンスの監視は行いません。NullDetector フラグが自動的に有効になります。