不能用 orapwd 重置 grid 密码,因其会覆盖 asm 密码文件导致 asm 实例启动失败、ocr/voting disk 不可访问及节点间密码文件不一致;正确方式是用 asmcmd orapwusr --modify 修改 sysasm 口令。

可以直接重置 Grid 用户密码,但必须避开 orapwd 命令直接修改密码文件的方式——那会破坏 ASM 实例认证,导致集群无法启动。
为什么不能用 orapwd 重置 Grid 密码
在 Oracle 11.2.0.4 RAC 中,orapwd 工具不支持动态更新 ASM 密码文件(orapw+ASM),强行覆盖会导致:
-
ORA-15032、ORA-15017等 ASM 实例启动失败错误 - OCR 和 voting disk 无法访问,整个集群资源 offline
- 节点间密码文件 MD5 不一致,
crsctl check cluster报告异常
Grid 用户的密码实际由 ASM 实例的 SYSASM 权限控制,不是操作系统用户密码本身。
正确方式:用 asmcmd orapwusr 修改 ASM 密码
这是 Oracle 官方唯一支持的在线修改方式,只更新 ASM 密码文件内容,不破坏结构或权限位:
- 以
grid用户登录任意节点,执行:asmcmd ASMCMD> orapwusr --modify --password sys
- 输入新密码两次(注意:这里改的是
SYS在 ASM 实例中的密码,不是 OS 的grid账户密码) - 该操作自动同步到所有节点的
orapw+ASM文件(时间戳和 MD5 会变) - 无需重启 CRS、无需停库,
sqlplus / as sysasm可立即验证
验证是否生效且不影响集群
改完后立刻检查三项关键状态:
- 确认所有节点密码文件一致性:
ls -l $ORACLE_HOME/dbs/orapw+ASM—— 时间戳应相同 - 连接 ASM 实例:
sqlplus sys/<new_password>@+ASM as sysasm</new_password>—— 必须成功 - 检查集群健康:
crsctl check cluster -all和crsctl stat res -t—— 所有资源状态为ONLINE
如果某节点 orapw+ASM 未更新,手动从主节点 scp 过去并保持权限 640、属主 grid:oinstall。
容易被忽略的关键点
很多人以为改了 grid 操作系统密码就等于改了 ASM 认证密码,其实完全无关;真正起作用的是 orapw+ASM 文件里存储的 SYS(即 SYSASM)口令。而这个文件只能通过 asmcmd orapwusr 更新,其他任何方式都可能让 ASM 实例拒绝认证——哪怕集群看起来还在跑,voting disk 读写一旦出错,下次 reboot 就彻底起不来。











