ORACLE incomplete backup series uses rman-based Incomplete recovery SQL> select * from test; a ----- 123456sql> hostramn target/rman> run {allocate channel c1 type disk; bakup full tag 'dbful' format 'd: \ backup \ full _ % u _ % s _ % P' databaseinclude current controlfile; SQL 'alter system archive log current '; release channel c1;} www.2cto.com rman> exit; SQL> insert into test values (16); SQL> commit; SQL> alter system switch logfile; SQL> insert into test Values (17); SQL> alter system switch logfile; SQL> archive log list ;.... oldest onlie log sequence 14 next log sequence to archive 16 current log sequence 16sql> select group #, sequence #, archived, status from v $ loggroup # sequence # archived status ------------------------------------- 1 16 yes active2 17 no current3 15 yes from here we can see that the backup data file contains 14th archive logs. online log v $ log is using 17 Series logs, 15 and 16 have been archived. when we do not back up 15 and 16 logs. 15 and 16 contain Table test new data 16 and 17. Incomplete recovery means that only the log data under the archive log is restored. instance recovery is not allowed, that is to say, the online log is not seen! Data in online log 17 cannot be recovered, and logs 15 and 16 have been archived. If no backup is made, logs 15 and 16 can be recovered. SQL> shutdown immediate; SQL> startup nomount; SQL> alter database monut; SQL> host www.2cto.com rman target/rman> run {allocate channel c1 type disk; set until logseq 14 thread 1; restore database; recover database; SQL 'alter database open resetlogs';} Use rman to completely restore SQL statements based on time> insert into test values (100); commit; SQL> alter session set nls_date_format = 'yyyy-mm-dd hh24: mi: ss'; SQL> select sysdate from dual; sysdate ---------- 2012-06-15 10: 36: 14sql> hostrman target/rman> run {allocate channel c1 type disk; bakup full tag 'dbful' format 'd: \ backup \ full _ % u _ % s _ % P' databaseinclude current controlfile; SQL 'alter system archive log current'; release channel c1 ;} rman> exitsql> insert into test values (150); SQL> commit; SQL> select sysdate from dual; sysdate ---------- 2012-06-15 10: 46: 14sql> alter system switch logfile; SQL> insert into test values (250); SQL> commit; SQL> select sysdate from dual; sysdate ---------- 2012-06-15 10: 50: 14sql> shutdown immediate; SQL> startup mount; SQL> exit; set nls_date_format = yyyy-mm-dd hh24: mi: ssrman target/www.2cto.com rman> run {allocate channel c1 type disk; set until time '2017-06-15 10:46:14 '; restore database; recover database; SQL 'alter database open resetlogs'; release channel c1 ;} -- recover database until time '2017-04-10 10:36:14 '; you do not need to set until directly in the recover database and -- set until time "to_date ('2017: 00: 00 ', 'yyyymmdd hh24: mi: ss') "You do not need to set the time format in the operating system. You can use rman to completely restore sqlplus Based on scn"/as sysda "SQL> select dbms_flashback.get_system_change_number from dual; xxxxx345sql> insert into test values (400); SQL> commit; SQL> select dbms_flashback.get_system_change_number from dual; xxxxx356; SQL> host; rman target/rman> run {allocate channel c1 type disk; bakup full tag 'dbful' format 'd: \ backup \ full _ % u _ % s _ % P' databaseinclude current controlfile; SQL 'alter system archive log current '; release channel c1;} rman> exit; SQL> insert into test values (450); SQL> commit; SQL> select dbms_flashback.get_system_change_number from dual; xxxxx368 www.2cto.com SQL> shutdown immediate; SQL> startup mount; SQL> exit; rman target/rman> run {allocate channel c1 type disk; restore database; recover database until scn xxxx356; SQL 'alter database open resetlogs '; release channel c1;} Author: ZengMuAnSha