ORACLE常见故障恢复方案.docx

上传人:夺命阿水 文档编号:991186 上传时间:2024-02-22 格式:DOCX 页数:7 大小:21.70KB
返回 下载 相关 举报
ORACLE常见故障恢复方案.docx_第1页
第1页 / 共7页
ORACLE常见故障恢复方案.docx_第2页
第2页 / 共7页
ORACLE常见故障恢复方案.docx_第3页
第3页 / 共7页
ORACLE常见故障恢复方案.docx_第4页
第4页 / 共7页
ORACLE常见故障恢复方案.docx_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《ORACLE常见故障恢复方案.docx》由会员分享,可在线阅读,更多相关《ORACLE常见故障恢复方案.docx(7页珍藏版)》请在课桌文档上搜索。

1、一.非归档模式的数据库,丢失数据文件 故障现象A丢失某个数据库文件,造成了数据库无法启动,同时数据库处于非归档模式,也没有冷备份,启动时的错误信息如下:ORA-Ol157:cannotidentify/lockdatafile3-seeDBWRtracefileORA-Ol110:datafile3:D:ORACLEORADATATESTUSERS01.DBF 解决方法A将数据库启动到mount状态下:sqlplusu/assysdbanstartpmountA从数据库中删除该数据文件alterClQtQbOSedatafilexxofflinedrop;A打开数据库 alterdatabas

2、eopen;A备注:A该方法可正常打开数据库,但该datafile中的数据将丢失A如果误删除了system表空间的datafile,则该方法不奏效A如果该表空间还包含其它数据文件,用EXP把数据备份出来,然后删除表空间,重建表空间,将数据导入。如果不包含其它数据文件,则直接删除表空间就可以了。二.归档模式数据库丢失某数据文件,无备份,但有该数据文件创建以来的归档日志故障现象A归档模式的数据库,丢失了某个数据库文件,造成了数据库无法启动,同时没有数据库的全备份,但有该数据文件创建以来的归档日志,数据库无法启动:ORA-Ol157:cannotidentify/lockdatafile3-seeD

3、BWRtracefileORA-Ol110:datafile3:D:ORACLEORADATATESTUSERS01.DBF解决方法A启动数据库到mount状态startupmountA手工创建丢失的数据文件alterdatabasecreatedatafilejoldfnare,astnewfname,sizexxxreuse;“利用归档日志对数据文件进行恢复recoverdatafile,newfname,;或者recoverdatafilen;A打开数据库alterdatabaseopen;A备注:A该方法可正常打开数据库,而且不会丢失数据A该方法有两个前提A丢失的数据文件不能是系统文件

4、A不能丢失或损坏控制文件三.非current和active的redolog损坏故障现象A误删除了redolog,或者redolog被损坏,数据库能mount,不能open:0RA-00313:openfailedformembersofloggroup3ofthread1ORA-00312:onlinelog3thread1:7oraclel0oradataoral0gredo03.log,解决方法A查询v$log视图,确认损坏的redologgroup是非CUrrent和activeSQLselectgroup#,thread#,SeqUence#,archived,statusfromv$

5、log;GROUP#THREAD#SEQUENCE#ARCHIVEDSTATUS11103YESINACTIVE21104NOCURRENT31102YESINACTIVE,如果该日志已经归档,用下面的命令清除日志内容Alterdatabaseclearlogfilegroup3;A如果该日志没有归档,用下面的命令清除日志内容Alterdatabaseclearunarchivedlogfilegroup3;A打开数据库Alterdatabaseopen;E3.current或active的redolog损坏故障现象A误删除了redolog,或者redolog被损坏,数据库不能打开:ORA-0

6、0313:openfailedformembersofloggroup2ofthread1ORA-00312:onlinelog2thread1:7oraclel0oradataoral0gredo02.log,解决方法A查询v$log视图,确认损坏的redologgroup是current或activeSQLselectgroup#,thread#,sequence#,archived,statusfromv$log;GROUP#THREAD#SEQUENCE#ARCHIVEDSTATUS112YESINACTIVE214NOCURRENT313YESINACTIVEA情况1:当前日志文件还

7、存在,只是逻辑损坏,并且当前日志没有未决事务需要实例恢复alterdatabaseclearunarchivedlogfilegroup2;-不会才艮错 recoverdatabaseuntilcancel; alterdatabaseopenresetlogs;A一般情况下,该方法不奏效,如果clear报错,则用其它方法.A情况2:当前日志完全损坏,且有未决事务,数据库有备份 alterdatabaseclearunarchivedlogfilegroup2;-会报错ERRORatline1:ORA-01624:log1neededforcrashrecoveryofthread1 rest

8、oredatabase; recoverdatabaseuntilcancel;-选择auto recoverdatabaseuntilcancel; alterdatbaseopenresetlogs;A情况3:当前日志完全损坏,且有未决事务,数据库无备份shutdownimmediate;_allow_resetlogs_corruption=true;startupmountpfile=yxxx,;recoverdatabaseuntilcancel;alterdatbaseopenresetlogs;shutdownimmediate_allow_resetlogs_corruptio

9、n=true;StartupA尽快做一个数据库全备份五.临时表空间的数据文件损坏故障现象A临时表空间的数据文件发生损坏,系统出现故障,如何恢复解决方法A在皿及以上版本数据库,启动数据库时,如果发现临时数据文件损坏,会自动创建,如果在数据库运行过程中,可以手工重建:createtemporarytablespacetempitempfilexxsizex,;alterdatabasedefaulttemporarytablespacetempi;-系统默认临时表空间的重建需要执行这一步,否则不需要droptablespacetemp;altertablespacetempirenametotem

10、p;A在IOg以前版本数据库,可以在数据库打开后或运行过程中,手工重建就可以了alterdatabasedatafile,xxx,offlinedrop;-如果数据库打不开,就执行这个步骤createtemporarytablespacetempitempfile,sizexx,;alterdatabasedefaulttemporarytablespacetempi;-系统默认临时表空间的重建需要执行这一步,否则不需要9以前版本也不需要。droptablespacetemp;altertablespacetempirenametotemp;六.UNDO数据文件损坏,数据库无法启动故障现象AU

11、nd。数据文件发生了丢失或损坏,数据库启动报错:ORA-01157:cannotidentify/lockdatafile2-seeDBWRtracefileORA-01110:datafile2:,oraclel0oradataoral0gundotbs01.dbf,解决方法A如果数据库有备份,则利用备份进行恢复A如果数据库没有备份,则利用重建undo表空间的方式进行恢复startupmountalterdatabasedatafilenofflinedrop;(删除损坏的undo文件)alterdatabaseopen;createundotablespacexx;(仓!J建一Zb新的un

12、do表空间)altersystemsetIlndO_tablespace=xxx;(指向新的undo表空间)droptablespaceyyyincludingContents;(删除原来的undo表空间)七.控制文件损坏故障现象A控制文件发生了损坏,数据库已经无法启动,报错信息如下:ORA-00202:controlfile:D:Oracleoradatachencontrol01.ctr0RA-27041:unabletoopenfileOSD-04002:unabletoopenfile解决方法A情况一:控制文件有镜像,且镜像控制文件没有被损坏A关闭数据库A将没有损坏的控制文件覆盖掉损坏

13、的控制文件,或者修改参数文件的ControLfiIes参数,去掉损坏的控制文件A重新启动数据库“情况二:控制文件无镜像,或者镜像的所有控制文件都损坏了A恢复控制文件A如果控制文件有备份,从备份中恢复控制文件restorecontrolfilefrom,A如果控制文件有SnaPShot,将snapshot控制文件替换掉原损坏控制文件A如果做过alterdatabasebackupcontrolfiletotrace的控制文件脚本备份,可以用trace文件中的重建脚本来创建控制文件,A如果没有备份,也没有trace备份,只能手工编写脚本创建控制文件,前提是你对数据库文件结构非常清楚,恢复和打开数据

14、库A如果是用createcontrolfile.noresetlogs方式重建的控制文件 recoverdatabase; alterdatabaseopen;altertablespacetempaddtempfile,sizexxreuse;一对所有临时表空间做此操作A如果是用createcontrolfile.resetlogs方式重建的控制文件,或者通过备份或快照恢复的控制文件 recoverdatabaseusingbackupcontrolfile; alterdatabaseopenresetlogs;altertablespacetempaddtempfile,sizexxreuse;一对所有临时表空间做此操作

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号