RMANバックアップとリカバリ(6):時間による不完全なリカバリ!


不完全なリカバリは、データベース・レベルでなければなりません.時間ベースの不完全なリカバリは、ユーザーがテーブルを誤って削除したり、誤って切断したりするときに使用できます.
まずデータベースの障害をシミュレートし、データファイルを削除し、mount上のデータベースを使用します.
[oracle@linux oracle]$ export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss';
[oracle@linux oracle]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.4.0 - Production on     10  18 05:07:51 2011

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

SQL> conn /as sysdba
   。
SQL> select sysdate from dual;

SYSDATE
-------------------
2011-10-18 05:08:04

SQL> select file_name from dba_data_files;

FILE_NAME
------------------------------------------------------------
/u01/app/oracle/oradata/orcl/users01.dbf
/u01/app/oracle/oradata/orcl/sysaux01.dbf
/u01/app/oracle/oradata/orcl/undotbs01.dbf
/u01/app/oracle/oradata/orcl/system01.dbf
/u01/app/oracle/oradata/orcl/tb1.dbf

SQL> ! rm -rf /u01/app/oracle/oradata/orcl/tb1.dbf

SQL> shutdown abort
ORACLE       。
SQL> startup mount
ORACLE       。

Total System Global Area  167772160 bytes
Fixed Size                  1266392 bytes
Variable Size              88083752 bytes
Database Buffers           75497472 bytes
Redo Buffers                2924544 bytes
       。
SQL> alter database open;
alter database open
*
  1      :
ORA-01157:     /       5 -     DBWR     
ORA-01110:      5: '/u01/app/oracle/oradata/orcl/tb1.dbf'

時間ベースのリカバリを使用してデータベースをリカバリ
[oracle@linux oracle]$ export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss';
[oracle@linux oracle]$ rman target /

     : Release 10.2.0.4.0 - Production on     10  18 05:08:54 2011

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

         : ORCL (DBID=1292118315,    )

RMAN> run {
2> set until time='2011-10-18 05:08:04';
3> restore database;
4> recover database;
5> alter database open resetlogs; }

      : SET until clause
                 

   restore   2011-10-18 05:10:18
     : ORA_DISK_1
   ORA_DISK_1: sid=155 devtype=DISK

   ORA_DISK_1:              
   ORA_DISK_1:                
      00001   /u01/app/oracle/oradata/orcl/system01.dbf
      00002   /u01/app/oracle/oradata/orcl/undotbs01.dbf
      00003   /u01/app/oracle/oradata/orcl/sysaux01.dbf
      00004   /u01/app/oracle/oradata/orcl/users01.dbf
      00005   /u01/app/oracle/oradata/orcl/tb1.dbf
   ORA_DISK_1:          /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_10_18/o1_mf_nnndf_TAG20111018T045948_79s5t51d_.bkp
   ORA_DISK_1:         1
    = /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_10_18/o1_mf_nnndf_TAG20111018T045948_79s5t51d_.bkp    = TAG20111018T045948
   ORA_DISK_1:     ,   : 00:00:36
   restore   2011-10-18 05:10:56

   recover   2011-10-18 05:10:57
     ORA_DISK_1

         
      ,   : 00:00:05

   recover   2011-10-18 05:11:03

      

最後に、データベースがopenステータスになっていることがわかります.
SQL> select status from v$instance;

STATUS
------------
OPEN