AnyBackup-Oracle 异机恢复失败,提示 ORA-32001 错误
关键字
异机恢复、ORA-32001
适用产品
- AnyBackup 6.0.x
- AnyBackup 5.0.x
- 超易备 5.0.x
问题描述
在 AnyBackup 管理控制台,发起 Oracle 数据库浏览恢复任务时,恢复任务执行失败,执行输出中提示如下错误信息:
ORA-32001: write to SPFILE requested but no SPFILE is in use (错误提供者:Unknown Provider,错误值:32001,错误位置:ncOciSession.cpp:327)
问题影响
AnyBackup 无法完成 Oracle 异机浏览恢复。
问题原因
异机 Oracle 数据库无 spfile 初始化参数文件,导致 AnyBackup 进行 Oracle 数据库恢复时无法对数据库动态参数的修改,导致 Oracle 数据库恢复失败。
解决方案
使用 Oracle 数据库当前启动所使用的 pfile 创建 spfile 文件,再次使用 AnyBackup 进行浏览恢复,具体步骤如下:
1. 查找并打开数据库告警日志。告警日志文件路径:$ORACLE_BASE/diag/rdbms/DB_NAME/ORACLE_SID/trace/alert_ORACLE_SID.log,其中 DB_NAME 为数据库名,ORACLE_SID 为数据库实例名。
2. 查看告警日志文件中最近一次启动数据库的记录,内容格式类似以下。其中包含数据库当前启动所使用的 pfile 文件路径,类似于“/u01/app/oracle/product/11.2.0/db_1/dbs/initdorcl.ora”。

3. 使用记录中的 pfile 文件创建 spfile 文件。执行下面的命令:
su - oracle
sqlplus / sysdba
create spfile from pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initdorcl.ora';
注意:以上命令创建的 spfile 参数文件在数据库默认位置,取名默认为 spfileSID.ora。
4. AnyBackup 重新执行 Oracle 数据库浏览恢复任务。
更多信息
关于 pfile 与 spfile 参数文件创建的更多内容,请参考 Oracle 官方文档:CREATE PFILE、CREATE SPFILE。