Danes, ker ETL vozlišče želi dostopati do novega strežnika podatkovne baze, mora konfigurirati tnsnames.ora, in po konfiguraciji rezultata se ob povezavi z bazo podatkov prijavi napaka:
ORA-12547: TNS:lost contact
Sprva sem mislil, da gre za napačno konfiguracijo tnsnames.ora, a po primerjavi in preverjanju je bila ta možnost izključena. Ker je bila enaka konfiguracija preverjena tudi na drugih strežnikih, da se povežejo s tem strežnikom podatkovne baze.
Nato sem na internetu iskal veliko informacij glede na to napako "ORA-12547: TNS: izgubil stik", nekateri so rekli, da primanjkuje programskih paketov, drugi pa, da je težava z nastavitvami dovoljenj za datoteke na gostitelju baze podatkov, vendar niso ustrezale situaciji, s katero smo se srečali tokrat.
Kasneje sem se odločil pregledati dnevnike, preveril dnevnik spremljanja listener.log baze podatkov in ugotovil, da so v njem naslednja sporočila o napakah: 20-MAJ-2016 15:46:03 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=db01)(USER=grid))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=186647552)) * status * 0 Vhodna povezava iz 192.168.24.1 zavrnjena 20. MAJ 2016 15:46:06 * 12546
TNS-12546: TNS:permission denied
TNS-12560: TNS:protocol adapter error TNS-00516: Dovoljenje zavrnjeno
in preveril konfiguracijo sqlnet.ora strežnika baze podatkov ter ugotovil, da je to zato, ker je bila nastavljena omejitev dostopa do IP naslova baze podatkov, torej da je do baze dostopal le določen IP.
Ker gre za dvovozliško RAC bazo podatkov, je spreminjanje sqlnet.ora pod uporabnikom grida dodajanje IP naslova ETL vozlišča na IP-seznam za dostop do baze podatkov. Po spremembi ponovno zaženite poslušanje (lsnrctl ponovno naložite), sicer bo napaka še vedno prijavljena. |