Hoje, como a máquina de nó ETL quer acessar um novo servidor de banco de dados, ela precisa configurar o tnsnames.ora e, após a configuração do resultado, um erro é reportado ao se conectar ao banco de dados:
ORA-12547: TNS:lost contact
A princípio, achei que era o tnsnames.ora configurado errado, mas após comparação e verificação, essa possibilidade foi descartada. Porque a mesma configuração em outros hosts foi verificada para se conectar a esse servidor de banco de dados.
Em seguida, pesquisei muitas informações na Internet com base nesse erro "ORA-12547: TNS: lost contact", alguns disseram que havia falta de pacotes de software, e outros disseram que havia um problema com as configurações de permissão do arquivo no host do banco de dados, mas elas não estavam alinhadas com a situação encontrada desta vez.
Depois, decidi olhar os logs, verifiquei o listener.log de log de monitoramento do banco de dados e encontrei as seguintes mensagens de erro nele: 20-MAI-2016 15:46:03 * (CONNECT_DATA=(CID=(PROGRAMA=)(HOST=db01)(USUÁRIO=grade))(COMANDO=status)(ARGUMENTOS=64)(SERVICE=LISTENER)(VERSÃO=186647552)) * status * 0 Conexão recebida de 192.168.24.1 rejeitada 20-MAI-2016 15:46:06 * 12546
TNS-12546: TNS:permission denied
TNS-12560: TNS:protocol adapter error TNS-00516: Permissão negada
e verificou a configuração do servidor de banco de dados em sqlnet.ora, e descobriu que isso era porque a restrição de IP de acesso ao banco de dados estava definida, ou seja, apenas o IP especificado podia acessar o banco de dados.
Como é um banco de dados RAC de dois nós, modificar o sqlnet.ora sob o usuário da grade é adicionar o endereço IP do nó ETL à lista branca de IP para acessar o banco de dados. Após a modificação, reinicie a escuta (recarregamento lsnrctl), caso contrário, um erro ainda será reportado. |