私はOracleを使い始めたばかりで、いくつか問題があります。私のデータベースはNONARCHIVELOGモードです。私は2つのバックアップを作成しました:それらは場所にあります:
/opt/Oracle/flash_recovery_area/CTGINST1/backupset/ol_mf_____20130408.bkp
/opt/Oracle/flash_recovery_area/CTGINST1/backupset/ol_mf_____20130407.bkp
4月7日から2番目のファイルを復元したい。私はいくつかのガイドを読みます: http://orafusion.com/art_rman3.htm
しかし、これら2つ(またはそれ以上)の特定のバックアップファイルを使用して復元コマンドを指定する方法を見つけることができません。このリンクや私が読んだ他のリンクには書かれていません。 [〜#〜] rman [〜#〜]コマンドで使用したい。古いバックアップを復元するコマンドは何ですか?
見つけた
RMAN> restore database;
しかし、どのようにして復元するファイルを知るのでしょうか?また、追加のバックアップをいくつか作成しなかったため(コマンドbackup database
を実行しただけなので)、常にspfileと制御ファイルを復元する必要がありますか?
ありがとうございました!!
TL; DR:restore database from tag 'INTERESTING_TAG';
のように、データベースを復元するバックアップのタグを指定するだけです
[〜#〜]免責事項[〜#〜]
ここで提供される解決策は、私の経験にのみ基づいており、あなた自身のリスクでそれを使用します。私は、このソリューションの使用によって引き起こされたいかなる損害(データ損失を含む)について責任を負いません。
また、追加のバックアップを作成しなかった(コマンド
backup database
を実行しただけ)ため、常にspfileと制御ファイルを復元する必要がありますか?
デフォルトでは、RMANは、バックアップが成功した後、およびデータベースの構造が変更されるたびに(たとえば、データファイルの追加)、制御ファイルとspfileを自動的にバックアップするように構成されています。したがって、backup database
を使用してデータベースが正常にバックアップされるたびに、spfileと制御ファイルが自動的にバックアップされます。
RMANでshow controlfile autobackup;
を発行して自動バックアップが有効かどうかを確認し、RMANでconfigure controlfile autobackup on;
と言って有効にすることができます。
データベースを復元するバックアップセットへのパスを指定したので、RMANを使用して現在の制御ファイルからパスを取得したものと想定しています。以前の制御ファイルの1つを復元すると、この情報が失われる可能性があるため、この情報と既存のバックアップに関するその他の情報をプレーンテキストファイルに保存しても問題はありません。
[Oracle@oca ~]$ export NLS_DATE_FORMAT='DD-MON-YY HH24:MI:SS'
[Oracle@oca ~]$ rman target=/ log 'list_backup.txt'
RMAN> list backup;
RMAN> exit;
データベース[〜#〜]および[〜#〜]の制御ファイルを復元する必要があります。データファイルは制御ファイルと同期している必要があります。 e。同じシステム変更番号(SCN)が必要です。
すでに述べたように、特定のバックアップからデータベースを復元するには、タグ名を指定するだけです。ユーザーまたはシステムによってバックアップに割り当てられたタグ、バックアップの完了日時、およびRMANでlist backup
と示されているバックアップに関するその他の情報を確認できます(この情報はテキストファイルに既に保存されています)。 。これは、サンプルインストールでのlist backup
の出力です。
RMAN> list backup;
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ------------------
78 Full 300.26M DISK 00:01:40 10-APR-13 05:10:32
BP Key: 78 Status: AVAILABLE Compressed: YES Tag: TAG20130410T050852
Piece Name: /u01/app/Oracle/fast_recovery_area/OCAEXAM/backupset/2013_04_10/o1_mf_nnndf_TAG20130410T050852_8pbc14yv_.bkp
List of Datafiles in backup set 78
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- ------------------ ----
1 Full 3985848 10-APR-13 04:52:40 /u01/app/Oracle/oradata/ocaexam/system01.dbf
2 Full 3985848 10-APR-13 04:52:40 /u01/app/Oracle/oradata/ocaexam/sysaux01.dbf
3 Full 3985848 10-APR-13 04:52:40 /u01/app/Oracle/oradata/ocaexam/undotbs01.dbf
4 Full 3985848 10-APR-13 04:52:40 /u01/app/Oracle/oradata/ocaexam/users01.dbf
5 Full 3985848 10-APR-13 04:52:40 /u01/app/Oracle/oradata/ocaexam/example01.dbf
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ------------------
79 Full 9.39M DISK 00:00:02 10-APR-13 05:10:39
BP Key: 79 Status: AVAILABLE Compressed: NO Tag: TAG20130410T051037
Piece Name: /u01/app/Oracle/fast_recovery_area/OCAEXAM/autobackup/2013_04_10/812350360_8pbk.bkp
SPFILE Included: Modification time: 10-APR-13 04:55:39
SPFILE db_unique_name: OCAEXAM
Control File Included: Ckp SCN: 3985848 Ckp time: 10-APR-13 04:52:40
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ------------------
80 Full 300.30M DISK 00:01:39 10-APR-13 05:18:03
BP Key: 80 Status: AVAILABLE Compressed: YES Tag: DELETE_ME
Piece Name: /u01/app/Oracle/fast_recovery_area/OCAEXAM/backupset/2013_04_10/o1_mf_nnndf_DELETE_ME_8pbch94j_.bkp
List of Datafiles in backup set 80
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- ------------------ ----
1 Full 3986589 10-APR-13 05:12:33 /u01/app/Oracle/oradata/ocaexam/system01.dbf
2 Full 3986589 10-APR-13 05:12:33 /u01/app/Oracle/oradata/ocaexam/sysaux01.dbf
3 Full 3986589 10-APR-13 05:12:33 /u01/app/Oracle/oradata/ocaexam/undotbs01.dbf
4 Full 3986589 10-APR-13 05:12:33 /u01/app/Oracle/oradata/ocaexam/users01.dbf
5 Full 3986589 10-APR-13 05:12:33 /u01/app/Oracle/oradata/ocaexam/example01.dbf
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ------------------
81 Full 9.39M DISK 00:00:01 10-APR-13 05:18:11
BP Key: 81 Status: AVAILABLE Compressed: NO Tag: TAG20130410T051810
Piece Name: /u01/app/Oracle/fast_recovery_area/OCAEXAM/autobackup/2013_04_10/812351553_8pbm.bkp
SPFILE Included: Modification time: 10-APR-13 05:13:53
SPFILE db_unique_name: OCAEXAM
Control File Included: Ckp SCN: 3986589 Ckp time: 10-APR-13 05:12:33
この出力から、最初のバックアップに(自動的に)タグTAG20130410T050852
が割り当てられ、制御ファイルとspfile自動バックアップがすぐに続くことがわかります([完了時間]フィールドを確認します)。また、別のデータベースバックアップを実行し、それに手動でタグDELETE_ME
を割り当てたことがわかります。もちろん、直後に自動バックアップも続きます。また、すべてのバックアップのファイルには同じSCNがあり、SCNは隣接する自動バックアップの制御ファイルのSCNと一致することに注意してください。
TAG20130410T050852
とタグ付けされた他のバックアップよりも古いDELETE_ME
とタグ付けされたバックアップからデータベースを復元し、最初に自動バックアップから制御ファイルを復元します。
RMANを使用したバックアップから制御ファイルを復元するには、インスタンスをNOMOUNT
状態にする必要があります(この状態では、インスタンス制御ファイルによってspfileのみがアクセスされ、データファイルはアクセスされません)。
RMAN> shutdown immediate;
RMAN> startup nomount;
connected to target database (not started)
Oracle instance started
database mounted
(ただし、abort
の代わりにimmediate
句を使用することもできます。そうすれば、Oracleはデータベースを順番にシャットダウンする必要がなくなります。とにかく、以前のバックアップからデータベースを復元します。)
自動バックアップから制御ファイルを復元します。
RMAN> restore controlfile from
2> '/u01/app/Oracle/fast_recovery_area/OCAEXAM/autobackup/2013_04_10/812350360_8pbk.bkp';
Starting restore at 10-APR-13 06:01:25
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=63 device type=DISK
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:02
output file name=/u01/app/Oracle/oradata/ocaexam/control01.ctl
output file name=/u01/app/Oracle/fast_recovery_area/ocaexam/control02.ctl
Finished restore at 10-APR-13 06:01:27
RMANが(list backup
を発行したときと同じように)制御ファイルのバックアップレコードを読み取れるようにするには、データベースをMOUNT
状態にする必要があります。
RMAN> sql 'alter database mount';
これで、データベースを復元する準備ができました。
RMAN> restore database from tag 'TAG20130410T050852';
最後のステップはデータベースを開くことです:
RMAN> sql 'alter database open resetlogs';
既存のREDOログファイルは以前のデータベースで使用されていたため使用できなくなったため、ここでresetlogs
句を指定しました。したがって、復元されたデータベースで使用できるようにリセットする必要があります。
さあ、すばらしいことを検索してください!