ora-16191本质是sys远程认证失败,源于主备库密码文件字节级不一致或remote_login_passwordfile非exclusive;必须用orapwd重建并分发密码文件,严格匹配文件名、路径、权限、db_unique_name、ignorecase等参数,rac环境需覆盖所有节点并双重验证describe与md5sum。

ORA-16191本质是SYS远程认证失败
这不是网络不通、归档没开,也不是DG参数漏配——它等价于你在sqlplus里输错密码:ORA-01017。主库LGWR/ARCn进程尝试用SYS身份连接备库传输日志时被拒,直接报ORA-16191并断连。
密码文件必须字节级一致,不能只拷文件名
主库改了SYS密码后,ALTER USER SYS IDENTIFIED BY只更新数据字典,不触碰密码文件。必须用orapwd重建并分发:
-
FORCE=Y必须加,否则orapwd拒绝覆盖已有文件 -
FORMAT=12.2(12c+环境)是硬性要求,低于此值会导致备库无法识别SYSBACKUP等角色 -
DBUNIQUENAME必须显式指定(如备库DB_UNIQUE_NAME=stby),否则文件内嵌的DB_UNIQUE_NAME仍是旧值,RFS校验失败 -
IGNORECASE必须和原文件一致(通常为N;若主库sec_case_sensitive_logon=FALSE,则需设为Y) - 禁用
INPUT_FILE参数——它只复制哈希,不处理内部格式变更,结果无效
文件名、路径、权限、参数四者缺一不可
拷过去只是开始,漏一步照样报错:
- 文件名必须严格匹配备库实例名:
SELECT INSTANCE_NAME FROM V$INSTANCE;→ 文件名是orapw<instance_name></instance_name>(大小写敏感) - RAC备库每个节点都要单独部署:
scp orapwstby node2:$ORACLE_HOME/dbs/、scp orapwstby node3:$ORACLE_HOME/dbs/,漏一个节点,该节点MRP起不来 - ASM环境不能
scp:要用asmcmd pwcopy上传,否则元数据丢失 - 权限必须是
oracle:oinstall+640:chown oracle:oinstall $ORACLE_HOME/dbs/orapwstby && chmod 640 $ORACLE_HOME/dbs/orapwstby -
remote_login_passwordfile必须为EXCLUSIVE且持久化:ALTER SYSTEM SET remote_login_passwordfile=EXCLUSIVE SCOPE=SPFILE SID='*';(RAC必须加SID='*')
验证必须做两层:describe + md5sum
别信“拷过去了就完事”。必须双重验证:
- 在主备库分别执行:
orapwd describe file=$ORACLE_HOME/dbs/orapw<sid></sid>,比对输出中SYS行的SYSDBA列是否都为TRUE - 再跑:
md5sum $ORACLE_HOME/dbs/orapw<sid></sid>确认字节级完全一致 - 最常被忽略的是RAC节点间一致性——哪怕只有一个节点文件没同步,那个节点的LNS就永远卡在
SENDREQ











