Oracle RAC密码文件不同步必须用srvctl和v$passwordfile_info确认ASM路径及TYPE=ASM,禁用orapwd,仅允许asmcmd pwcopy原子同步或统一软链接至ASM文件,并确保remote_login_passwordfile=SHARED。

Oracle RAC密码文件不同步不是“改完密码再重启”就能解决的问题,它会导致节点间 sqlplus / as sysdba 行为不一致、随机报 ORA-01017 或 ORA-12641,根源在于各节点加载的不是同一物理文件,或文件元数据已损坏。
确认密码文件是否被集群真正识别为ASM共享文件
别靠猜测或看本地路径,必须用官方命令验证:
- 在
grid用户下执行:srvctl config database -d <db_unique_name>,检查输出中Password file:行——必须是类似+DATA/CDB1/PASSWORD/pwdcdb1.256.123456789的 ASM 路径;若显示本地路径(如/u01/app/oracle/dbs/orapwcdb1)或为空,说明集群根本没加载该文件 - 登录任意节点 SQL*Plus,查:
SELECT * FROM v$passwordfile_info;——必须返回且仅返回一行,TYPE列值必须为ASM;若无结果或TYPE = FILE,说明实例启动时跳过了 ASM 密码文件 - 用
asmcmd进入对应磁盘组路径(如asmcmd ls +DATA/CDB1/PASSWORD/),确认文件存在且大小在 1.5–2KB 左右
检查各节点 orapw$ORACLE_SID 是否为软链接而非真实文件
RAC 节点不能各自维护独立的二进制密码文件——orapwd 生成的文件含节点绑定元数据,强行复制会破坏校验,导致静默认证失败。
- 在每个节点上运行:
ls -l $ORACLE_HOME/dbs/orapw*,确认它是符号链接(lrwxrwxrwx),而非普通文件(-rw-r-----) - 正确链接示例:
ln -sf +DATA/CDB1/PASSWORD/pwdcdb1.256.123456789 $ORACLE_HOME/dbs/orapwcdb1,链接必须由oracle用户创建 - 若发现真实文件,立刻删除并重建软链接;否则改密后只在当前节点生效,其他节点仍用旧哈希校验
- 同时确认:
srvctl modify database -d cdb1 -p "remote_login_passwordfile=SHARED"已执行,且参数在 SPFILE 中生效
同步 SYS 密码时必须用 asmcmd pwcopy,不是 cp 或 orapwd
ALTER USER sys IDENTIFIED BY xxx 只更新数据字典,不写入密码文件;RAC 各节点不会自动同步,DG 主备更不复制。手动改密后若不显式同步,其他节点仍用旧凭据校验。
- 先在任一节点执行:
ALTER USER sys IDENTIFIED BY newpass; - 立即用
asmcmd pwcopy原子同步:例如pwcopy +DATA/CDB1/PASSWORD/pwdcdb1.256.123456789 +DATA/CDB1/PASSWORD/pwdcdb1_new,再反向推送到目标路径 - 绝对不要用
scp或cp复制 ASM 文件——pwcopy保留内部签名与校验和,普通拷贝会损坏文件一致性 -
orapwd在 19c RAC 中禁用:它生成的是EXCLUSIVE本地文件,RAC 要求所有实例加载**同一物理 ASM 文件**,orapwd输出路径若指定本地$ORACLE_HOME/dbs/orapw$ORACLE_SID,会被集群忽略或启动时覆盖
DG 环境下主备密码文件必须单独维护且内容一致
DG 不复制密码文件,主备库是两套独立实例,哪怕主库改了密码,备库不会感知。常见误判是连错角色(比如连到只读备库却用主库账号),但更深层问题是备库本地密码文件未同步。
- 主库改密后,必须在备库也执行一次
asmcmd pwcopy或重建软链接,确保备库$ORACLE_HOME/dbs/orapw$ORACLE_SID指向内容一致的 ASM 文件 - 备库
remote_login_passwordfile必须设为EXCLUSIVE(非SHARED),否则无法写入新口令;验证方式:SHOW PARAMETER remote_login_passwordfile - RAC 备库多节点?每个节点的
$ORACLE_HOME/dbs/下都要有指向同一 ASM 文件的软链接,缺一不可 - 最容易被忽略的是:文件时间戳旧 ≠ 内容旧;哪怕文件是上周拷的,只要没走
pwcopy或重建链接,就仍是旧哈希


















