导读:某客户单位数据库出现异常,大致现象是:数据库状态是open的,但是其中一个数据文件无法访问,本文分享排查原因与解决问题的整个过程。
通过ls 查看文件都报错,如下所示:
[oracle@oracledata01 oracle]$ lsls: 无法访问zf4.dbf: 输入/输出错误
同时dd命令也无法读取该文件:
[oracle@oracledata01 fd]$ dd if=zf4.dbf bs=8192 count=1 skip=1|od -x|header -1bash: header: command not founddd: 正在打开"zf4.dbf": 没有那个文件或目录
此时在从数据库层面看到的信息类似如下:
Tue Apr 28 16:49:51 2020Errors 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 2020Errors in file /oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_m000_9152.trc:ORA-27037: 无法获得文件状态Linux-x86_64 Error: 5: Input/output errorAdditional information: 3ORA-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 errorAdditional information: 3Tue Apr 28 16:50:19 2020USER (ospid: 9309): terminating the instance
从上述信息来看,数据库第11号文件无法读取。
在我们进行恢复之前,客户进行了多次尝试,还遭遇了一些数据库坏块,也遇到了不少ora-00600 错误: