AnyBackup-Windows 环境下 Oracle 12C 单机数据库异机浏览恢复失败,执行输出提示 ORA-65101 错误。
关键字
浏览恢复、ORA-65101
适用产品
- AnyBackup 6.0.x
- AnyBackup 5.0.x
- 超易备5.0.x
问题描述
在 AnyBackup 管理控制台发起 Windows 环境下 Oracle 12C 单机数据库浏览恢复任务时,恢复目的地选择异机,恢复策略中勾选恢复控制文件以及恢复后使数据库联机选项,任务执行失败,执行输出中提示如下错误信息:
数据库RMAN进程出现异常。(错误提供者:oracleBackup,错误值:183,错误位置:ncOracleExecThread.cpp:455)(附加信息:RMAN 输出线程出现错误,错误原有是:ORA-65101:容器数据库设置不正确。(错误提供者:oracleBackup,错误值:e0500027,错误位置:ncOracleExecThread.cpp.386))

问题影响
AnyBackup 无法完成 Oracle 数据库异机浏览恢复。
问题原因
异机参数文件中配置了启用 CDB 特性,恢复的原环境控制文件中记录未启用 CDB 特性,两者有冲突,导致无法恢复。
解决方案
针对上述问题,有下面两种方案解决,请根据实际情况选择。
方案一,利用高级恢复将原机参数文件恢复到异机,利用该参数文件启动数据库到 nomount 状态之后恢复,步骤如下:
1.命令行登录异机 Oracle 数据库服务器,执行以下命令,登录到恢复的 Oracle 数据库,并将其关闭。
set ORACLE_SID=sid
sqlplus / as sysdba
shutdown immediate 
注意: sid 为数据库实例名。
2.在 AnyBackup 管理控制台新建高级恢复任务,恢复原机参数文件到异机环境。

注意:客户端选择异机环境,路径随便输入即可。
3.利用高级恢复的参数文件创建默认 spfile 文件,并启动数据库到 nomount 状态,命令如下:
create spfile from pfile='D:\database\pfile_orcl.ora'
startup nomount
注意:第一条命令中 'D:\database\pfile_orcl.ora' 即第 2 步恢复出的参数文件所在路径和名称,具体以实际环境为主,且创建的 spfile 文件会覆盖默认参数文件位置下该实例的 spfile 文件,请与管理员确认后操作。
4.在 AnyBackup 管理控制台重启发起浏览恢复即可。
方案二,在线修改异机参数文件,关闭异机 CDB 特性,步骤如下:
1.命令行登录异机 Oracle 数据库服务器,执行以下命令,登录到恢复的 Oracle 数据库。
set ORACLE_SID=sid
sqlplus / as sysdba

注意: sid 为数据库实例名。

示例中结果返回 TRUE 表示异机启用了 CDB 特性。

更多信息
关于 ORA-65101 的更多信息,请参考官方文档 ORA-65101。