[Linux] Oracle Recovery Kit の処理概要

Oracle ARKが提供する監視機能と起動処理、停止処理についてご説明します。

対象製品
Oracle Recovery Kit (LifeKeeper for Linux)
※本処理概要は LifeKeeper for Linux v9.0.0 に付属するリカバリキットをもとに作成しています。

==== リスナーリソース ===================================================

監視処理
LKCHECKINTERVAL(デフォルト120秒)の間隔で、Oracle ARK の quickCheck を実行します。
監視処理のタイムアウト:15秒

1) リソースの状態が起動中(ISP)であるかを確認します。
  リソースが起動中のみ監視処理が続行され、リスナーリソースの情報を ins_list より取得します。

2) /tmp に監視処理用の一時ファイルを作成し、lsnrctl status よりリスナーの状態を取得します。

3) 2)で取得した状態からリスナーが動作しているかどうかを確認します。
  動作していなかった場合は、回復処理を実施します。

起動処理
1)リスナーの状態を取得します。

$ lsnrctl status

2)リスナーを起動します。
 リスナーが起動していない場合は以下のコマンドで起動します。

$ lsnrctl start

 既に起動している場合は処理は正常終了します。
 
3)リスナーの状態を取得します。

$ lsnrctl status

 起動出来なければ処理が異常終了します。
 
停止処理
1)リスナーの状態を取得します。

$ lsnrctl status

  
2)リスナーを停止します。
 リスナーが停止していない場合は以下のコマンドで停止します。

$ lsnrctl stop

 既に停止している場合は処理は正常終了します。
 
3)リスナーの状態を取得します。

$ lsnrctl status

 リスナーが停止出来ていなければ停止失敗として処理が終了します。
 (リソース切り替えは行いません)
 
回復処理
1)リソースの状態を確認します。

$ lsnrctl status

リソースが停止状態の場合はリカバリ処理は中断されます。
 
2)リスナーが停止していたら起動します。

$ lsnrctl start

 
3)リスナーの状態を取得します。

$ lsnrctl status

動作していれば正常終了します。

==== Oracleリソース ===================================================

監視処理

監視処理のタイムアウト:45秒(v7.5以前は40秒)

1)Oracle が動作しているかどうかを確認します。
 ora_pmon プロセスおよび ora_lgwr プロセスが存在するかどうかを ps コマンドで確認します。

# ps -ewwwwf

2)Oracle の起動状態を確認します。
 1.コネクションの状態を確認。
  DB へ接続し、以下の SQL を実行します。

SELECT * from dba_data_files;

 2.一時ファイルへ ORA エラーが出力されていないか確認。

異常を検出した場合はその旨を知らせるメッセージが lifekeeper.log に出力されます。
障害と判定された場合、ローカルリカバリ機能により同じサーバ上でOracleの再立ち上げを試行します。

起動処理

起動処理のタイムアウト:240秒(v7.5以前はタイムアウト無し)

1)インスタンスを確認します。

2)Oracle の SID を確認します。

3)sqlplus が利用できるかどうかを確認します。

4)Oracle の起動状態を確認します。
 監視処理の1)と2)を実施します。

 5)startup コマンドで Oracle を起動させます。
  起動しない場合は startup force オプションで再試行します。

停止処理

停止処理のタイムアウト:240秒(v7.5以前はタイムアウト無し)

1)インスタンスを確認します。

2)Oracle の SID を確認します。

3)sqlplus が利用できるかどうかを確認します。

4)Oracle の起動状態を確認します。
 監視処理の1)を実施します。

5)shutdown コマンドで Oracle を停止させます。
 停止しない場合は shutdown abort で強制停止を行います。

回復処理
回復処理は監視処理で異常と判断された場合に実施されます。

1)Oracle の SID を確認します。

2)Oracle リソースが ISP かどうかを確認します。

3)sqlplus が利用できるかどうかを確認します。

4)Oracle の起動状態を確認します。
 監視処理の1)を実施します。
 Oracle のプロセスが起動していなければ 5)へ進みます。

 Oracle のプロセスが起動している場合、監視処理の 2)を実施します。
 Oracle のプロセスが起動している、かつ、Oracle への接続処理に問題が無ければ
 Oracle は起動していると判断し、回復処理は正常終了します。

5)Oracle を shutdown abort で強制終了します。
 Oracle が停止出来ない場合、回復処理は異常終了しリソース異常となります。

6)Oracle を起動させます。
 startup を実行し、失敗したら startup force で起動を試みます。
 startup force でも起動が行えない場合、回復処理は異常終了しリソース異常となります。

7)Oracle の起動状態を確認します。
 監視処理の1)、2)を実施します。
 Oracle の起動が確認出来たら、回復処理は正常終了します。
 Oracle の起動が確認出来ない場合、回復処理は異常終了し、リソース異常となります。

==== 関連パラメータ ===================================================

下記テクニカルドキュメントにおいて、Oracle Recovery Kit のパラメータ名とその意味を説明しています。

Oracleパラメータ一覧
http://jpdocs.us.sios.com/Linux/9.0/LK4L/Parameters/index.htm#Parameters/Oracle_Parameters.htm

※デフォルトではすべての設定項目が未記載となります。
※設定を変更したい項目を /etc/default/LifeKeeper へ設定してください。

ORACLE_ORATABLOC
 oratab ファイルが /etc ディレクトリ、または /var/opt/oracle ディレクトリ以外に
 配置される場合に、oratab ファイルが配置されているディレクトリを指定します。
 デフォルト値:/var/opt/oracle

 ※本パラメータは Listener リソースと共通です。

LK_ORA_NICE
 最大許容接続に達した時に、原因となるデータベース接続障害に対してリカバリを試み
 るかどうかを指定します。

 0: リカバリ実行
 1: リカバリ回避(実行しない)

 デフォルト値:0

 <参考>
 Oracle データベースアカウントに対するユーザ名 / パスワードの変更
 http://jpdocs.us.sios.com/Linux/9.1/LK4L/Oracle/index.htm#Oracle/Changing_Username_Password_for.htm

ORACLE_QUICKCHECK_TIMEOUT
 監視処理時のタイムアウトを指定します。
 デフォルト値:45(秒)(v7.5以前は 40)

ORACLE_RESTORE_TIMEOUT
 リソース起動処理時のタイムアウトを指定します。
 デフォルト値:240(秒)(v7.5以前は タイムアウト無し)

ORACLE_REMOVE_TIMEOUT
 リソース停止時のタイムアウトを指定します。
 デフォルト値:240(秒)(v7.5以前は タイムアウト無し)

リスナーにつきましては下記 URL をご参考ください。

Oracleリスナーリソースのチューニングパラメータ
http://lk.sios.com/?p=734

改訂履歴
[公開日:2017年3月31日]
[改訂日:2017年6月22日]

return top