报错:ORA-00603、ORA-01092、ORA-00704, ORA-00604, ORA-00904
基本情况
在做备份还原的时候,可能是第三方备份软件的配置的原因,使得我在测试服务器做恢复测试时,使用的备份集不是我的预期的备份集。
我想恢复的是19c的数据库,而我实际恢复的是一个11g的数据库。
我在恢复控制文件、数据文件和归档日志文件的时候都很顺利,recover database也成功,但是在最后一步alter database open resetlogs;
时报错。见标题。
解决
官网给出的解释是重新设置ORACLE_HOME
这样也对,同一台服务器不通版本的oracle的软件和数据库没有对应上,一般的情况大概率是环境变量的问题。只要重新指向就可以了。
错误的做法
网上还有一个方法:
- 用upgrade方法开库:
alter database open upgrade;
这样数据库的状态是OPEN MIGRATE
状态。 - 若目标库版本在12以上用该命令:
cd $ORACLE_HOME/rdbms/admin
$ORACLE_HOME/perl/bin/perl catctl.pl catupgrd.sql
若目标库版本在12以下用该命令:
SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql;
网上说这样就能开库了,但是我测试后发现不行,源是11g,目标是19c。
并且重启之后虽然可以将数据库置于open状态,但是组件的版本依然是upgrade状态,很多表的无法查询。总之这不是一个正确的做法。
我们的目的也不是为了升级这个数据库。
如果想了解升级应该用Oracle的升级程序autoupgrade.jar。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库