RMAN-03002: failure of restore command at 01/24/2013 16:44:05 ORA-01180: can not create datafile 1 ORA-01110: data file 1: '/u01/oradata/pubs/system01.dbf'Occurred when running database restore.
list incarnation;the result was
List of Database Incarnations DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time ------- ------- -------- ---------------- --- ---------- ---------- 1 1 DBName 707574411 PARENT 1 23-JAN-13 2 2 DBName 707574411 CURRENT 799793 25-JAN-13Cause: Incarnation error
Solution: Reset incarnation
RESET DATABASE TO INCARNATION 1;What is an incarnation?
A database incarnation is created whenever you open the database with the RESETLOGS option.
The Current incarnation is the one in which the database is running at present
The incarnation from which the current incarnation branched after a ALTER DATABASE OPEN RESETLOGS was performed is called the Parent incarnation.
If you want to go back to some SCN which is not part of the Current database incarnation, we need to use the RESET DATABASE TO INCARNATION command as shown in the example below
The purpose of incarnations
An incarnation helps to identify redo streams which have the same SCN, but occurred at different points in time. This prevents the possibility of applying the wrong archive log file from a previous incarnation which could corrupt the database.
Suppose we are at incarnation 1 and are at SCN 100 in the database. I do a resetlogs and now the incarnation of the database becomes 2. Suppose we do another resetlogs and it so happens that the SCN at the time we did the resetlogs was also 100. Somewhere down the line later we want to do a point in time recovery and want to recover the database until SCN 100. How does Oracle know which is the correct SCN and how far back in time should the database be rolled back to and which archive logs need to be applied?
This is where incarnations come in and we will see how we can set the database to a particular incarnation to enable RMAN to do a point in time recovery.