うんちくメモ

ただのメモです。内容は妄想の可能性があります

OCRディスクのミラーからのリカバリ方法

・別途ocrconfig -export 等で取得したエクスポートファイルがあれば復旧は容易だが、利用できない場合の対処法の一つとして苦い経験からのメモ

前提:CRSが起動しているノードがクラスタ内に存在するか、どうかで手順が異なる
   CRSが起動しているノード同士では設定情報が共有されるため、
   1ノードで復旧させれば全ノード復旧となる。

   ★CRS生存ノードとダウンノードでは同様の処理に対してコマンドが異なるため注意が必要

■CRS生存ノードが存在する場合:
 生存ノードを取り敢えず復旧するが、復旧した設定を
 ダウン中のノードに直接反映させることが出来ない。
 従って、復旧した生存ノードの設定状況を確認し、手動で
 ダウン中ノードに対して復旧を行わなければならない。

■CRSが全てダウンしている場合:
 それぞれ個別に全て復旧させる必要がある。 

■コマンドの相違

replace :生存ノードにて、ocrをミラーへコピー(逆も)する際に用いる
     ※デバイスの引数を渡さない場合は「削除」するコマンドとなるため注意!
repair   :ダウンノードにて、上記と同様の作業の際に用いる
     ※デバイスの引数を渡さない場合は意味合いが異なるコマンドとなるため注意!
restore  :全障害時等に、自動バックアップファル(backup00.ocr等)を使用した復旧作業時に用いる
import   :exportコマンドで取得したバックアップを使用した復旧作業時に用いる

■ミラー損壊時の復旧コマンドの基本形(Windows2003環境)

●CRSが停止していない場合や、ディスク自体を再利用可能なケース

・ocrconfig -replace [オプション]
基本的に構成追加として用いるコマンドであるが、ディスク自体に障害がなく、再利用可能な場合(ddコマンド等でのデータ書き換え時等)には復旧可能な場合が多い

ocrconfig -replace [ ocr | ocrmirror ] [<file name>]

★ファイル名(デバイス名)を指定しない場合、第一引数で指定したファイルを削除する命令となってしまうため注意!

例:

ocrconfig -replace ocrmirror

OCRミラーを削除する

ocrconfig -replace ocrmirror /dev/raw/raw2

OCRミラーをraw2を使用して構成する


●CRSが起動できないノードが存在する場合の障害ノードでのコマンド
CRSが生きている場合には-replaceコマンドで事足りる場合が多いが、クラスタの中でCRSが停止してしまい、起動できなくなってしまっているノードが存在する場合、生存ノードでの復旧⇒停止ノードでの起動時のクラスタ再参加、という手順を踏まなければならないため、停止ノードでのコマンドは下記の様になる

・ocrconfig -repair [オプション]
基本的には-replaceに類似したコマンドではあるが、引数を指定しない場合の意味合いが多少異なるので更に注意

ocrconfig -repair ocr|ocrmirror [<filename>]

★ファイル名を指定しない場合、第一引数で指定したファイルを削除し、
対になるファイルをプライマリのOCRへと変更する

例:

ocrconfig -repair ocrOCRミラーがプライマリのOCRになる)


■Windows2003環境でのCRSがダウンしているノードが存在する状態からのOCRミラー復旧方法例
※各ノードそれぞれで復旧する(同時で無くても構わない)

★事前準備::全ノードで、CSSD,CRSD,EVMD,EVM logger daemons 等、CRSに関連
するプロセスを全て停止するが、OracleObjectManagerサービスは起動しておく。

0.ocrcheck コマンドにより現在の設定(各ミラーのデバイス/ファイル名)
 を確認

C:\>ocrcheck
Oracle Cluster Registryのステータスは次のとおりです:
        バージョン                  :          2
        領域合計(KB)     :    1045228
        使用済領域(KB)      :       5680
        使用可能な領域(KB) :    1039548
         ID                       :  654438641
         デバイス/ファイル名         : \\.\ocrcfg
                                    デバイス・ファイルの整合性チェックが成功しました
         デバイス/ファイル名         : \\.\ocrmirrorcfg
                                    デバイス・ファイルの整合性チェックが成功しました

         クラスタレジストリの整合性チェックが成功しました

1.ミラーを削除

ocrconfig -repair ocrmirror

2.%ORA_CRS_HOME%\bin\GUIOracleObjectManager.exe を実行

 a.「Oracle Link Name」がOCRMIRRORCFGとなっている行にチェックを入れ、
   Options -> Commit 実施(この時点でLink Nameが消える)

 b.「New Link Name」欄をクリックし、再度「OCRMIRRORCFG」を入力
  Options -> Commit 実施(この時点で再度Oracle Link Nameが表示)

 c.OracleObjectManager再起動

3.ミラーを1で確認したパスに指定

ocrconfig -repair ocrmirror \\.\ocrmirrorcfg

4.ocrcheckコマンドにより設定が反映されたか確認
 PROT-602 が発生する場合は下記コマンドでレジストリに反映させる

ocrconfig -overwrite

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\Ocr の ocrconfig_locを確認


■参考KROWN:125776、94470


■参考URL
Oracle Cluster Registryの追加、置換、修復および削除
http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/rac.111/E05739-03/votocr.htm#BABEGAAH