I dag, fordi ETL-nodemaskinen ønsker tilgang til en ny databaseserver, må den konfigurere tnsnames.ora, og etter at resultatet er konfigurert, rapporteres en feil når man kobler til databasen:
ORA-12547: TNS:lost contact
Først trodde jeg det var tnsnames.ora som var feilkonfigurert, men etter sammenligning og verifisering ble denne muligheten utelukket. Fordi samme konfigurasjon på andre verter er verifisert for å koble til denne databaseserveren.
Deretter søkte jeg mye informasjon på Internett basert på denne feilmeldingen "ORA-12547: TNS: lost contact", noen sa at det manglet programvarepakker, og noen sa at det var et problem med filtillatelsesinnstillingene på databaseverten, men de stemte ikke overens med situasjonen denne gangen.
Senere bestemte jeg meg for å se på loggene, sjekket overvåkingsloggen listener.log databasen, og fant følgende feilmeldinger i den: 20. MAI 2016 15:46:03 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=db01)(USER=grid))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSJON=186647552)) * status * 0 Innkommende tilkobling fra 192.168.24.1 avvist 20. MAI 2016 15:46:06 * 12546
TNS-12546: TNS:permission denied
TNS-12560: TNS:protocol adapter error TNS-00516: Tillatelse nektet
referanse, og sjekket sqlnet.ora-konfigurasjonen til databaseserveren, og fant ut at det skyldtes at databaseadgangs-IP-begrensningen var satt, det vil si at kun den angitte IP-en kunne få tilgang til databasen.
Siden det er en to-node RAC-database, betyr modifisering av sqlnet.ora under grid-brukeren å legge til IP-adressen til ETL-noden i IP-hvitelisten for å få tilgang til databasen. Etter modifikasjon, start lytten på nytt (lsnrctl reload), ellers vil en feil fortsatt bli rapportert. |