将系统备份,准备恢复至备机上,将spfile,备份拷贝至备机,
1.删除备机的现有库
sql>shutdown immediate
sql>startup mount restrict
sql> drop database;
2.使用spfile创建pfile
sql>create pfile from spfile='/home/oracle/2014_03_10/spfileogg.ora';
3.修改pfile,并使用pfile启动数据库至nomount
sql>startup nomount pfile='PFILE路径';
4.使用rman恢复控制文件,并启动至mount状态
rman target /
rman> restore controlfile from 'controlfile备份';
rman>sql 'alter database mount';
rman>catalog start with '备份位置';
5.恢复数据文件时遇到如下报错:
rman> restore database;
RMAN-06026: some targets not found - aborting restore
RMAN-06023: no backup or copy of datafile 4 found to restore
RMAN-06023: no backup or copy of datafile 3 found to restore
RMAN-06023: no backup or copy of datafile 2 found to restore
RMAN-06023: no backup or copy of datafile 1 found to restore
从网上找了一些解决方法,多数是oracle9i版本的,使用dbms包来解决,因为我的库是11g的,没有能解决问题。
还有个朋友有同样的问题,是个别数据文件的路径不对,经检查我这里的路径也不存在问题。
最后通过itpub的howard_zhang的解决方案解决,
rman>list incarnation;
List of Database Incarnations
DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time
------- ------- -------- ---------------- --- ---------- ----------
1 1 OGG 2941743472 PARENT 1 17-SEP-11
2 2 OGG 2941743472 PARENT 995548 24-FEB-14
3 3 OGG 2941743472 CURRENT 1070775 26-FEB-14
rman>reset database to incarnation 2;
rman>restore database;
rman>recover database;
恢复完成,以resetlogs参数open成功。
恢复后查找了一些incarnation的资料
官方解释如下:
Listing Database Incarnations
Each time an OPEN RESETLOGS operation is performed on a database, this operation creates a new incarnation of the database. Database incarnations and their effect on database recovery are explained in "Database Incarnations".
源文档 <http://docs.oracle.com/cd/E11882_01/backup.112/e10642/rcmreprt.htm>
Database Incarnations
A database incarnation is created whenever you open the database with the
RESETLOGS option. After complete recovery, you can resume normal operations
without an OPEN RESETLOGS. After a DBPITR or recovery with a backup control file,
however, you must open the database with the RESETLOGS option, thereby creating a
new incarnation of the database. The database requires a new incarnation to avoid
confusion when two different redo streams have the same SCNs, but occurred at
different times. If you apply the wrong redo to your database, then you corrupt it.
The existence of multiple incarnations of a single database determines how RMAN
treats backups that are not in the current incarnation path. Usually, the current
database incarnation is the correct one to use. Nevertheless, in some cases resetting the
database to a previous incarnation is the best approach. For example, you may be
dissatisfied with the results of a point-in-time recovery that you have performed and
want to return the database to a time before the RESETLOGS. An understanding of
database incarnations is helpful to prepare for such situations.
总结了一下,主要是首次恢复至catalog start with时因为工作的时候,没有继续进行,第二次又重新备份,重新复制了备份文件,造成此问题,所以将incarnation恢复至之前一个就正常了。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8441448/viewspace-1140591/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8441448/viewspace-1140591/