欢迎访问机房运维工作室

爱数知识库

AnyBackup-Oracle 数据库恢复失败,提示错误信息:ORA-01103

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

AnyBackup-Oracle 数据库恢复失败,提示错误信息:ORA-01103

关键字

ORA-01103

适用产品

  • AnyBackup 6.0.x
  • AnyBackup CDM 7.0.x
  • AnyBackup Express 7.0.x

问题描述

在 AnyBckup 管理控制台发起 Oracle 数据库备份任务失败,查看执行输出中有 ORA-01103 的错误信息,如下图所示:

ORA-01103: database name 'ORCL' in control file is not 'ORCLS'

问题影响

Oracle 数据库恢复失败。

问题原因

目标机上的参数文件中的数据库名字,即 db_name 的值和备份数据库的名字不一致,导致不能正确应用控制文件启动数据库。

解决方案

为解决此问题,需要修改目标机参数文件中的 db_name 参数与原机一致,具体操作步骤如下:
1. 使用 sqlplus 命令登录数据库:

场景一,若数据库运行在 Linux/Aix 服务器上。
SSH 远程登录到 Oracle 数据库服务器后台,切换到 oracle 用户下,登入 Oracle 数据库,命令中 ORCL 为需要恢复的 Oracle 数据库实例名,实例名区分大小写,具体以实际环境为准,执行命令如下:

export ORACLE_SID= ORCL
sqlplus / as sysdba

场景二,若数据库运行在 Windows 服务器上。
登录服务器,按键:WIN + R 打开运行窗口,键入 cmd 之后按 enter 键打开 cmd 命令交互界面,登录 Oracle 数据库,执行命令如下:

set ORACLE_SID= ORCL
sqlplus / as sysdba

2. 关闭目标机数据库,创建 pfile 文件,并退出数据库,执行命令如下:
注意:关闭数据库属于高危操作,请与 dba 确认之后再做关闭数据库操作。
shutdown immediate;
create pfile='/home/oracle/initORCL.ora' from spfile;
exit;

说明:/home/oracle/ 为 Linux/Aix 环境下放置参数文件的路径,Windows 环境下请更换成 Windows 系统中的文件放置路径,如 C:\ ,具体路径请以实际环境为准。
3. 编辑步骤2创建的参数文件,找到 db_name 参数,并且将 db_name 参数后的值修改成 ORCL,保存,执行命令如下:
vi /home/oracle/initORCL.ora
键入 i 修改 db_name 等号后的值为 'ORCL',按键 Esc ,键入 :wq 保存。

说明:此步骤的执行办法是 Linux/Aix 服务上的修改 db_name 参数修改方法;Windows 服务器上的可以使用记事本打开参数文件 initORCL.ora,参考此步骤修改 db_name 的值。
4. 登录数据库,创建 spfile 文件,启动数据库:
sqlplus / as sysdba
create spfile from pfile='/home/oracle/initORCL.ora';
startup nomount;

说明:Windows 环境下 create spfile from pfile='/home/oracle/initORCL.ora'; 此条命令请将 /home/oracle/ 替换为 Windows 环境下参数文件的路径。
5. 重新发起数据库恢复即可。

更多信息

关于 Oracle 报错代码具体含义,可查看 Oracle 官方文档:Oracle 报错代码含义查询