I dag, fordi ETL-nodemaskinen ønsker adgang til en ny databaseserver, skal den konfigurere tnsnames.ora, og efter at resultatet er konfigureret, rapporteres en fejl ved forbindelse til databasen:
ORA-12547: TNS:lost contact
Først troede jeg, det var tnsnames.ora, der var forkert konfigureret, men efter sammenligning og verifikation blev denne mulighed udelukket. Fordi den samme konfiguration på andre værter er blevet bekræftet for at kunne forbinde til denne databaseserver.
Dernæst søgte jeg meget information på internettet med denne fejlmeddelelse "ORA-12547: TNS: lost contact", nogle sagde, at der manglede softwarepakker, og andre sagde, at der var et problem med filtilladelsesindstillingerne på databaseværten, men de var ikke i tråd med situationen, vi stødte på denne gang.
Senere besluttede jeg at kigge på loggene, tjekkede overvågningsloggen listener.log databasen og fandt følgende fejlmeddelelser i den: 20-MAJ-2016 15:46:03 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=db01)(USER=grid))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=186647552)) * status * 0 Indkommende forbindelse fra 192.168.24.1 afvist 20-MAJ-2016 15:46:06 * 12546
TNS-12546: TNS:permission denied
TNS-12560: TNS:protocol adapter error TNS-00516: Tilladelse nægtet
reference, og kontrollerede sqlnet.ora-konfigurationen for databaseserveren, og fandt ud af, at det skyldtes, at databaseadgangs-IP-begrænsningen var sat, altså kun den specificerede IP kunne få adgang til databasen.
Da det er en to-node RAC-database, er ændring af sqlnet.ora under grid-brugeren at tilføje IP-adressen på ETL-noden til IP-whitelisten for at få adgang til databasen. Efter modifikation genstart lytningen (lsnrctl genindlæsning), ellers vil der stadig blive rapporteret en fejl. |