1/10用友股份-LE支持服务业务本部技术方案--《当日日志组损坏导致数据库无法启动解决案例》建立日期:2014-01-20修改日期:xxxx-xx-xx文档属性:客户文控编号:LE-DY-JS-2014-00022/10文档控制创建记录适用范围审阅人日期审阅签字所属部门发布范围发布人姓名所属部门发布时间内部员工伙伴客户日期作者所属部门邮件地址版本2014-01-20郜耿智技术支持部V1.0版本领域模块备注3/10目录当日日志组损坏导致数据库无法启动解决案例....................................................4一、问题描述............................................................................................................4二、问题分析及解决................................................................................................41)查找问题症状....................................................................................................42)查看日志组.........................................................................................................53)查看损坏的文件.................................................................................................64)使用resetlogs参数恢复日志文件....................................................................65)使用resetlogs方式启动数据库........................................................................94/10当日日志组损坏导致数据库无法启动解决案例注:此解决方案涉及数据库操作或代码操作,请由计算机专业人士操作,并且操作前请做好备份工作!一、问题描述数据库服务器断电导致文件块损坏,数据库无法正常启动二、问题分析及解决1)查找问题症状MicrosoftWindows[版本5.2.3790](C)版权所有1985-2003MicrosoftCorp.C:\DocumentsandSettings\Administrator>setoracle_sid=ufdataC:\DocumentsandSettings\Administrator>sqlplus/assysdbaSQL*Plus:Release10.2.0.3.0-Productionon星期五1月1009:08:282014Copyright(c)1982,2006,Oracle.AllRightsReserved.连接到:OracleDatabase10gEnterpriseEditionRelease10.2.0.3.0-ProductionWiththePartitioning,OLAPandDataMiningoptionsSQL>selectstatusfromv$Instance;5/10STATUS------------MOUNTEDSQL>showparameterspfileNAMETYPEVALUE-----------------------------------------------------------------------------spfilestringD:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\SPFILEUFDATA.ORASQL>createpfilefromspfile;文件已创建。SQL>alterdatabaseopen;alterdatabaseopen*第1行出现错误:ORA-00368:重做日志块中的校验和错误ORA-00353:日志损坏接近块66709更改44894635时间01/06/201419:00:04ORA-00312:联机日志1线程1:'E:\ORADATA\UFDATA\REDO01.LOG'2)查看日志组由图可知,日志组1为当前日志组,可见损坏的是当前日志组6/103)查看损坏的文件可见数据文件并未损坏,损坏的是当前日志组4)使用resetlogs参数恢复日志文件SQL>selectstatusfromv$Instance;STATUS7/10------------MOUNTEDSQL>altersystemset"_allow_resetlogs_corruption"=truescope=spfile;系统已更改。SQL>altersystemsetevents'10046tracenamecontextoff';系统已更改。SQL>altersystemsettimed_statistics=false;系统已更改。SQL>altersessionsetevents'10015tracenameADJUST_SCNlevel1';会话已更改。SQL>recoverdatabaseuntilcancel;ORA-00279:更改44894635(在01/06/201419:00:04生成)对于线程1是必需的ORA-00289:建议:D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\UFDATA\ARCHIVELOG\2014_01_10\O1_MF_1_1385_%U_.ARCORA-00280:更改44894635(用于线程1)在序列#1385中指定日志:{=suggested|filename|AUTO|CANCEL}AUTOORA-00308:无法打开归档日志'D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\UFDATA\ARCHIVELOG\2014_01_10\O1_MF8/10_1_1385_%U_.ARC'ORA-27041:无法打开文件OSD-04002:无法打开文件O/S-Error:(OS2)系统找不到指定的文件。ORA-00308:无法打开归档日志'D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\UFDATA\ARCHIVELOG\2014_01_10\O1_MF_1_1385_%U_.ARC'ORA-27041:无法打开文件OSD-04002:无法打开文件O/S-Error:(OS2)系统找不到指定的文件。ORA-01547:警告:RECOVER成功但OPENRESETLOGS将出现如下错误ORA-01194:文件1需要更多的恢复来保持一致性ORA-01110:数据文件1:'E:\ORADATA\UFDATA\SYSTEM01.DBF'SQL>recoverdatabaseuntilcancel;ORA-00279:更改44894635(在01/06/201419:00:04生成)对于线程1是必需的ORA-00289:建议:D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\UFDATA\ARCHIVELOG\2014_01_10\O1_MF_1_1385_%U_.ARCORA-00280:更改44894635(用于线程1)在序列#1385中9/10指定日志:{=suggested|filename|AUTO|CANCEL}CANCELORA-01547:警告:RECOVER成功但OPENRESETLOGS将出现如下错误ORA-01194:文件1需要更多的恢复来保持一致性ORA-01110:数据文件1:'E:\ORADATA\UFDATA\SYSTEM01.DBF'ORA-01112:未启动介质恢复SQL>alterdatabaseopenresetlogs;alterdatabaseopenresetlogs*第1行出现错误:ORA-01194:文件1需要更多的恢复来保持一致性ORA-01110:数据文件1:'E:\ORADATA\UFDATA\SYSTEM01.DBF'5)使用resetlogs方式启动数据库SQL>shutdownimmediateORA-01109:数据库未打开已经卸载数据库。ORACLE例程已经关闭。SQL>startupmountORACLE例程已经启动。TotalSystemGlobalArea612368384bytesFixedSize1292060bytesVariableSize213911780bytes10/10DatabaseBuffers394264576bytesRedoBuffers2899968bytes数据库装载完毕。SQL>alterdatabaseopenresetlogs2/数据库已更改。SQL>selectstatusfromv$Instance2/STATUS------------OPENSQL>