Saat ini, karena mesin simpul ETL ingin mengakses server database baru, ia perlu mengonfigurasi tnsnames.ora, dan setelah hasilnya dikonfigurasi, kesalahan dilaporkan saat menyambungkan ke database:
ORA-12547: TNS:lost contact
Awalnya, saya pikir itu adalah tnsnames.ora yang salah dikonfigurasi, tetapi setelah perbandingan dan verifikasi, kemungkinan ini dikesampingkan. Karena konfigurasi yang sama pada host lain telah diverifikasi untuk terhubung ke server database ini.
Selanjutnya, saya mencari banyak informasi di Internet sesuai dengan kesalahan ini "ORA-12547: TNS: kehilangan kontak", ada yang mengatakan bahwa ada kekurangan paket perangkat lunak, dan ada yang mengatakan bahwa ada masalah dengan pengaturan izin file pada host database, tetapi tidak sejalan dengan situasi yang dihadapi kali ini.
Kemudian, saya memutuskan untuk melihat log, memeriksa listener.log log pemantauan database, dan menemukan bahwa ada pesan kesalahan berikut di dalamnya: 20-MEI-2016 15:46:03 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=db01)(USER=grid))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=186647552)) * status * 0 Koneksi masuk dari 192.168.24.1 ditolak 20-MAY-2016 15:46:06 * 12546
TNS-12546: TNS:permission denied
TNS-12560: TNS:protocol adapter error TNS-00516: Izin ditolak
referensi, dan memeriksa konfigurasi sqlnet.ora server database, dan menemukan bahwa itu karena pembatasan IP akses database ditetapkan, yaitu, hanya IP yang ditentukan yang dapat mengakses database.
Karena ini adalah database RAC dua node, memodifikasi sqlnet.ora di bawah pengguna grid adalah menambahkan alamat IP node ETL ke daftar putih IP untuk mengakses database. Setelah modifikasi, mulai ulang mendengarkan (muat ulang lsnrctl), jika tidak, kesalahan akan tetap dilaporkan. |