Oracle 19.24 补丁升级后数据库打开异常案例分析

来源:这里教程网 时间:2026-03-03 21:35:57 作者:

1 、故障描述

某次某客户 Oracle 19c RAC环境, 补丁升级到 19.24 后,无法正常启动数据库 实例

2 、根因分析

a)  数据库启动异常

在使用 `spfile` 启动数据库时,数据库只能启动到 `NOMOUNT` 状态,无法继续打开。

A lert报错:ASMB进程报错, 尝试读取 ASM 磁盘时失败,导致无法完成正常启动。

b)  权限问题怀疑

一开始怀疑是 `$ORACLE_HOME/bin` 目录下的 o racle 执行文件权限出现问题。尽管文件权限确认正常,但为了排查潜在问题,手动调整了文件权限并恢复正常。

chmod 6751 oracle

  但几小时后,服务器重启,数据库再次无法启动,依旧只能启动到 `NOMOUNT` 状态。

c)  报错信息

在尝试将数据库启动到 `MOUNT` 状态时,出现了以下报错:  ORA - 01017: invalid username/password; logon denied

起初以为是权限问题再次出现,手动修改权限后依然无法启动。  

查找 MOS(My Oracle Support)文档后,发现 Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(`oracle`)和集群管理用户(`grid`)在某些情况下没有被正确加入到必要的组中,导致权限问题,从而影响数据库启动。

MOS 号:[2919585.1](https://support.oracle.com)  文档中指出,在打上 19.23 或以上版本的补丁后,Oracle 相关用户(`oracle` 和 `grid`)的组权限可能会被修改,导致无法正常启动数据库。  

3 、解决方案

经过分析后,发现确实是用户组权限问题导致的数据库启动失败。为了解决此问题,按照以下步骤进行了处理:

1)  添加用户到必要的组

确保 `oracle` 用户和 `grid` 用户均被正确添加到 `oinstall` 组中,这是 Oracle 数据库和 Grid 控制集群所需的最基本权限组。

修改前:  

修改后:

执行以下命令,将 `oracle` 和 `grid` 用户添加到 `oinstall` 组:    usermod - a - G oinstall grid    usermod - a - G oinstall oracle

2)  重启数据库

完成用户组权限修改后,重启数据库实例,确保新修改的权限生效。

3)  数据库成功启动

修改完权限并重启数据库后,数据库成功启动,并恢复到正常的 `OPEN` 状态。

相关推荐