Dnes, pretože ETL uzol chce pristupovať k novému databázovému serveru, musí nakonfigurovať tnsnames.ora a po nastavení výsledku sa pri pripojení k databáze hlási chyba:
ORA-12547: TNS:lost contact
Najprv som si myslel, že je to nesprávne nastavené tnsnames.ora, ale po porovnaní a overení sa táto možnosť vylúčila. Pretože rovnaká konfigurácia na iných hostiteľoch bola overená na pripojenie k tomuto databázovému serveru.
Ďalej som hľadal veľa informácií na internete podľa tejto chyby "ORA-12547: TNS: stratený kontakt", niektorí tvrdili, že chýbajú softvérové balíky, iní tvrdili, že je problém s nastaveniami oprávnení súborov na databázovom hostiteľovi, ale neboli v súlade so situáciou, s ktorou sa stretol tentoraz.
Neskôr som sa rozhodol pozrieť do logov, skontroloval monitorovací záznam listener.log databázy a zistil som, že sa v ňom nachádzajú nasledujúce chybové hlásenia: 20-MÁJ-2016 15:46:03 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=db01)(USER=grid))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=186647552)) * stav * 0 Prichádzajúce spojenie z 192.168.24.1 zamietnuté 20-MÁJ-2016 15:46:06 * 12546
TNS-12546: TNS:permission denied
TNS-12560: TNS:protocol adapter error TNS-00516: Povolenie zamietnuté
a skontroloval konfiguráciu databázového servera v sqlnet.ora a zistil som, že je to preto, že obmedzenie prístupu k databáze bolo nastavené, teda iba špecifikovaná IP mohla pristupovať k databáze.
Keďže ide o dvojuzolovú RAC databázu, úprava sqlnet.ora v grid používateľovi znamená pridať IP adresu ETL uzla do IP whitelistu pre prístup k databáze. Po úprave reštartujte počúvanie (lsnrctl reload), inak sa chyba stále hlási. |