所属类别:开发技术
文章作者:sunwayle
特别推荐:免费发布信息 承包关键词~~抢爆了!HOT!
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://sunwayle.blog.51cto.com/114995/99435现象 :启动数据库时,报错如下:SQL> conn / as sysdba已连接。SQL> startup force;ORACLE 例程已经启动。Total System Global Area 188743680 bytesFixed Size 1248020 bytesVariable Size 75498732 bytesDatabase Buffers 109051904 bytesRedo Buffers 2945024 bytesORA-00205: ?????????, ??????, ???????解决思路:1。查看alert_orcl.log日志,发现问题如下:Mon Sep 15 20:03:44 2008ORA-00202: control file: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL'ORA-27041: unable to open fileOSD-04002: 无法打开文件O/S-Error: (OS 123) 文件名、目录名或卷标语法不正确。2。shutdown immediate 并用:用复用的控制文件来替换该CONTROL01。CTL,再次启动数据库.发现还是报这个错误。3。启动数据库到mount状态,再用create pfile from spfile 创建initorcl.ora文件,查看一下,控制文件路径,发现如下问题:control01.ctl中间有空黑色的点,把它删除之后,保存。4。再次启动数据库:SQL> startup pfile=C:\oracle\product\10.2.0\db_1\database\initorcl.oraORACLE 例程已经启动。Total System Global Area 188743680 bytesFixed Size 1248020 bytesVariable Size 75498732 bytesDatabase Buffers 109051904 bytesRedo Buffers 2945024 bytesORA-00205: ?????????, ??????, ???????还是报这个错。。5。再次查看alertorcl.log,却发现报错如下:ORA-00202: control file: 'C:\ORACLE\PRODUCT\1.2.0\ORADATA\ORCL\CONTROL03.CTL'ORA-27041: unable to open fileOSD-04002: 无法打开文件O/S-Error: (OS 123) 文件名、目录名或卷标语法不正确。哈哈,这时心理有数了,再次查initorcl.ora这个文件,发现控件文件3的问题,并修正,顺便核查了一下所有的控制文件,保存后,再次用pfile启动数据库,OK,顺利启动。。6。顺利启动,一切正常。这时候,我又重新创建spfile from pfile,重新启动数据库后,一切正常。SQL> startup pfile=C:\oracle\product\10.2.0\db_1\database\initorcl.oraORACLE 例程已经启动。Total System Global Area 188743680 bytesFixed Size 1248020 bytesVariable Size 75498732 bytesDatabase Buffers 109051904 bytesRedo Buffers 2945024 bytes数据库装载完毕。数据库已经打开。SQL>SQL> create spfile from pfile;文件已创建。SQL> shutdown immediate;数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL> startupORACLE 例程已经启动。Total System Global Area 188743680 bytesFixed Size 1248020 bytesVariable Size 75498732 bytesDatabase Buffers 109051904 bytesRedo Buffers 2945024 bytes数据库装载完毕。数据库已经打开。SQL> show parameter spfile;NAME TYPE VALUE------------------------------------ ----------- ------------------------------spfile string C:\ORACLE\PRODUCT\10.2.0\DB_1\ DATABASE\SPFILEORCL.ORASQL>总结:今天这个修复控制文件的试验告诉我们两个要注意的问题。1。启动数据库报ORA-00205: ?????????, ??????, ???????错误,与下列因素有关:A 查看alert_sid.log日志,查看是哪个控制文件打不开。B COPY正确的控制文件替换受损的控制文件,启动数据库,若还是报同样的错误。执行C频操作C create pfile from spfile ,查看initsid.ora文件,控制文件的相关路径是否正确D 全更改为正确的之后,再启动数据库。2。所有的SQL语句,不要保存在WORD里边,这是今天控制文件路径错误的根源。切记切记。用记事本做。参考网摘:一、 损坏单个控制文件 损坏单个控制文件是比较容易恢复的,因为一般的数据库系统,控制文件都不是一个,而且所有的控制文件都互为镜相,只要拷贝一个好的控制文件替换坏的控制文件就可以了。 1、控制文件损坏,最典型的就是启动数据库出错,不能mount数据库 SQL>startup ORA-00205: error in identifying controlfile, check alert log for more info 查看报警日志文件,有如下信息 alter database mount Mon May 26 11:59:52 2003 ORA-00202: controlfile: 'D:Oracleoradatachencontrol01.ctl' ORA-27041: unable to open file OSD-04002: unable to open file O/S-Error: (OS 2) 系统找不到指定的文件。 2、停止数据库 SQL>shutdown immediate 3、拷贝一个好的控制文件替换坏的控制文件或修改init.ora中的控制文件参数,取消这个坏的控制文件。 4、重新启动数据 SQL>startup 说明: 1、损失单个控制文件是比较简单的,因为数据库中所有的控制文件都是镜相的,只需要简单的拷贝一个好的就可以了 2、建议镜相控制文件在不同的磁盘上 3、建议多做控制文件的备份,长期保留一份由alter database backup control file to trace产生的控制文件的文本备份二、 损坏全部控制文件 损坏多个控制文件,或者人为的删除了所有的控制文件,通过控制文件的复制已经不能解决问题,这个时候需要重新建立控制文件。同时注意,alter database backup control file to trace可以产生一个控制文件的文本备份。 以下是详细重新创建控制文件的步骤 1、关闭数据库 SQL>shutdown immediate; 2、删除所有控制文件,模拟控制文件的丢失 3、启动数据库,出现错误,并不能启动到mount下 SQL>startup ORA-00205: error in identifying controlfile, check alert log for more info 查看报警日志文件,有如下信息 alter database mount Mon May 26 11:53:15 2003 ORA-00202: controlfile: 'D:Oracleoradatachencontrol01.ctl' ORA-27041: unable to open file OSD-04002: unable to open file O/S-Error: (OS 2) 系统找不到指定的文件。 4、关闭数据库 SQL>shutdown immediate; 5、在internal或sys下运行如下创建控制文件的脚本,注意完整列出联机日志或数据文件的路径,或修改由alter database backup control file to trace备份控制文件时产生的脚本,去掉多余的注释即可。 STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "TEST" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 32 MAXLOGMEMBERS 2 MAXDATAFILES 254 MAXINSTANCES 1 MAXLOGHISTORY 226 LOGFILE
GROUP 1 'D:ORACLEORADATATESTREDO01.LOG' SIZE 1M,
GROUP 2 'D:ORACLEORADATATESTREDO02.LOG' SIZE 1M,
GROUP 3 'D:ORACLEORADATATESTREDO03.LOG' SIZE 1M
DATAFILE
'D:ORACLEORADATATESTSYSTEM01.DBF',
'D:ORACLEORADATATESTRBS01.DBF',
'D:ORACLEORADATATESTUSERS01.DBF',
'D:ORACLEORADATATESTTEMP01.DBF',
'D:ORACLEORADATATESTTOOLS01.DBF',
'D:ORACLEORADATATESTINDX01.DBF' CHARACTER SET ZHS16GBK;
-- Recovery is required if any of the datafiles are restored backups, -- or if the last shutdown was not normal or immediate. RECOVER DATABASE --if the last shutdown was not normal or immediate --noarchive -- RECOVER DATABASE UNTIL CANCEL USING BACKUP CONTROLFILE --archive -- RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL -- Database can now be opened normally. ALTER DATABASE OPEN;
--if recover database until cancel --ALTER DATABASE OPEN RESETLOGS; 6、如果没有错误,数据库将启动到open状态下。 说明: 1、重建控制文件用于恢复全部控制文件的损坏,需要注意其书写的正确性,保证包含了所有的数据文件与联机日志 2、经常有这样一种情况,因为一个磁盘损坏,我们不能再恢复(store)数据文件到这个磁盘,因此在store到另外一个盘的时候,我们就必须重新创建控制文件,用于识别这个新的数据文件,这里也可以用这种方法用于恢复。本文出自 “专注,技术成就梦想!----sunwayle.blog.51cto.com” 博客,请务必保留此出处http://sunwayle.blog.51cto.com/114995/99435本文出自 51CTO.COM技术博客
相关信息· js常用函数2008-8-16整理
· asp.net中调用Office来制作3D统计图
· vim+ctags用法
· 用php来检测proxy
105690
75083
