我正在尝试启动我们的数据库。当我登录 sqlplus 并启动时,我收到以下消息:
Total System Global Area 534462464 bytes
Fixed Size 2215064 bytes
Variable Size 331350888 bytes
Database Buffers 192937984 bytes
Redo Buffers 7958528 bytes
Database mounted.
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
因此我关机、启动挂载(工作正常)然后运行:
SQL> alter database recover using backup controlfile until cancel;
alter database recover using backup controlfile until cancel
*
ERROR at line 1:
ORA-00283: recovery session canceled due to errors
ORA-19909: datafile 1 belongs to an orphan incarnation
ORA-01110: data file 1: '/<path>/system01.dbf'
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01195: online backup of file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/<path>/system01.dbf'
我知道我之前曾使用过说明来帮助我解决此错误,但我似乎无法追踪它。
一些历史:我们想从另一个数据库刷新此数据库中的数据,因此我们尝试对此实例执行 expdb/impdb。impdb 未正确完成,并收到文件结束错误消息并挂起(如果它很重要,我仍然在日志中保留该消息)。
由于实例将在此时启动,我们决定使用热备份过程来恢复数据库。热备份来自另一台服务器/实例。两周前我们经历了同样的过程。在重新创建控制文件时,我们遇到了上述问题。
答案1
在从热备份恢复之前,您应该确保损坏的实例没有留下任何旧控制文件。此外,您还应该移出或删除与要恢复的数据库位置和文件名相匹配的任何现有数据文件。
答案2
您使用的是旧控制文件,但您尝试恢复的文件来自较新的数据库版本。如果您想使用备份控制文件,则必须从备份中恢复数据文件。无论如何都不要恢复重做日志文件!!