Manapság, mivel az ETL csomópont gép új adatbázis-szerverhez szeretne hozzáférni, konfigurálnia kell a tnsnames.ora fájlt, és az eredmény konfigurálása után hiba jelenik meg az adatbázishoz való csatlakozáskor:
ORA-12547: TNS:lost contact
Eleinte azt hittem, hogy a tnsnames.ora rosszul van konfigurálva, de összehasonlítás és ellenőrzés után ez a lehetőség kizárt. Mert ugyanezt a konfigurációt más hosztokon is ellenőrizték, hogy csatlakozik ehhez az adatbázis-szerverhez.
Ezután rengeteg információt kerestem az interneten a "ORA-12547: TNS: lost contact" hiba alapján, néhányan azt mondták, hogy hiányoznak a szoftvercsomagok, mások szerint probléma van az adatbázis szerver fájljogosultsági beállításaival, de ezek nem egyeztek az ezúttal tapasztalt helyzettel.
Később úgy döntöttem, megnézem a naplókat, megnéztem az adatbázis monitorozási naplóját listener.log, és azt találtam, hogy a következő hibaüzenetek találhatók benne: 2016. MÁJUS 20 15:46:03 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=db01)(USER=grid))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=186647552)) * status * 0 Bejövő kapcsolat a 192.168.24.1-ből elutasítva 2016. MÁJUS 20 15:46:06 * 12546
TNS-12546: TNS:permission denied
TNS-12560: TNS:protocol adapter error TNS-00516: Engedély megtagadása
Hivatkozást tettünk, és ellenőrizte az adatbázis szerver sqlnet.ora konfigurációját, és megállapította, hogy azért van az oka, hogy az adatbázis-hozzáférési IP-korlátozás beállított, vagyis csak a megadott IP férhet hozzá az adatbázishoz.
Mivel ez egy kétcsomópontos RAC adatbázis, a sqlnet.ora módosítása a rács felhasználója alatt azt jelenti, hogy az ETL csomópont IP-címét hozzáadjuk az IP fehérlistához az adatbázishoz való hozzáféréshez. Módosítás után indítsd újra a hallgatást (lsnrctl újratöltés), különben továbbra is hiba jelenthető. |