#Oracle RMANでバックアップしたものを使って全損からリストアする

公開日: 

Oracleが全損、もしくは他サーバに同じOracleを建てたい時の備忘録。

順番は空でも覚えていたけどやり方はすっかり忘れていたのでメモしとかないダメですね。

全損から戻せればあとはきっとどんな状況でも対応できる・・・はず・・・!

sponcer link

概要

環境は以下のとおり

OS : Oracle Linux 5.4
Oracle Version : 11.2.0.1.0
インスタンス名 : PROD1
データファイルを置いてるディレクトリ:/u01/app/oracle/oradata/prod1
高速リカバリ領域:/u01/app/oracle/flash_recovery_area
バックアップするディレクトリ : /backup
アーカイブログモード:YES!!

rmanを使ってバックアップファイル、アーカイブログ、redoログを駆使して戻すことを想定して実施します。

バックアップ手順

データファイルと同時にアーカイブログと制御ファイルも一緒にオンラインでバックアップを取得する

バックアップの確認

次にバックアップ後にデータを更新しておく。
まずは現在のredoログを確認する。現在はsequence 5に書き込んでいる模様

データを書き込む

redoログが1週するまでアーカイブログを出力する。5は無事上書きされていきました。

改めて、現在のREDOログ(sequence#8)にもデータを残しておく

リストア手順

別サーバ、もしくは新規にOracleをインストールしなおしたサーバなどにバックアップを転送する。

バックアップ後に出力したアーカイブログも同じbackupディレクトリにおいておく

データファイルのあったディレクトリや高速リカバリ領域のディレクトリを作成しておく

redoログもあるなら元サーバから元の位置にコピーしておく(稼働してる途中にこぴってくるでもOKだった)

パスワードファイルを作成、もしくは復元する。作成の場合は以下のとおり。

制御ファイルをとった時についでにspfileもバックアップされているのでそれを使ってspfileを復元し、nomountで立ち上げる。
別途spfileのバックアップを取っており、すぐ復元できるならそちらを使うでもOK

制御ファイルを復元してマウントする

バックアップの対象となるファイルを登録。最後にも/をいれるのがコツ。
これをすることでバックアップ後にとったアーカイブログなどもrmanでリカバリの時に自動的に見てくれるようになる。

データをリストア/リカバリする

※番外編:sequenceの指定してリカバリ
アーカイブログしかなかったり、中途半端なredoログしかなければsequenceを指定してリカバリすることも可能

ちなみに他にも時間での指定とかも出来ます
※番外編ここまで

バックアップの制御ファイルから戻したのでredoログを作りなおしてopenする

データがきちんと戻っているのを確認する

これでいざというときになんとか復元できるはずっ!!

  • このエントリーをはてなブックマークに追加
  • Pocket
PAGE TOP ↑