案例详解:Linux文件系统异常导致数据库文件无法访问

某客户数据库遇到数据文件无法访问的问题,表现为ls和dd命令均报错,数据库显示ora-00600错误。解决思路包括使用odu扫盘,对比结果抽取文件,用dd拼接,以及在非归档环境下通过bbed修改数据文件头的checkpoint信息。建议使用ASM代替传统文件系统以优化Oracle存储。
摘要由CSDN通过智能技术生成

墨墨导读:某客户单位数据库出现异常,大致现象是:数据库状态是open的,但是其中一个数据文件无法访问,本文分享排查原因与解决问题的整个过程。

通过ls 查看文件都报错,如下所示:

[oracle@oracledata01 oracle]$ ls
ls: 无法访问zf4.dbf: 输入/输出错误


同时dd命令也无法读取该文件:

[oracle@oracledata01 fd]$ dd if=zf4.dbf bs=8192 count=1 skip=1|od -x|header -1
bash: header: command not found
dd: 正在打开"zf4.dbf": 没有那个文件或目录


此时在从数据库层面看到的信息类似如下:

Tue Apr 28 16:49:51 2020
Errors in file /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 signalled during: ALTER DATABASE OPEN...
Tue Apr 28 16:49:51 2020
Errors in file /oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_m000_9152.trc:
ORA-27037: 无法获得文件状态
Linux-x86_64 Error: 5: Input/output error
Additional information: 3
ORA-01122: 数据库文件 11 验证失败
ORA-01110: 数据文件 11: '/oracle_data/oracle/zf4.dbf'
ORA-01565: 标识文件 '/oracle_data/oracle/zf4.dbf' 时出错
ORA-27037: 无法获得文件状态
Linux-x86_64 Error: 5: Input/output error
Additional information: 3
Tue Apr 28 16:50:19 2020
USER (ospid: 9309): terminating the instance


从上述信息来看,数据库第11号文件无法读取。

在我们进行恢复之前,客户进行了多次尝试,还遭遇了一些数据库坏块,也遇到了不少ora-00600 错误:

Wed Apr 29 03:10:12 2020
Errors in file /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_双公示接收_邢_2019", line 1071
ORA-00942: 表或视图不存在
ORA-02063: 紧接着 line (起自 BM_SJJH)
alter database datafile 11 resize 20g
Completed: alter database datafile 11 resize 20g
Wed Apr 29 03:10:15 2020
Corrupt Block Found
CONT = 0, TSN = 1, TSNAME = SYSAUX
RFN = 3, BLK = 3, RDBA = 12582915
OBJN = 1, OBJD = -1, OBJECT = _NEXT_OBJECT, SUBOB
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值