Fehlersammlung
TNS-03505: Name konnte nicht aufgelöst werden
ORA-12154: TNS: angegebener Connect-Identifier konnte nicht aufgelöst werden
Beschreibung:
Beide Meldungen treten auf, wenn die tnsnames.ora nicht gelesen werden kann oder ein Eintrag fehlerhaft ist.
Verbindungstest erfolgreich:
Windows Powershell
PS C:\> Test-NetConnection db123.foo.de -port 1521
ComputerName : db123.foo.de
RemoteAddress : 10.21.39.40
RemotePort : 1521
InterfaceAlias : Ethernet0
SourceAddress : 10.21.18.22
TcpTestSucceeded : True
Linux
telnet db123.foo.de 1521
Trying 10.21.39.40...
Connected to db123.foo.de.
Escape character is '^]'.
Per sqlplus und Angabe des Schemas funktioniert die Anmeldung:
sqlplus xxxxx/xxxxxx@'(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db123.foo.de)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=KVASYP)))'
Ohne Schema nicht, obwohl in der tnsname.ora der Eintrag für KVASYP hinterlegt war.
sqlplus xxxxx/xxxxxx@KVASYP
Lösung:
In der sqlnet.ora wird durch den Eintrag NAMES.DEFAULT_DOMAIN = world definiert, dass in der tnsnames.ora
die Schemas mit *.world enden müssen, was bei KVASYP nicht der Fall war.
sqlnet.ora
SQLNET.EXPIRE_TIME = 0NAMES.DEFAULT_DOMAIN = worldNAME.DEFAULT_ZONE = worldSQLNET.CRYPTO_SEED = "123456789"NAMES.DIRECTORY_PATH = (TNSNAMES) |
Die Domain muss hinter dem Schema-Eintrag erfolgen.
tnsname.ora
...
KVASYP.world =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = db123.foo.de)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = KVASYP))
)
...