Örnek olarak datafile dosyalarımızdan birisini sileceğim. Ve daha önce almış olduğum bir full backuptan restore ederek datafile dosyalarının nasıl kurtarıldığını görebileceğiz.
Database ait tüm datafile görmek için v$datafile dinamik view' den sorgulayabiliriz.
SQL> Select name from v$datafile;
NAME
--------------------------------------------------
/export/home/oracle/datafile/system01.dbf
/export/home/oracle/datafile/undotbs01.dbf
/export/home/oracle/datafile/sysaux01.dbf
/export/home/oracle/datafile/users01.dbf
/export/home/oracle/datafile/example01.dbf
/export/home/oracle/datafile/deneme01.dbf
Dosyayı siliyorum.
$ rm /export/home/oracle/datafile/deneme01.dbf
Şimdi RMAN’ a bağlanıyorum .
$ rman target /
RMAN> report schema;
Report of database schema
List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1 500 SYSTEM *** /export/home/oracle/datafile/system01.dbf
2 35 UNDOTBS1 *** /export/home/oracle/datafile/undotbs01.dbf
3 250 SYSAUX *** /export/home/oracle/datafile/sysaux01.dbf
4 5 USERS *** /export/home/oracle/datafile/users01.dbf
5 100 EXAMPLE *** /export/home/oracle/datafile/example01.dbf
6 100 DENEME *** /export/home/oracle/datafile/deneme01.dbf
Var olan backupsetten deneme01.dbf dosyasını yüklemek için restore komutunu kullanıyoruz.
RMAN> restore datafile 6;
Starting restore at 09/08/2011
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=154 devtype=DISK
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00006 to /export/home/oracle/datafile/deneme01.dbf
channel ORA_DISK_1: reading from backup piece /export/home/oracle/FRA/ORA10GR2/b ackupset/2011_08_09/o1_mf_nnndf_TAG20110809T011841_740r61n9_.bkp
channel ORA_DISK_1: restored backup piece 1
piece handle=/export/home/oracle/FRA/ORA10GR2/backupset/2011_08_09/o1_mf_nnndf_T AG20110809T011841_740r61n9_.bkp tag=TAG20110809T011841
channel ORA_DISK_1: restore complete, elapsed time: 00:00:15
Finished restore at 09/08/2011
Şimdi burada 6 numaralı datafile sadece backup anındaki durumunu kopyalıyoruz. Backup tan sonraki değişikliği ise Recover komutuyla gerçekleştiririz.
Recover komutu ise kullandığımız backup dosyasından sonra yapılan değişiklikleri datafile eşitlemek için kullanılan komuttur. Yani log (archive) dosyalarını yada incremental backupları işletme komutudur.(bende fazla bir değişiklik olmadığından kısa sürdü)
RMAN> recover datafile 6;
Starting recover at 09/08/2011
using channel ORA_DISK_1
starting media recovery
media recovery complete, elapsed time: 00:00:01
Finished recover at 09/08/2011
Böylece artık deneme01.dbf dosyası yerinde ve son commite kadar olan değişikliğini de içermektedir.