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.
Operasyonel Doğrulama & Güvenilirlik Standardı
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:
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ık | Kök Neden | Açı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). |
| %30 | tnsnames.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. |
| %20 | Domain 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)
# 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
- 1Kusursuz tnsnames.ora Şablonu:
PROD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.5)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = PROD_SERVICE)
)
)- 1EZCONNECT Standardı: Modern konteyner mimarilerinde karmaşık
tnsnames.oradosyaları yerine doğrudan bağlantı dizesi kullanılmalıdır://host:1521/service_name.
▸Doğrulama
tnsping PROD
# Çıktı: OK (10 msec) dönmelidirDiğer Veritabanı Hata Teşhisleri
Kriz anında başvurabileceğiniz diğer doğrulanmış hata rehberleri.
Oracle ORA-01653: Tablespace Genişletme ve Çözüm Adımları
ORA-01653 / 01654 / 01652 ayrımı, tablespace doluluk sorgusu, datafile autoextend ve MAXSIZE ile güvenli büyütme.
Oracle ORA-00001: unique constraint violated Teşhisi ve Çözümü
Manuel ID girişleri veya sequence önbellek kaybı sonucu sequence'in mevcut tablodaki maksimum ID'nin gerisinde kalması; sequence INCREMENT BY adımları ve MERGE deseni.
Oracle ORA-00060: deadlock detected while waiting for resource Teşhisi
Ters sırada çalışan DML işlemleri veya yabancı anahtar kolonlarında indeks eksikliğinden kaynaklanan ORA-00060 kilitlenmeleri; trace dosyası okuma ve SELECT FOR UPDATE NOWAIT çözümü.