Idag, eftersom ETL-nodmaskinen vill komma åt en ny databasserver, behöver den konfigurera tnsnames.ora, och efter att resultatet konfigurerats rapporteras ett fel vid anslutning till databasen:
ORA-12547: TNS:lost contact
Först trodde jag att det var tnsnames.ora som var felkonfigurerad, men efter jämförelse och verifiering uteslöts denna möjlighet. Eftersom samma konfiguration på andra värdar har verifierats för att ansluta till denna databasserver.
Därefter sökte jag mycket information på internet enligt felet "ORA-12547: TNS: lost contact", vissa sa att det saknades mjukvarupaket och andra att det fanns problem med filbehörighetsinställningarna på databasvärden, men de stämde inte överens med situationen den här gången.
Senare bestämde jag mig för att titta på loggarna, kollade övervakningsloggen listener.log databasen och upptäckte att det fanns följande felmeddelanden: 20 MAJ 2016 15:46:03 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=db01)(ANVÄNDAR=rutnät))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LYSSNARE)(VERSION=186647552)) * status * 0 Inkommande anslutning från 192.168.24.1 avvisad 20 MAJ 2016 15:46:06 * 12546
TNS-12546: TNS:permission denied
TNS-12560: TNS:protocol adapter error TNS-00516: Tillstånd nekats
referera, och kontrollerade sqlnet.ora-konfigurationen för databasservern, och fann att det berodde på att databasåtkomst-IP-begränsningen var satt, det vill säga att endast den angivna IP-adressen kunde komma åt databasen.
Eftersom det är en tvånods RAC-databas, innebär modifieringen av sqlnet.ora under grid-användaren att lägga till IP-adressen till ETL-noden i IP-vitlistan för att få tillgång till databasen. Efter modifiering, starta om lyssningen (lsnrctl reload), annars rapporteras ett fel fortfarande. |