In-depth analysis of RMAN-Incarnation application (Incomplete recovery)
In-depth analysis of RMAN-Incarnation application (Incomplete recovery)
CASE Environment:
Operating System: RedHat EL5
Oracle: Oracle 11gR2
When you use resetlogs to open the database during incomplete restoration of Media Recover, Incarnation (Database-to-event) indicates the specific logical lifetime of the database. As a DBA, you may need to use the backup generated before the last execution of the resetlogs command to restore the database, or it may need to be restored to the time point before the previous resetlogs command is executed.
: Restoration path of the database
--------------------------------------------------------------------------------
RMAN: Configure an archive log deletion policy
Basic Oracle tutorial-copying a database through RMAN
Reference for RMAN backup policy formulation
RMAN backup learning notes
Oracle Database Backup encryption RMAN Encryption
Installing Oracle 12C in Linux-6-64
Install Oracle 11gR2 (x64) in CentOS 6.4)
Steps for installing Oracle 11gR2 in vmwarevm
Install Oracle 11g XE R2 In Debian
--------------------------------------------------------------------------------
Case 1: (Incomplete recovery 1)
1. The table is accidentally deleted and cannot be completely restored.
17:12:11 SYS @ prod> select current_scn from v $ database;
CURRENT_SCN
-----------
2123790
17:12:24 SYS @ prod> conn scott/tiger
Connected.
At 17:12:43 SCOTT @ prod> select count (*) from emp1;
COUNT (*)
----------
28
Elapsed: 00:00:00. 05
17:12:53 SCOTT @ prod> delete from emp1;
28 rows deleted.
Elapsed: 00:00:00. 08
At 17:13:12 SCOTT @ prod> commit;
Commit complete.
Elapsed: 00:00:00. 04
17:13:17 SCOTT @ prod> insert into emp1 select * from emp where empno = 7788;
1 row created.
Elapsed: 00:00:00. 04
17:13:28 SCOTT @ prod> update emp set empno = 9999 where empno = 7788;
1 row updated.
Elapsed: 00:00:00. 03
At 17:13:43 SCOTT @ prod> commit;
Commit complete.
Elapsed: 00:00:00. 04
At 17:13:45 SCOTT @ prod> select * from emp1;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
------------------------------------------------------------------------------
7788 scott analyst 7566 19-APR-87 3000 20
Elapsed: 00:00:00. 02
2. Incomplete recovery
RMAN> run {
2> set until scn 2123790;
3> shutdown immediate;
4> startup mount;
5> restore database;
6> recover database;
7> alter database open resetlogs;
8> SQL 'alter system switch logfile ';
9>}
Executing command: SET until clause
Using target database control file instead of recovery catalog
Database closed
Database dismounted
Oracle instance shut down
Connected to target database (not started)
Oracle instance started
Database mounted
Total System Global Area 835104768 bytes
Fixed Size 2217952 bytes
Variable Size 775948320 bytes
Database Buffers 54525952 bytes
Redo Buffers 2412544 bytes
Starting restore at 15-jul14
Allocated channel: ORA_DISK_1
Channel ORA_DISK_1: SID = 18 device type = DISK
Channel ORA_DISK_1: starting datafile backup set restore
Channel ORA_DISK_1: specifying datafile (s) to restore from backup set
Channel ORA_DISK_1: restoring datafile 00001 to/u01/app/oracle/oradata/prod/system01.dbf
Channel ORA_DISK_1: restoring datafile 00002 to/u01/app/oracle/oradata/prod/sysaux01.dbf
Channel ORA_DISK_1: restoring datafile 00003 to/u01/app/oracle/oradata/prod/undotbs1.dbf
Channel ORA_DISK_1: restoring datafile 00004 to/u01/app/oracle/oradata/prod/users01.dbf
Channel ORA_DISK_1: restoring datafile 00005 to/u01/app/oracle/oradata/prod/example01.dbf
Channel ORA_DISK_1: restoring datafile 00006 to/u01/app/oracle/oradata/prod/tbs1.dbf
Channel ORA_DISK_1: restoring datafile 00007 to/u01/app/oracle/oradata/prod/undotbs2.dbf
Channel ORA_DISK_1: restoring datafile 00008 to/u01/app/oracle/oradata/prod/perftbs01.dbf
Channel ORA_DISK_1: reading from backup piece/u01/app/oracle/product/11.2.0/db_1/dbs/0lpcfu61_1_1
Channel ORA_DISK_1: piece handle =/u01/app/oracle/product/11.2.0/db_1/dbs/0lpcfu61_1_1 tag = TAG20140703T171545
Channel ORA_DISK_1: restored backup piece 1
Channel ORA_DISK_1: restore complete, elapsed time: 00:01:16
Finished restore at 15-jul14
Starting recover at 15-jul14
Using channel ORA_DISK_1
Starting media recovery
Archived log for thread 1 with sequence 17 is already on disk as file/dsk4/arch1/arch_1_17_851265252.log
Archived log for thread 1 with sequence 18 is already on disk as file/dsk4/arch1/arch_1_18_851265252.log
Archived log for thread 1 with sequence 19 is already on disk as file/dsk4/arch1/arch_1_19_851265252.log
Archived log file name =/dsk4/arch1/arch_1_17_851265252.log thread = 1 sequence = 17
Media recovery complete, elapsed time: 00:00:09
Finished recover at 15-jul14
Database opened
3. Verification
[Oracle @ rh6 ~] $ Sqlplus '/as sysdba'
SQL * Plus: Release 11.2.0.1.0 Production on Tue Jul 15 17:26:10 2014
Copyright (c) 1982,200 9, Oracle. All rights reserved.
Connected:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0-64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
17:26:10 SYS @ prod> select count (*) from scott. emp1;
COUNT (*)
----------
28
Elapsed: 00:00:00. 03
17:27:09 SYS @ prod>
Data recovered!
5. View Incarnation
RMAN> list incarnation;
Using target database control file instead of recovery catalog
List of Database Incarnations
DB Key Inc Key DB Name db id status Reset SCN Reset Time
-------------------------------------------------------------
1 1 PROD 239333010 PARENT 1 15-AUG-09
2 2 PROD 239333010 PARENT 945184 30-SEP-13
3 3 PROD 239333010 PARENT 1087512 18-MAY-14
4 4 PROD 239333010 PARENT 1857377 26-JUN-14
5 5 PROD 239333010 CURRENT 2123791 15-jul14
RMAN>
RMAN> list backup of database;
List of Backup Sets
==============================
BS Key Type LV Size Device Type Elapsed Time Completion Time
-------------------------------------------------------------
17 Full 1.13g disk 00:01:21 03-jul14
BP Key: 17 Status: AVAILABLE Compressed: NO Tag: TAG20140703T171545
Piece Name:/u01/app/oracle/product/11.2.0/db_1/dbs/0lpcfu61_1_1
List of Datafiles in backup set 17
File LV Type Ckp SCN Ckp Time Name
---------------------------------
1 Full 2066885 03-jul14/u01/app/oracle/oradata/prod/system01.dbf
2 Full 2066885 03-jul14/u01/app/oracle/oradata/prod/sysaux01.dbf
3 Full 2066885 03-jul14/u01/app/oracle/oradata/prod/undotbs1.dbf
4 Full 2066885 03-jul14/u01/app/oracle/oradata/prod/users01.dbf
5 Full 2066885 03-jul14/u01/app/oracle/oradata/prod/example01.dbf
6 Full 2066885 03-jul14/u01/app/oracle/oradata/prod/tbs1.dbf
7 Full 2066885 03-jul14/u01/app/oracle/oradata/prod/undotbs2.dbf
8 Full 2066885 03-jul14/u01/app/oracle/oradata/prod/perftbs01.dbf
Case 2: (Incomplete recovery 2)
1. The table is deleted by mistake and restored through incomplete restoration.
17:42:24 SYS @ prod> conn scott/tiger
Connected.
At 17:42:28 SCOTT @ prod> insert into emp1 select * from emp where rownum <4;
3 rows created.
Elapsed: 00:00:00. 05
At 17:42:42 SCOTT @ prod> commit;
Commit complete.
Elapsed: 00:00:00. 01
At 17:42:44 SCOTT @ prod> insert into emp1 select * from emp where rownum <5;
4 rows created.
Elapsed: 00:00:00. 02
At 17:42:52 SCOTT @ prod> commit;
Commit complete.
Elapsed: 00:00:00. 05
At 17:42:55 SCOTT @ prod> conn/as sysdba
Connected.
17:43:01 SYS @ prod> select current_scn from v $ database;
CURRENT_SCN
-----------
2124840
17:43:13 SYS @ prod> alter system switch logfile;
System altered.
Elapsed: 00:00:00. 10
17:43:38 SYS @ prod> conn scott/tiger
Connected.
At 17:43:42 SCOTT @ prod> select count (*) from scott. emp1;
COUNT (*)
----------
35
Elapsed: 00:00:00. 02
17:43:48 SCOTT @ prod> delete from emp1;
35 rows deleted.
Elapsed: 00:00:00. 04
At 17:43:56 SCOTT @ prod> commit;
Commit complete.
Elapsed: 00:00:00. 01
17:43:58 SCOTT @ prod> insert into emp1 select * from emp where empno = 7788;
1 row created.
Elapsed: 00:00:00. 01
17:44:09 SCOTT @ prod> update emp1 set empno = 8888;
1 row updated.
Elapsed: 00:00:00. 01
At 17:44:16 SCOTT @ prod> commit;
Commit complete.
Elapsed: 00:00:00. 02
At 17:44:17 SCOTT @ prod> select * from emp1;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
------------------------------------------------------------------------------