Oracle復旧
仮復旧:ORA-01261 からの ORA-12514 - think it over
- ディスク復旧したよ!
- やっぱりデータは無くなったよ!
との連絡を受け、Oracleの復旧、本番。
REDOログの復旧
仮復旧で強引に初期化パラメータからREDOログ多重化設定の一部(db_create_online_log_dest_3)を削除してしまったため、
ORA-00313: ログ・グループ4(スレッド1)のメンバーをオープンできません。
なエラーが出ている状態に。
まずはエラー解消するため、全てのロググループから、障害のあったディスクにあったメンバーを削除。
SQL> ALTER DATABASE DROP LOGFILE MEMBER 'E:\path\to\XXXX.LOG';
途中で
ORA-01609: ログ3はスレッド1の現在のログです - メンバーは削除できません
が発生した場合は、
SQL> ALTER SYSTEM SWITCH LOGFILE;
ログをswitchしてから再実行。
SQL> SELECT * FROM V$LOGFILE;
で削除した対象のログが本当に消えたかを確認。
で、復旧したディスク上にもともとのパス(E:\path\to\)を作っておき、
SQL> ALTER DATABASE ADD LOGFILE MEMBER 'E:\path\to\XXXX.LOG' TO GROUP 1;
でREDOログを再追加。
なお、初期構築時にOMFで設定した場合、もとの「_MF_」が含まれているファイル名で追加しようとすると、
ORA-01276: ファイルE:\path\to\XX_MF_XXXX.LOGは追加できません。ファイルにOracle Managed Filesのファイル名があります。
と怒られる。「_MF_」が出現しなければ問題なく追加できる。
SQL> SELECT * FROM V$LOGFILE;
で追加した対象のログが本当に追加されたかを確認。
「INVALID」になっていたらログをswitchすればOK。
制御ファイルの復旧
C, Dドライブに残っていた制御ファイルを元のファイル名で、Eドライブにコピー。
削除した初期化パラメータの復旧
バックアップしてあったSPFILEを元に戻す。