1.1.1. ORA-19573
日期:2014-05-21 17:25
环境:测试环境
【情景描述】
数据库实例处于OPEN状态(READ WRITE),这时在RMAN中执行数据库还原、恢复操作遇到报错。
【报错信息】
RMAN> run {
2> allocate channel ch1 type disk;
3> allocate channel ch2 type disk;
4> set until scn 1520939;
5> restore database;
6> recover database;
7> release channel ch1;
8> release channel ch2;
9> }
......
released channel: ch1
released channel: ch2
RMAN-00571:===========================================================
RMAN-00569: =============== ERROR MESSAGESTACK FOLLOWS ===============
RMAN-00571:===========================================================
RMAN-03002: failure of restore command at05/21/2014 17:04:43
ORA-19870: error while restoring backuppiece/U01/app/test/rman/fra/TESTDB/backupset/2014_05_21/o1_mf_nnndf_TAG20140521T164225_9qrsqkyw_.bkp
ORA-19573: cannot obtain exclusive enqueuefor datafile 1
RMAN>
【报错详解】
[oracle@oracle ~]$ oerr ora 19870
19870, 00000, "error while restoringbackup piece %s"
// *Cause: This error should be followed byother errors indicating
// the cause of the problem.
// *Action: See other errors actions.
[oracle@oracle ~]$ oerr ora 19573
19573, 00000, "cannot obtain %senqueue for datafile %s"
// *Cause: The file access enqueue could not be obtained for a file
// specified in a backup, copy or restore operation.
// If the enqueue type shown is ‘shared‘, then the file is the
// input file for a backup or copy. If the type is ‘exclusive‘, then
// the file is the output file for a datafile copy or restore which
// is attempting to overwrite the currently active version of that
// file - in this case, the file must be offline or the database must
// be closed. If the type is‘read-only‘, then you are attempting
// to back up or copy this file while the database is in NOARCHIVELOG
// mode.
// *Action: Wait until the conflictingoperation is complete, then retry
// the copy or backup. If thedatabase is in NOARCHIVELOG mode, then
// all files being backed up must be closed cleanly.
[oracle@oracle ~]$
【报错原因】
数据库处于OPEN状态,所有的表空间和数据文件都是ONLINE的,此时oracle不允许还原恢复。
【解决方法】
在此测试案例中,先关闭数据库实例,然后打开到MOUNT状态,再次登录RMAN执行不完全恢复。