Oracle Data Guard/Oracle Active Data Guardを使用したスタンバイ運用におけるOracleリソースの起動、停止、監視処理について説明します。
Oracle インスタンスの起動
Oracle インスタンスの起動処理は以下のようになります。
su - <Oracleユーザー>
sqlplus /nolog
connect / as sysdba
startup nomount または startup mount
alter database mount; ("4"で startup nomount を行ったとき)
データベース・ロールに応じた処理を行います。
Oracleインスタンスリソースの設定で“PDBを使用”をyesに設定した場合、PDBを起動します。
プライマリ・データベースの場合
ALTER DATABASE OPEN;
alter pluggable database all open; ※“PDBを使用”をyesに設定した場合
フィジカル・スタンバイ・データベースの場合
Oracle インスタンスリソースの設定項目REDOApplyの設定値に応じた処理を行います。
ReceiveOnlyの場合
何も実施しません。
NormalApplyの場合
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING ARCHIVED LOGFILE DISCONNECT;
RealTimeApplyの場合
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
ReadOnlyOPENの場合
ALTER DATABASE OPEN;
alter pluggable database all open; ※“PDBを使用”をyesに設定した場合
RealTimeQueryNの場合
ALTER DATABASE OPEN;
alter pluggable database all open; ※“PDBを使用”をyesに設定した場合
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING ARCHIVED LOGFILE DISCONNECT;
RealTimeQueryRの場合
ALTER DATABASE OPEN;
alter pluggable database all open; ※“PDBを使用”をyesに設定した場合
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
ロジカル・スタンバイ・データベースの場合
Oracle インスタンスリソースの設定項目REDOApplyの設定値に応じた処理を行います。
ReceiveOnly、ReadOnlyOPEN、RealTimeQueryN、RealTimeQueryRの場合
ALTER DATABASE OPEN;
alter pluggable database all open; ※“PDBを使用”をyesに設定した場合
NormalApplyの場合
ALTER DATABASE OPEN;
alter pluggable database all open; ※“PDBを使用”をyesに設定した場合
ALTER DATABASE START LOGICAL STANDBY APPLY;
RealTimeApplyの場合
ALTER DATABASE OPEN;
alter pluggable database all open; ※“PDBを使用”をyesに設定した場合
ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;
スナップショット・スタンバイ・データベースの場合
ALTER DATABASE OPEN;
alter pluggable database all open; ※“PDBを使用”をyesに設定した場合
Oracle インスタンスの停止
Oracle インスタンスの停止処理は以下のようになります。
オペレーターによる userApplication の手動停止や手動切替えに伴う停止の場合
su - <Oracleユーザー>
sqlplus /nolog
connect / as sysdba
フィジカル・スタンバイ・データベース、またはロジカル・スタンバイ・データベースの場合、ログ適用サービスを停止します。
フィジカル・スタンバイ・データベースの場合
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
ロジカル・スタンバイ・データベースの場合
ALTER DATABASE ABORT LOGICAL STANDBY APPLY;
shutdown <immediate/abort/transactional> (StopModeStop で設定)
デフォルト : immediate
"5"で Oracle インスタンスが停止しない場合、shutdown abort ("5"で、abort 以外の場合)
"5"または"6"で Oracle インスタンスが停止しない場合、バックグラウンド・プロセスに SIGKILL を送信して強制停止
リソース異常 (Oracle 以外のリソース異常も含む) に伴う停止の場合
su - <Oracleユーザー>
sqlplus /nolog
connect / as sysdba
shutdown <immediate/abort> (StopModeFail で設定)
デフォルト : abort
"4"で Oracle インスタンスが停止しない場合、shutdown abort ("4"で、abort 以外の場合)
"4"または"5"で Oracle インスタンスが停止しない場合、バックグラウンド・プロセスに SIGKILL を送信して強制停止
Oracle インスタンスの監視
Oracle インスタンスの監視処理は以下のようになります。
Oracleバックグラウンド・プロセス(PMON・SMON)の存在を30秒間隔(固定)で確認。
Oracleインスタンスが起動し、プロセス(PMON・SMON)の存在を確認した場合は"2"へ進む。
su - <Oracleユーザー>
OracleデータベースのSYSTEMユーザー、またはSYSDBA権限にてOracleインスタンスへローカル接続。
プライマリ・データベース、ロジカル・スタンバイ・データベース、またはスナップショット・スタンバイ・データベースの場合、Oracleインスタンスのステータスが“OPEN”であるかを確認します。
フィジカル・スタンバイ・データベースの場合、Oracleインスタンスのステータスが“MOUNTED”または“OPEN”であるかを確認します。
Oracleバックグラウンド・プロセス(PMON・SMON・DBWn・LGWR・CKPT)の生存を監視。
監視間隔はデフォルト30秒で、設定項目「監視間隔(Interval)」で変更可能です。
プライマリ・データベースの場合、「監視間隔(Interval)」に設定された監視間隔でSQL監視を実行。SQL監視は、SYSTEM ユーザーのデフォルト表領域上の監視用テーブルに対し、SQL(INSERT・UPDATE・DELETE・COMMIT) が正常に実施できるかを確認します。ただし、前回のSQL監視からの経過時間をチェックし、60秒以上経過している場合にのみSQL監視を実行します。
PDBを監視。
Oracleインスタンスリソースの設定で“PDBを使用”をyesに設定し、かつCDBをOPEN状態で起動した場合、「監視間隔(Interval)」に設定された監視間隔でPDBの監視を実行します。V$PDBS表で各PDBのOPEN_MODEを確認します。
24時間に1度、Oracleインスタンスへ再接続。
待機ノードでは、"1"を実行し、Oracleバックグラウンド・プロセス(PMON・SMON)が存在しないことを確認します。
PDBの監視
V$PDBS表で各PDBのOPEN_MODEを確認します。
プライマリ・データベース、ロジカル・スタンバイ・データベース、スナップショット・スタンバイ・データベースの場合
OPEN_MODEが“READ WRITE”の場合は、PDBが正常と判断します。
OPEN_MODEが“READ WRITE”以外の場合は、PDBが異常と判断します。
フィジカル・スタンバイ・データベースの場合
Oracle インスタンスリソースの設定項目REDOApplyの設定値に応じた処理を行います。
ReceiveOnly、NormalApply、RealTimeApplyの場合
PDBを監視しません。
ReadOnlyOPEN、RealTimeQueryN、RealTimeQueryRの場合
OPEN_MODEが“READ ONLY”の場合は、PDBが正常と判断します。
OPEN_MODEが“READ ONLY”以外の場合は、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を使用しない環境と同じです。
"3.1.1 スタンバイ運用の場合"を参照してください。
ASMインスタンスの起動、停止、監視
ASMインスタンスの起動・停止・監視は、Oracle Data Guardを使用しない環境と同じです。
"3.1.1 スタンバイ運用の場合"を参照してください。