Bugün, ETL düğüm makinesi yeni bir veritabanı sunucusuna erişmek istediğinden, tnsnames.ora yapılandırması gerekir ve sonuç yapılandırıldıktan sonra, veritabanına bağlanırken hata bildirilir:
ORA-12547: TNS:lost contact
Başta tnsnames.ora yanlış yapılandırılmış sandım, ancak karşılaştırma ve doğrulamadan sonra bu olasılık elendi. Çünkü diğer ana bilgisayarlarda da aynı yapılandırmanın bu veritabanı sunucusuna bağlandığı doğrulanmıştır.
Sonra, "ORA-12547: TNS: iletişim kaybedildi" hatasına göre internette çok sayıda bilgi aradım, bazıları yazılım paketlerinin eksikliğini, bazıları ise veritabanı sunucusunda dosya izin ayarlarında bir sorun olduğunu söyledi, ancak bu seferki duruma uygun değildi.
Daha sonra loglara bakmaya karar verdim, veritabanının izleme günlüğünü kontrol listener.log ve içinde aşağıdaki hata mesajlarının bulunduğunu gördüm: 20-MAYS-2016 15:46:03 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=db01)(USER=grid))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=186647552)) * status * 0 192.168.24.1'den gelen bağlantı reddedildi 20-MAYS-2016 15:46:06 * 12546
TNS-12546: TNS:permission denied
TNS-12560: TNS:protocol adapter error TNS-00516: İzin reddedildi
referans aldı ve veritabanı sunucusunun sqlnet.ora yapılandırmasını kontrol etti; bunun veritabanı erişim IP kısıtlamasının belirlenmiş olması, yani sadece belirtilen IP'nin veritabanına erişebildiği için olduğunu buldu.
İki düğümlü bir RAC veritabanı olduğundan, sqlnet.ora'yı grid kullanıcısı altında değiştirmek, veritabanına erişmek için ETL düğümünün IP adresini IP beyaz listesine eklemektir. Modifikasyondan sonra dinlemeyi yeniden başlatın (lsnrctl yeniden yükleme), aksi takdirde yine bir hata bildirilecektir. |