Šiandien, kadangi ETL mazgo mašina nori pasiekti naują duomenų bazės serverį, ji turi sukonfigūruoti tnsnames.ora, o sukonfigūravus rezultatą, prisijungiant prie duomenų bazės pranešama apie klaidą:
ORA-12547: TNS:lost contact
Iš pradžių maniau, kad tai neteisingai sukonfigūruota tnsnames.ora, tačiau palyginus ir patikrinus ši galimybė buvo atmesta. Nes ta pati konfigūracija kituose pagrindiniuose kompiuteriuose buvo patikrinta jungiantis prie šio duomenų bazės serverio.
Tada internete ieškojau daug informacijos pagal šią klaidą "ORA-12547: TNS: prarastas kontaktas", kai kurie sakė, kad trūksta programinės įrangos paketų, o kiti sakė, kad kilo problemų dėl failų leidimų nustatymų duomenų bazės pagrindiniame kompiuteryje, tačiau jie neatitiko situacijos, su kuria susidūrė šį kartą.
Vėliau nusprendžiau pažvelgti į žurnalus, patikrinau duomenų bazės stebėjimo žurnalo listener.log ir pastebėjau, kad jame yra šie klaidų pranešimai: 20-MAY-2016 15:46:03 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=db01)(USER=grid))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=186647552)) * status * 0 Gaunamas ryšys iš 192.168.24.1 atmestas 2016-GEGUŽĖ 15:46:06 * 12546
TNS-12546: TNS:permission denied
TNS-12560: TNS:protocol adapter error TNS-00516: leidimas atmestas
ir patikrino duomenų bazės serverio sqlnet.ora konfigūraciją ir nustatė, kad taip buvo dėl to, kad buvo nustatytas duomenų bazės prieigos IP apribojimas, tai yra, tik nurodytas IP galėjo pasiekti duomenų bazę.
Kadangi tai yra dviejų mazgų RAC duomenų bazė, sqlnet.ora modifikavimas tinklelio vartotojuje reiškia, kad ETL mazgo IP adresas būtų įtrauktas į IP baltąjį sąrašą, kad būtų galima pasiekti duomenų bazę. Po pakeitimo iš naujo paleiskite klausymąsi (lsnrctl perkrauti), kitaip vis tiek bus pranešta apie klaidą. |