ORA-01207故障恢复(重建控制文件恢复)

来源:互联网 发布:mac如何给文件夹加密 编辑:程序博客网 时间:2024/05/22 19:38

数据库ORACLE 8.0.5出现ORA-01207,进行了尝试恢复但是别未成功,让我协助其完成恢复
数据库版本

SVRMGR>select*fromv$version;
BANNER
----------------------------------------------------------------
Oracle8 Release 8.0.5.0.0 - Production
PL/SQL Release 8.0.5.0.0 - Production
CORE Version 4.0.5.0.0 - Production
TNSfor32-bitWindows: Version 8.0.5.0.0 - Production
NLSRTL Version 3.3.2.0.0 - Production
5rowsselected.

open数据库报ORA-01207错误

SVRMGR>alterdatabaseopen;
alterdatabaseopen
*
ORA-01122:databasefile 1 failed verification check
ORA-01110: data file 1: 'D:\ORANT\DATABASE\SYS1ORCL.ORA'
ORA-01207: file ismore recent than controlfile - old controlfile

出现该错误的原因是因为控制文件里面的scn或者checkpoint_time>数据文件中的对应值,从而出现该错误,解决方法重建控制文件或者执行recover using backup controlfile 之类命令

重建控制文件,并open报ORA-600[4147]

SVRMGR>alterdatabasebackup controlfile totrace;
Statement processed.
SVRMGR> shutdown immediate
ORA-01109:databasenotopen
Databasedismounted.
ORACLE instance shut down.
SVRMGR> STARTUP NOMOUNT
ORACLE instance started.
Total System GlobalArea                         15077376 bytes
FixedSize                                         49152 bytes
VariableSize                                   12906496 bytes
DatabaseBuffers                                  2048000 bytes
Redo Buffers                                        73728 bytes
SVRMGR>CREATECONTROLFILE REUSE DATABASE"ORCL"NORESETLOGS NOARCHIVELOG
     2>     MAXLOGFILES 32
     3>     MAXLOGMEMBERS 2
     4>     MAXDATAFILES 32
     5>     MAXINSTANCES 16
     6>     MAXLOGHISTORY 3260
     7> LOGFILE
     8>  GROUP1'D:\ORANT\DATABASE\LOG4ORCL.ORA' SIZE1M,
     9>  GROUP2'D:\ORANT\DATABASE\LOG3ORCL.ORA' SIZE1M,
    10>  GROUP3'D:\ORANT\DATABASE\LOG2ORCL.ORA' SIZE1M,
    11>  GROUP4'D:\ORANT\DATABASE\LOG1ORCL.ORA' SIZE1M
    12> DATAFILE
    13>  'D:\ORANT\DATABASE\SYS1ORCL.ORA',
    14>  'D:\ORANT\DATABASE\USR1ORCL.ORA',
    15>  'D:\ORANT\DATABASE\RBS1ORCL.ORA',
    16>  'D:\ORANT\DATABASE\TMP1ORCL.ORA'
    17> ;
Statement processed.
SVRMGR> recover databaseusing backup controlfile;
ORA-00279: change 46960617 generated at01/31/14 18:51:49 needed forthread 1
ORA-00289: suggestion : D:\ORANT\RDBMS80\ARC12900.1
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
D:\ORANT\DATABASE\LOG3ORCL.ORA
Log applied.
Media recovery complete.
SVRMGR>alterdatabaseopen;
alterdatabaseopen
*
ORA-00600: internal error code, arguments: [4147], [16], [1], [], [], [], [], []

The ORA-600[4147] basically indicates some kind of corruption with the UNDO (rollback segment)block, most probably due to a lost write to the rollback segment.
ORA-600[4147]是因为回滚段坏块导致(具体是因为undoblock的scn无效),解决方法是用dul找出来回滚段,并屏蔽之

继续恢复报ORA-00600[3668]

SVRMGR> shutdown immediate
ORA-01109:databasenotopen
Databasedismounted.
ORACLE instance shut down.
SVRMGR> startup
ORACLE instance started.
Total System GlobalArea                         15077376 bytes
FixedSize                                         49152 bytes
VariableSize                                   12906496 bytes
DatabaseBuffers                                  2048000 bytes
Redo Buffers                                        73728 bytes
Databasemounted.
ORA-00600: internal error code, arguments: [3668], [1], [2], [17232], [17232], [4], [], []

ORA-00600[3668]是因为在ORACLE 7.0到9.2的版本中The FIRST time an attempt has been made to start an instance after a CREATE CONTROLFILE command has been issued.
At least one data file needs MEDIA RECOVERY.在9.2.0.x及其以后版本报:ORA-1113: file needs media recovery.
通过重建控制文件,执行recover database,再open数据库恢复成功

0 0