dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Home/Hata Teşhis Kütüphanesi/oracle-ora-12154-tns-could-not-resolve-connect-identifier
Oracle
Oracle 19c - 23aiAğ & TNS
4 dk okuma
ORA-12154: TNS:could not resolve the connect identifier specified

Oracle TNS İsim Çözümleme Hatası: tnsnames.ora Sözdizimi, TNS_ADMIN Ortam Değişkeni ve EZCONNECT Yöntemi

tnsnames.ora dosyasındaki parantez ve alias yazım hataları, TNS_ADMIN değişkeninin yanlış işaret etmesi; tnsping doğrulaması ve EZCONNECT doğrudan bağlantı deseni.

İnceleyen:Kıdemli Veritabanı Mimarı & SRE (dataiotech Labs)
Test Edilen Sürümler: Oracle Database 19c / 21c / 23ai

Operasyonel Doğrulama & Güvenilirlik Standardı

Son Teknik İnceleme: 2 Kasım 2026
Test Edilen SürümlerOracle 19c Client, 23ai Instant Client
Gerekli Yetkiİşletim sistemi ortam değişkenleri ve tnsnames.ora okuma
Risk Seviyesi
LowTNS_ADMIN ortam değişkeninin eksik olması tüm istemci bağlantılarını durdurur
Beklenen Çıktıtnsping ALIAS ile OK (0 msec) yanıtı alınması
Geri Dönüş (Rollback) Planı:tnsnames.ora dosyasındaki sözdizimi hatasını düzeltme
Oracle Docs: Troubleshooting Oracle Net Services
İlk 60 Saniye Teşhis Protokolü:

Hata mesajı semptomdur, kök neden değildir. Sunucuyu yeniden başlatmadan veya rastgele ayar değiştirmeden önce aşağıdaki "Nedeni ayırt eden tek sorgu"yu çalıştırarak gerçek senaryoyu netleştirin.

▸Belirti

İstemci veya uygulama sunucusu bağlanırken anında düşer:

plaintext
ORA-12154: TNS:could not resolve the connect identifier specified

▸Sahada Ne Görürsün?

Uygulama sqlplus user/pass@PROD çalıştığında veya Java/Node.js bağlanırken PROD takma adını (TNS alias) çözemez.


▸Kök Neden Matrisi

OlasılıkKök NedenAçıklama
%50`TNS_ADMIN` Ortam Değişkeni Tanımlı Değilİstemci tnsnames.ora dosyasını nerede arayacağını bilemez (varsayılan $ORACLE_HOME/network/admin boştur).
%30tnsnames.ora Dosyasında Parantez/Format HatasıParantez açılıp kapanmasında eksiklik vardır; Oracle Net dosyanın geri kalanını okumayı bırakır.
%20Domain Soneki (NAMES.DEFAULT_DOMAIN) Uyuşmazlığısqlnet.ora içinde domain varken alias çıplak bırakılmıştır (PROD vs PROD.WORLD).

▸ACİL RUNBOOK (0-5dk)

bash
# 1. Ortam değişkenini ve dosya konumunu kontrol et echo $TNS_ADMIN ls -l $TNS_ADMIN/tnsnames.ora # 2. tnsping ile alias'ı test et tnsping PROD # 3. ACİL BYPASS: tnsnames.ora ile uğraşmadan EZCONNECT ile doğrudan bağlan! sqlplus app_user/Sifre123@//10.0.0.5:1521/PROD_SERVICE

▸KALICI BLUEPRINT

  1. 1Kusursuz tnsnames.ora Şablonu:
plaintext
PROD = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.5)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = PROD_SERVICE) ) )
  1. 1EZCONNECT Standardı: Modern konteyner mimarilerinde karmaşık tnsnames.ora dosyaları yerine doğrudan bağlantı dizesi kullanılmalıdır: //host:1521/service_name.

▸Doğrulama

bash
tnsping PROD # Çıktı: OK (10 msec) dönmelidir

Diğer Veritabanı Hata Teşhisleri

Kriz anında başvurabileceğiniz diğer doğrulanmış hata rehberleri.

Tüm Hatalar (82)