欢迎访问机房运维工作室

爱数知识库

AnyBackup-Oracle 数据库副本数据管理-数据恢复失败,执行输出提示错误:任务执行失败,原因:数据库OPEN时无法进行操作。

频道:爱数知识库 日期: 浏览:25

AnyBackup-Oracle 数据库副本数据管理-数据恢复失败,执行输出提示错误:任务执行失败,原因:数据库OPEN时无法进行操作。

关键字

OPEN、副本数据管理、数据恢复

适用产品

  • AnyBackup CDM 7.0.11 及以上版本

问题描述

在 AnyBackup 管理控制台上,执行 Oracle 数据库副本数据管理模块数据恢复任务时,执行输出中显示如下错误信息:

任务执行失败,原因:数据库OPEN时无法进行操作。 异常提供者:cdmoracleschedule,异常号:426049582。

问题影响

AnyBackup 无法成功完成对 Oracle 数据库的恢复。

问题原因

AnyBackup 在执行 Oracle 数据库数据恢复任务时,会触发保护机制对恢复目标数据库的实例状态进行检测,从而避免恢复正在被使用的数据库,当恢复目标数据库的实例状态为 OPEN 时,会导致 Oracle 数据库数据恢复任务执行失败。

解决方案

为了解决此问题,需要将恢复目标数据库的实例调整为 STARTED 或 MOUNTED 状态,然后再使用 AnyBackup 进行数据恢复。请按照以下步骤执行:
1.通过 SSH 工具登录恢复目标数据库实例所在的服务器,切换至 Oracle 数据库安装用户,以 Oracle 数据库安装用户为 oracle 为例。

su - oracle

2.查看当前环境默认登录实例的实例名是否与恢复目标数据库实例是否一致。

echo $ORACLE_SID

若查询结果与恢复目标数据库实例不一致,则执行如下命令修改默认登录实例,此处图中以恢复目标数据库实例名为 orcl 为例:

export ORACLE_SID=<恢复目标数据库实例名>

3.确认当前环境默认登录实例为恢复目标数据库实例名后,进入数据库查看数据库实例状态。

sqlplus / as sysdba
SELECT INSTANCE_NAME,STATUS FROM V$INSTANCE;

4.查看到数据库实例状态为 OPEN,则需要把数据库实例关闭,然后再把数据库实例调整为 STARTED 或 MOUNTED 状态。
警告:以下操作会将恢复目标 Oracle 数据库实例关闭,请做好 Oracle 数据库相关业务停机准备。

关闭数据库实例执行:
SHUTDOWN IMMEDIATE;

启动数据库实例到
STARTED 状态执行:
STARTUP NOMOUNT;

启动数据库实例到 MOUNTED 状态执行:
ALTER DATABASE MOUNT;

5.重新使用 AnyBackup 执行 Oracle 数据库数据恢复任务。
警告:执行 Oracle 数据库数据恢复任务会对目标数据库进行覆盖。

更多信息

关于 Oracle 数据库状态的更多信息,请参考 Oracle 官方文档:Starting Up and Shutting Down