备份与恢复:用rman方式基于日志序列的不完全恢复

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号日志前的数据

请使用浏览器的分享功能分享到微信等