在RAC环境中,密码文件必须位于ASM存储且类型为ASM,避免用orapwd在各节点单独生成。同步应通过asmcmdpwcopy或统一软链接到ASM文件实现,并设置remote_login_passwordfile=SHARED。修改SYS密码后需重建密码文件并分发至所有节点,否则导致登录失败。
在Oracle RAC环境中管理密码文件时,需要关注几个关键要点,否则可能引发登录问题。核心要求是确保密码文件位于ASM存储且类型为ASM,避免使用orapwd在各节点单独生成文件,改为通过asmcmd pwcopy或统一软链接到ASM文件进行同步,并将remote_login_passwordfile设置为SHARED。满足这些条件后,密码文件不同步导致的登录问题即可从根本上解决。
通过查询确认密码文件的共享状态。在Grid用户下执行srvctl config database -d ,重点关注输出中的password file字段。若显示本地路径(如/u01/app/oracle/product/19c/db_1/dbs/orapwcdb1),说明配置存在问题;若字段为空或报错,则集群未正确识别密码文件。进一步检查select * from v$passwordfile_info;,返回结果必须仅有一行,type列应为asm,file_name呈类似+data/cdb1/password/pwdcdb1.256.123456789的ASM路径。确认无误后,后续操作才有基础。
长期稳定更新的攒劲资源: >>>点此立即查看<<<

orapwd在各节点分别生成文件在19c RAC环境中,使用orapwd分别在各节点生成密码文件是常见错误。该命令生成的是本地独占式(EXCLUSIVE)二进制文件,内部绑定唯一SCN及其他结构信息。即使文件内容完全相同,RAC各节点也无法跨节点共享加载。若指定路径为$ORACLE_HOME/dbs/orapw$ORACLE_SID,该文件可能被集群忽略,或启动时被ASM托管文件覆盖。最终结果是在一个节点修改密码后,仅该节点生效,其余节点仍使用旧密码,导致sqlplus / as sysdba出现ORA-01017或ORA-12641等错误。
方式一(推荐):使用asmcmd pwcopy进行原子同步。在主节点执行ALTER USER sys IDENTIFIED BY newpass;(后续还需额外操作),然后运行asmcmd pwcopy +DATA/CDB1/PASSWORD/pwdcdb1.256.123456789 /tmp/pwdcdb1将文件复制至临时目录,通过scp传输至其他节点后再执行pwcopy /tmp/pwdcdb1 +DATA/CDB1/PASSWORD/pwdcdb1.256.123456789。注意必须使用pwcopy而非cp,否则文件元数据与内部校验可能损坏,导致同步失效。
方式二(最稳定):统一软链接到ASM文件。让所有节点的$ORACLE_HOME/dbs/orapw$ORACLE_SID指向同一ASM路径,例如运行ln -sf +DATA/CDB1/PASSWORD/pwdcdb1.256.123456789 $ORACLE_HOME/dbs/orapwcdb1。该软链接需由oracle用户创建,同时确保remote_login_passwordfile=SHARED已配置,通过srvctl modify database -d cdb1 -p "remote_login_passwordfile=SHARED"完成设置。
ALTER USER仅在某节点执行ALTER USER sys IDENTIFIED BY xxx只能更新数据字典记录,密码文件本身未被修改。RAC各节点间的密码文件不会自动同步,DG主备之间也不会复制。修改SYS密码后,应立即使用orapwd重建密码文件,加入参数如file='+DATA/ORCL/PASSWORD/pwdrac19c' format=12.2 force=y,然后通过pwcopy或软链接方式覆盖所有节点。对于RAC多节点或DG主备多实例,每个实例名对应的orapw必须严格匹配,遗漏任一会引发ORA-16191等同步错误。
需注意:密码文件时间戳更新不代表内容同步。即使完成文件复制,若未使用force=y重建或未执行pwcopy流程,文件内仍可能存储旧口令,应避免此类假设。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述