Oracle RMAN RESTORE / DUPLICATE 打开时报错(克隆)ORA-01139/ ORA-16433, 如果还原 DB/或AUXILIARY时指定了错误的UNDO表空间

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638 QQ号:47079569 邮箱:[email protected]

 

Oracle数据库企业版版本11.2.0.以及更高版本

本文档中的信息适用于任何平台。

症状

由于ORA-01139/ ORA-16433RMAN复制打开时报错CLONE,辅助pfile中指定了错误的UNDO表空间:

contents of Memory Script:
{
Alter clone database open resetlogs;
}
executing Memory Script
}
executing Memory Script

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00601: fatal error in recovery manager
RMAN-03004: fatal error during execution of command
RMAN-10041: Could not re-create polling channel context following failure.
RMAN-10024: error setting up for rpc polling
RMAN-10005: error opening cursor
RMAN-10002: ORACLE error: ORA-03114: not connected to ORACLE
RMAN-03002: failure of Duplicate Db command at 10/10/2012 14:27:10
RMAN-05501: aborting duplication of target database
RMAN-03015: error occurred in stored script Memory Script
RMAN-06136: ORACLE error from auxiliary database: ORA-01092: ORACLE instance ter
minated. Disconnection forced
ORA-30012: undo tablespace ‘UNDOTBS1X’ does not exist or of wrong type

所有试图解决人工恢复问题的尝试都失败了 :

使用 SQLPlus

SQL> recover database using backup controlfile until cancel;
ORA-00283: recovery session canceled due to errors
ORA-16433: The database must be opened in read/write mode.

SQL> alter database backup controlfile to trace;
alter database backup controlfile to trace
*
ERROR at line 1:
ORA-16433: The database must be opened in read/write mode.

使用 RMAN

RMAN> recover clone database;
RMAN-11003: failure during parse/execution of SQL statement: alter database
recover if needed
start until cancel using backup controlfile
ORA-00283: recovery session canceled due to errors
ORA-16433: The database must be opened in read/write mode.

原因

辅助pfile指定一个无效的UNDO_表空间名,不存在于正被复制的数据库中。

这将导致打开重置日志后AUXILIARY立即报错。.

<Bug 14744052>   AFTER FAILURE OF DUPICATE COMMAND DURING OPEN RESETLOGS, CLONE RAISES ORA-16433

关闭:不是错误

在辅助PFILE重置日志中设置一个标志,成功完成重置日志后可以通过字典检查取消该设置。因重置日志没有完成,标志仍需设置,会导致每次访问控制文件时出现ORA-16433。没有办法清除这个标志。

解决方案

重建控制文件,使用目标中生成的新建控制文件脚本的编辑版:如何重建一个控制文件(文档编号735106.1

辅助警报日志表明,重置日志已完成并且将确定联机日志序列#1:

Thread 1 opened at log sequence 1
Current log# 1 seq# 1 mem# 0: C:\APP\DUP\REDO01.LOG

要完成这个过程 :

在辅助pfile 中修正undo_ tablespace参数
用新建控制文件重新安装AUXILIARY
恢复并打开重置日志

SQL> recover database using backup controlfile;
ORA-00279: change 2023230 generated at 10/10/2012 14:27:01 needed for thread 1
ORA-00289: suggestion :
C:\APP\FAST_RECOVERY_AREA\DUP\ARCHIVELOG\2012_10_10\O1_MF_1_1_%U_.ARC
ORA-00280: change 2023230 for thread 1 is in sequence #1

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
C:\APP\DUP\REDO01.LOG
Log applied.
Media recovery complete.
SQL> alter database open resetlogs;

Database altered.

注意:为了避免将来出现该错误,确保为AUXILIARY指定的UNDO_TABLESPACE参数设置与当前目标数据库的设置相同。如果复制RAC目标数据库,你可以为AUXILIARY指定任意目标实例的UNDO_TABLESPACE

注意:
—–
o

如果指定了错误的UNDO表空间,然后在重置日志还原和恢复后试图打开RMAN数据库,同样的错误ORA-01139/ ORA-16433也会出现。


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *