前言

早上7点得知昨晚在版本上线后,手动进行了ntp时间同步。 但是在同步前,开启了防火墙导致rac集群ntp时间无法进行同步。 然后又在一顿不明所以的操作下,导致数据库实例无法进行重启

导致引发了两个错误:分别是ORA-01565,ORA-17503和ORA-15077

在重启时候报错如下

SQL> startup
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+ASM1/rsdb/spfilersdb.ora'
ORA-17503: ksfdopn:10 Failed to open file +ASM1/rsdb/spfilersdb.ora
ORA-15077: could not locate ASM instance serving a required diskgroup

解决

先看官方给出Oracle Database Error Messages

ORA-01565: error in identifying file 'string'
Cause: An error occurred while trying to identify a file.
Action: Check the error stack for detailed information.

ORA-17503: ksfdopn:string Failed to open file string
Cause: file open failed due to either insufficient OS permission or the name of file exceeds maximum file name length.
Action: check additional error messages

ORA-01565和ORA-17503都是找不到spfilersdb.ora
难道是ASM块坏掉了?
天灾人祸啊。。。这不是坑人吗?
第一时间去看alert日志,各种谷歌协调
瞎折腾后,冷静下来再看看报错

当时只关注到了

ORA-17503:ksfdopn:10 Failed to open file +ASM1/rsdb/spfilersdb.ora

注意力很容易被明显、熟悉的吸引,往往就忽略了真实的问题所在

ORA-15077: could not locate ASM instance serving a required diskgroup

字面理解找不到ASM, 看下官方文档给出的信息

ORA-15077: could not locate ASM instance serving a required diskgroup
Cause: The instance failed to perform the specified operation because it could not locate a required ASM instance.
Action: If you want to start a database instance, start an ASM instance and mount the required diskgroup. If you want to start an ASM instance, relink the ORACLE binary with ASM_ON or explicitly set INSTANCE_TYPE initialization parameter to ASM

给出的解决方法是启动ASM,所以初步判断可能是ASM没有启动。
先去查看ASM状态

su - grid
export ORACLE_SID=+ASM1
asmcmd
lsdg

原来是没有启动,不是数据块坏掉了啊

本来很简单的一个问题却大费周折。
说明解决问题的时候须冷静地分析和判断,否则很容易被一些其他的信息干扰, 从而无法在根源上解决而是兜兜转转。


富强 民主 文明 和谐 自由 平等 公正 法治 爱国 敬业 诚信 友善