联系:手机/微信(+86 17813235971) QQ(107644445)
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
朋友和我说,他的数据库ORACLE 8.0.5出现ORA-01207,进行了尝试恢复但是别未成功,让我协助其完成恢复
数据库版本
SVRMGR> select * from v$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 TNS for 32-bit Windows: Version 8.0.5.0.0 - Production NLSRTL Version 3.3.2.0.0 - Production 5 rows selected.
open数据库报ORA-01207错误
SVRMGR> alter database open; alter database open * ORA-01122: database file 1 failed verification check ORA-01110: data file 1: 'D:\ORANT\DATABASE\SYS1ORCL.ORA' ORA-01207: file is more recent than controlfile - old controlfile
出现该错误的原因是因为控制文件里面的scn或者checkpoint_time>数据文件中的对应值,从而出现该错误,解决方法重建控制文件或者执行recover using backup controlfile 之类命令
重建控制文件,并open报ORA-600[4147]
SVRMGR> alter database backup controlfile to trace; Statement processed. SVRMGR> shutdown immediate ORA-01109: database not open Database dismounted. ORACLE instance shut down. SVRMGR> STARTUP NOMOUNT ORACLE instance started. Total System Global Area 15077376 bytes Fixed Size 49152 bytes Variable Size 12906496 bytes Database Buffers 2048000 bytes Redo Buffers 73728 bytes SVRMGR> CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS NOARCHIVELOG 2> MAXLOGFILES 32 3> MAXLOGMEMBERS 2 4> MAXDATAFILES 32 5> MAXINSTANCES 16 6> MAXLOGHISTORY 3260 7> LOGFILE 8> GROUP 1 'D:\ORANT\DATABASE\LOG4ORCL.ORA' SIZE 1M, 9> GROUP 2 'D:\ORANT\DATABASE\LOG3ORCL.ORA' SIZE 1M, 10> GROUP 3 'D:\ORANT\DATABASE\LOG2ORCL.ORA' SIZE 1M, 11> GROUP 4 'D:\ORANT\DATABASE\LOG1ORCL.ORA' SIZE 1M 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 database using backup controlfile; ORA-00279: change 46960617 generated at 01/31/14 18:51:49 needed for thread 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> alter database open; alter database open * 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: database not open Database dismounted. ORACLE instance shut down. SVRMGR> startup ORACLE instance started. Total System Global Area 15077376 bytes Fixed Size 49152 bytes Variable Size 12906496 bytes Database Buffers 2048000 bytes Redo Buffers 73728 bytes Database mounted. 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
通过重建控制文件,执行recover database,再open数据库恢复成功