備份與恢復:用rman方式基於日誌序列的不完全恢復

paulyibinyi發表於2008-04-10

RMAN> run{
2> allocate channel c1 type disk;
3> backup full tag 'dbfull' format 'd:\backup\full%u_%s_%p' database
4> include current controlfile;
5> sql 'alter system archive log current';
6> release channel c1;
7> }

sql> insert into test values (16);

commit;

sql>alter system switch logfile;

sql> insert into test values (17);

commit;

sql>alter system switch logfile;

SQL> select * from test;

         A
----------
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
        11

         A
----------
        12
        13
        14   --這之前資料是14號日誌前產生的

        16
        17  --這之後資料是14號日誌後產生的

16 rows selected.

SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            D:\oracle\ora92\RDBMS
Oldest online log sequence     14
Next log sequence to archive   16
Current log sequence           16

SQL> alter system switch logfile;

System altered.

SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- --- ----------------
FIRST_CHANGE# FIRST_TIME
------------- -------------------
         1          1         16  104857600          1 YES ACTIVE
        84134 2008-04-10 11:39:19

         2          1         17  104857600          1 NO  CURRENT
        84150 2008-04-10 11:40:00

         3          1         15  104857600          1 YES ACTIVE
        84128 2008-04-10 11:39:10


SQL> exit
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production

RMAN> shutdown immediate;

using target database controlfile instead of recovery catalog
database closed
database dismounted
Oracle instance shut down

RMAN> startup nomount;

connected to target database (not started)
Oracle instance started

Total System Global Area     101785252 bytes

Fixed Size                      454308 bytes
Variable Size                 75497472 bytes
Database Buffers              25165824 bytes
Redo Buffers                    667648 bytes

RMAN> alter database mount;

database mounted

RMAN> run{
2> allocate channel c1 type disk;
3> set until logseq 14 thread 1;    --基於日誌序列號的不完全恢復
4> restore database;
5> recover database;
6> sql 'alter database open resetlogs';
7> }

allocated channel: c1
channel c1: sid=11 devtype=DISK

executing command: SET until clause

Starting restore at 2008-04-10 11:50:05

datafile 4 not processed because file is read-only
channel c1: starting datafile backupset restore
channel c1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to D:\ORACLE\ORADATA\PUBTEST\SYSTEM01.DBF
restoring datafile 00002 to D:\ORACLE\ORADATA\PUBTEST\UNDOTBS01.DBF
restoring datafile 00003 to D:\ORACLE\ORADATA\PUBTEST\INDX01.DBF
restoring datafile 00005 to D:\ORACLE\ORADATA\PUBTEST\USERS01.DBF
channel c1: restored backup piece 1
piece handle=D:\ORACLE\ORA92\DATABASE\04JDFCP3_1_1 tag=TAG20080410T113100 params
=NULL
channel c1: restore complete
Finished restore at 2008-04-10 11:50:42

Starting recover at 2008-04-10 11:50:42
datafile 4 not processed because file is read-only

starting media recovery

archive log thread 1 sequence 9 is already on disk as file D:\ORACLE\ORA92\RDBMS
\ARC00009.001
archive log thread 1 sequence 10 is already on disk as file D:\ORACLE\ORA92\RDBM
S\ARC00010.001
archive log thread 1 sequence 11 is already on disk as file D:\ORACLE\ORA92\RDBM
S\ARC00011.001
archive log thread 1 sequence 12 is already on disk as file D:\ORACLE\ORA92\RDBM
S\ARC00012.001
archive log thread 1 sequence 13 is already on disk as file D:\ORACLE\ORA92\RDBM
S\ARC00013.001
archive log filename=D:\ORACLE\ORA92\RDBMS\ARC00009.001 thread=1 sequence=9
archive log filename=D:\ORACLE\ORA92\RDBMS\ARC00010.001 thread=1 sequence=10
archive log filename=D:\ORACLE\ORA92\RDBMS\ARC00011.001 thread=1 sequence=11
archive log filename=D:\ORACLE\ORA92\RDBMS\ARC00012.001 thread=1 sequence=12
archive log filename=D:\ORACLE\ORA92\RDBMS\ARC00013.001 thread=1 sequence=13
media recovery complete

Finished recover at 2008-04-10 11:50:43

sql statement: alter database open resetlogs
released channel: c1

RMAN> exit


Recovery Manager complete.

C:\Documents and Settings\Paul Yi>sqlplus "/as sysdba"

SQL*Plus: Release 9.2.0.4.0 - Production on Thu Apr 10 11:52:12 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production

SQL> select * from test;

         A
----------
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
        11

         A
----------
        12
        13
        14

14 rows selected.

SQL>

看結果只恢復到14號日誌前的資料

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7199859/viewspace-232350/,如需轉載,請註明出處,否則將追究法律責任。

相關文章