Problema
Neste cenário, todas as tentativas de realizar login de forma remota utilizando o privilégio SYSDBA falhavam com a mensagem de erro “ORA-01017: invalid username/password; logon denied”, mesmo garantindo que a senha provida no SQLPLUS estava correta, assim como a senha no PWFILE estava correta (recriei o arquivo para testar).
No entanto, se a instância fosse iniciada com o arquivo de senhas abaixo do $ORACLE_HOME/dbs, a autenticação passava com sucesso.
O pwfile foi criado dessa forma:
orapwd file='+DATAC1/HML2EX_GRU1VD/orapwhml2ex' entries=10 dbuniquename='HML2EX_gru1vd' format=12
E o profile do Database no Clusterware:
srvctl config database -d HML2EX_gru1vd Database unique name: HML2EX_gru1vd Database name: HML2EX Oracle home: /u02/app/oracle/product/12.1.0/dbhome_2 Oracle user: oracle Spfile: +DATAC1/HML2EX_GRU1VD/spfileHML2EX.ora Password file: +DATAC1/HML2EX_GRU1VD/orapwhml2ex Domain: Start options: open Stop options: immediate Database role: PRIMARY Management policy: AUTOMATIC Server pools: Disk Groups: DATAC1 Mount point paths: Services: HMLEX Type: RAC Start concurrency: Stop concurrency: OSDBA group: dba OSOPER group: racoper Database instances: HML2EX1,HML2EX2 Configured nodes: node01,node02 Database is administrator managed
Note que o atributo “Password file” está apontando para o caminho correto:
Password file: +DATAC1/HML2EX_GRU1VD/orapwhml2ex
Não havia pwfile para instâncias abaixo do $ORACLE_HOME/dbs.
No teste via EZCONNECT, a conexão falha com erro autenticação:
sqlplus sys/PwExemplo@//node02:1521/HMLEX as sysdba SQL*Plus: Release 12.1.0.2.0 Production on Wed Jun 2 09:05:09 2021 Copyright (c) 1982, 2014, Oracle. All rights reserved. ERROR: ORA-01017: invalid username/password; logon denied
Causa
O parâmetro db_unique_name no SPFILE com valor diferente do “Database unique name” no profile do Clusterware:
SQL> show parameter db_unique_name;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_unique_name string HML2EX_gru
O valor do parâmetro foi cortado acidentalmente em alguma manutenção do SPFILE.
Solução
1) Alterar o parâmetro db_unique_name:
SQL> alter system set db_unique_name='HML2EX_gru1vd' scope=spfile;
2) Reiniciar instâncias
srvctl stop instance -d HML2EX_gru1vd -i HML2EX1 srvctl start instance -d HML2EX_gru1vd -i HML2EX1 srvctl stop instance -d HML2EX_gru1vd -i HML2EX2 srvctl start instance -d HML2EX_gru1vd -i HML2EX2
Teste com sucesso:
sqlplus sys/PwExemplo@//node02:1521/HMLEX as sysdba SQL*Plus: Release 12.1.0.2.0 Production on Wed Jun 2 09:13:11 2021 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to: Oracle Database 12c EE Extreme Perf Release 12.1.0.2.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Advanced Analytics and Real Application Testing options