Oracle ADG环境主库重启后报ORA-01017

2026年1月14日 作者 XiaofeiHuangfu

适用范围
Oracle Database 12c及更高版本,RAC+ADG

问题概述
ADG环境主库一个节点重启后,trace中报ORA-01017。主备环境集群和数据库状态正常,ADG同步状态正常。

问题原因
主库重启后连接备库时有3中连接协议,第一次尝试连接到备库的方式都会使用到密码文件方式。
解决方案
ADG环境正常的情况下这个报错信息可以忽略
分析过程
1、数据库日志和trace

...
Completed: ALTER DATABASE MOUNT
Thu Oct 23 16:23:11 2025
ARC0 started with pid=24, OS id=32747
Thu Oct 23 16:23:11 2025
ARC1 started with pid=25, OS id=32749
Thu Oct 23 16:23:11 2025
ARC2 started with pid=26, OS id=32751
Thu Oct 23 16:23:11 2025
ARC3 started with pid=28, OS id=32755
Thu Oct 23 16:23:12 2025
Completed: ALTER DATABASE OPEN
...

arc0进程的trace:

*** 2025-10-23 16:23:14.054
*** SESSION ID:(22.47037) 2025-10-23 16:23:14.054
*** CLIENT ID:() 2025-10-23 16:23:14.054
*** SERVICE NAME:(SYS$BACKGROUND) 2025-10-23 16:23:14.054
*** MODULE NAME:() 2025-10-23 16:23:14.054
*** CLIENT DRIVER:() 2025-10-23 16:23:14.054
*** ACTION NAME:() 2025-10-23 16:23:14.054
OCISessionBegin failed. Error -1
.. Detailed OCI error val is 1017 and errmsg is 'ORA-01017: invalid username/password; logon denied
'
*** 2025-10-23 16:23:14.152
OCISessionBegin failed. Error -1
.. Detailed OCI error val is 1017 and errmsg is 'ORA-01017: invalid username/password; logon denied

主库数据库节点2进行了重启,open的同时,trace中出现了2次ORA-01017。
2、检查密码文件

[oracle@pri dbs]$ md5sum orapwxfdb
90f199187064b1437c092a4a54a2fffb  orapwxfdb
[oracle@adg dbs]$ md5sum orapwxfdbdg
90f199187064b1437c092a4a54a2fffb  orapwxfdbdg

主备库执行md5校验,md5一致,密码文件正常。
3、验证主备环境sys用户连接

sqlplus sys/password@xfdb as  sysdba
sqlplus sys/password@xfdbdg as  sysdba

sys用户主备可以正常连接
4、WALLET检查

SQL> select WRL_TYPE,WRL_PARAMETER,status from V$ENCRYPTION_WALLET;
WRL_TYPE  WRL_PARAMETER                                                   STATUS
---------- ---------------------------------------------------------------------------------
FILE     <wallet path>/wallet           NOT_AVAILABLE


SQL> select * from V$WALLET;
no rows selected

主库没有配置WALLET

Oracle连接的安全协议有一线3种:

  1. Wallet file based on PKI certs
  2. Wallet file
  3. Password File
    如果没有配置Wallet,那么1和2使用ORA-1017会失败,而3会成功。从归档进程的跟踪文件中看到ORA-1017发生了2次。当成功建立连接时,该信息将存储到SGA中。之后,任何过程需要连接到备库的将只使用一个安全协议,并且不会再报错。

-the end-