当前位置: 首页 > Linux

Linux文件系统异常导致数据库文件无法访问

时间:2023-04-06 04:22:56 Linux

简介:某客户单位数据库发生异常。一般现象是:数据库状态是打开的,但是其中一个数据文件无法访问。本文分享故障排除和解决问题的全过程。通过ls查看文件报错如下:[oracle@oracledata01oracle]$lsls:cannotaccesszf4.dbf:input/outputerrorandddcommandcannotreadthefile:[oracle@oracledata01fd]$ddif=zf4.dbfbs=8192count=1skip=1|od-x|header-1bash:header:commandnotfounddd:Opening"zf4.dbf":Thereisnosuchfileordirectoryatthistime从数据库层面看到的信息像这样:2020年4月28日星期二16:49:51文件/oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_ora_9146.trc:ORA-01157中的错误:无法识别/锁定数据文件11-请参阅DBWR跟踪文件ORA-01110:数据文件11:'/oracle_data/oracle/zf4.dbf'ORA-1157在以下期间发出信号:ALTERDATABASEOPEN...2020年4月28日星期二16:49:51文件/oracle_app/Oracle12c/diag/rdbms/中的错误orcl/orcl/trace/orcl_m000_9152.trc:ORA-27037:无法获取文件状态Linux-x86_64错误:5:输入/输出错误附加信息:3ORA-01122:数据库文件11验证失败ORA-01110:数据文件11:'/oracle_data/oracle/zf4.dbf'ORA-01565:错误识别文件'/oracle_data/oracle/zf4.dbf'ORA-27037:无法获取文件状态Linux-x86_64错误:5:输入/输出错误附加信息:3TueApr2816:50:192020USER(ospid:9309):从上面终止实例查看信息,无法读取11号数据库文件客户在我们恢复之前做了几次尝试,遇到了一些数据库坏块,也遇到了很多ora-00600错误:WedApr2903:10:122020Errorsinfile/oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_j009_65816.trc:ORA-12012:自动执行作业“ZX_XT”时出错。“JS_XT_XZGLXX_XZXK_FR”ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小ORA-06512:在“ZX_XT”中.PKG_DoublePublicityReception_Xing_2019",第1071ORA-00942行:表或视图不存在ORA-02063:以下行(来自BM_SJJH)alterdatabasedatafile11resize20gCompleted:alterdatabasedatafile11resize20gWedApr2903:10:152020CorruptBlockFoundCONT=0,TSN=1,TSNAME=SYSAUXRFN=3,BLK=3,RDBA=12582915OBJN=1,OBJD=-1,OBJECT=_NEXT_OBJECT,SUBOBJECT=SEGMENTPEGMENTOWNERM=SYS,=InvalidTypeWedApr2903:10:152020Errorsinfile/oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_m006_66106.trc(incident=246250):ORA-00600:内部错误代码,参数:[kdBlkCheckError],[3],[3],[18018]、[]、[]、[]、[]、[]、[]、[]、[]事件详细信息在:/oracle_app/Oracle12c/diag/rdbms/orcl/orcl/incident/incdir_246250/orcl_m006_66106_i246250.trcWedApr2903:10:152020......WedApr2903:11:002020Doingblockrecoveryforfile3block3Resumingblockrecovery(PMON)forfile3block3Blockrecoveryfromlogseq50078,block15827到scn14514058257813WedApr2903:11:002020在线重做日志的恢复:Thread1Group3Seq50078Readingmem0Mem#0:/oracle_data/oradata/orcl/redo03.logBlockrecoverycompletedatrba50078.23957.16,scn3379.163637sin463637serror文件/oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_m004_66271.trc(incident=245043):ORA-00600:内部错误代码,参数:[kdBlkCheckError],[3],[3],[18018],[],[],[],[],[],[],[],[]事件详情在:/oracle_app/Oracle12c/diag/rdbms/orcl/orcl/incident/incdir_245043/orcl_m004_66271_i245043.trc使用ADRCI或支持工作台打包事件。有关错误和打包详细信息,请参阅MyOracleSupport上的注释411.1。WedApr2903:11:012020Errorsinfile/oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_m004_66271.trc:ORA-00600:内部错误代码,参数:[kdBlkCheckError],[3],[3],[18018],[],[],[],[],[],[],[],[]WedApr2903:11:022020......WedApr2903:15:492020Errorsinfile/oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_j000_65779.trc(incident=245026):ORA-00600:内部错误代码,参数:[13011]、[7907]、[12713924]、[44]、[12687314]、[0]、[]、[]、[]、[]、[],[]ORA-01403:未找到数据ORA-06512:在“SYS.DBMS_AQ_INV”,第1248行ORA-06512:在第1行事件详细信息位于:/oracle_app/Oracle12c/diag/rdbms/orcl/orcl/incident/incdir_245026/orcl_j000_65779_i245026.trcWedApr2903:15:522020Dumpingdiagnosticdataindirectory=[cdmp_20200429031552],requestedby(instance=1,osid=65779(J000)),summary=[incident=245026].使用ADRCI或支持工作台打包事件。有关错误和打包详细信息,请参阅MyOracleSupport上的注释411.1。文件/oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_j000_65779.trc(incident=245027):ORA-00中的错误600:内部错误代码,参数:[13011]、[7907]、[12713924]、[44]、[12687314]、[0]、[]、[]、[]、[]、[]、[]ORA-01403:未找到数据ORA-06512:在“SYS.DBMS_AQ_INV”,第1248行ORA-06512:在第1行事件详细信息:/oracle_app/Oracle12c/diag/rdbms/orcl/orcl/incident/incdir_245027/orcl_j000_65779_i245027.trcUseADRSupportWorkbench打包事件.......WedApr2904:05:072020Errorsinfile/oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_m003_76294.trc:ORA-00600:内部错误代码,参数:[kdBlkCheckError],[3],[3],[18018],[],[],[],[],[],[],[],[]WedApr2904:05:082020Dumping目录中的诊断数据=[cdmp_20200429040508],由(实例=1,osid=76263)请求,摘要=[事件=282250]。文件/oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_ora_76263.trc中的错误(incident=282251):ORA-00600:内部错误代码,参数:[qosdFindObjRead:objcntmismatch],[],[],[],[],[],[],[],[],[],[],[]事件详情在:/oracle_app/Oracle12c/diag/rdbms/orcl/orcl/incident/incdir_282251/orcl_ora_76263_i282251.trc使用ADRCI或SupportWorkbench打包事件。错误和打包详情见MyOracleSupport的Note411.1。WedApr2904:05:102020Sweep[inc][282251]:completedSweep[inc2][282265]:completedSweep[inc2][282251]:completedWedApr2904:05:102020Dumpingdiagnosticdataindirectory=[cdmp_20200429040510],由(实例=1,osid=76263)请求,summary=[incident=282251].errorsinfile/oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_ora_76263.trc(incident=282252):ORA-00600:内部错误代码,参数:[qosdFindObjRead:objcnt不匹配]、[]、[]、[]、[]、[]、[]、[]、[]、[]、[]、[]事件详情:/oracle_app/Oracle12c/diag/rdbms/orcl/orcl/incident/incdir_282252/orcl_ora_76263_i282252.trc使用ADRCI或SupportWorkbench打包事件。参见MyOracleSupport上的注释411.1了解错误和打包细节。WedApr2904:07:262020......WedApr2904:24:012020瑞典ep[inc][279857]:completedSweep[inc2][279857]:completedErrorsinfile/oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_ora_78503.trc(incident=279858):ORA-00600:内部错误代码,参数:[qosdFindObjRead:objcntmismatch],[],[],[],[],[],[],[],[],[],[],[]事件详情在:/oracle_app/Oracle12c/diag/rdbms/orcl/orcl/incident/incdir_279858/orcl_ora_78503_i279858.trc使用ADRCI或SupportWorkbench打包事件。有关错误和打包详细信息,请参阅MyOracleSupport上的注释411.1。WedApr2904:24:032020Sweep[inc][279858]:completedSweep[inc2][279858]:completedWedApr2904:24:042020Dumping目录中的诊断数据=[cdmp_20200429042404],由(实例=1,osid=78503)请求,摘要=[事件=279858]。WedApr2904:25:572020Errorsinfile/oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_ora_78738.trc(incident=282222):ORA-00600:内部错误代码,参数:[qosdFindjObjRead不匹配],[],[],[],[],[],[],[],[],[],[],[]在事故详情在:/oracle_app/Oracle12c/diag/rdbms/orcl/orcl/incident/incdir_282222/orcl_ora_78738_i282222.trcUseADRCIorSupportWorkbench打包事故。参见MySupport上的Note411.1forerrorrailand29Weddet:25:582020Sweep[inc][282222]:completedSweep[inc2][282222]:completedWedApr2904:25:582020Dumpingdiagnosticdataindirectory=[cdmp_20200429042558],(instance,787,3osid)summary=[incident=282222].Errors请求在文件/oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_ora_78738.trc(incident=282223):ORA-00600:内部错误代码,参数:[qosdFindObjRead:objcnt不匹配],[],[],[],[],[],[],[],[],[],[],[]事件详情在:/oracle_app/Oracle12c/diag/rdbms/orcl/orcl/incident/incdir_282223/orcl_ora_78738_i282223.trc上述ora-00600错误一般都是常见的,几乎都可以定性为坏数据块。对于文件3坏块,处理起来比较简单,直接drop或者truncate相关对象即可。然后重建awr。但是11号数据文件呢?这里我们的处理方式是文件丢失时(我很早以前就处理过Windows环境数据文件大小为0kb的问题,这些情况都差不多。)这里我讲一个简单的处理思路:\1.通过odu扫描磁盘,使用不同的偏移方式(0和4096)进行扫描。\2。比较两次扫描结果,合并范围信息,提取文件。由于这里只有一个文件,大小20g左右,可以dd拼接。最终文件拼接完成后,因为这里是非归档环境,无法进行正常的恢复,所以需要通过bbed修改数据文件头的checkpoint信息。对于文件系统,目前不是Oracle存储的最佳选择。推荐使用ASM。当然,MySQL、PostgreSQL等其他数据库除外。以上是良序教程网为各位小伙伴分享的Linux文件系统异常,导致数据库文件无法访问。以上就是良序教程网为各位小伙伴们分享的Linux相关知识。