Saya ingin terhubung ke database oracle yang terletak di host lain menggunakan sqlplus. Halaman ini menyarankan untuk menambahkan item pada nama saya untuk bergabung ke database itu
local_SID =
(DESCRIPTION =
(ADDRESS = (PROTOCOL= TCP)(Host= hostname.network)(Port= 1521))
(CONNECT_DATA = (SID = remote_SID))
)
dan kemudian menggunakannya dalam sqlplus
sqlplus user/pass@local_SID
Namun, dalam keadaan saya memodifikasi nama tns lokal tidak mungkin. Apakah mungkin untuk terhubung ke basis data jauh hanya dengan menggunakan argumen sqlplus tanpa harus mengubah nama tns? Sesuatu seperti
sqlplus user/pass@remote_SID@hostname.network ;( I know, this one is not valid)
database
apakah masih ada alias TNS, yang harus ada ditnsnames.ora
, jadi itu sama dengan yang coba dihindari oleh Louis?Jawaban:
Mungkin, dan ini mungkin tergantung pada lingkungan baris perintah yang Anda gunakan, Anda perlu mengutip string, semacamnya
atau
sumber
Anda dapat menggunakan koneksi yang mudah untuk ini:
Untuk mengaktifkan koneksi yang mudah pada mesin Anda, Anda perlu menambahkannya ke
NAMES.DIRECTORY_PATH
dalam sqlnet.ora, mis:Jika pendengar Anda menggunakan port non-default
[email protected]:port/...
.Sebenarnya sepertinya Anda harus memberikan nama layanan, bukan SID; mereka mungkin sama tetapi jika tidak, Anda harus mendapatkannya dari server.
sumber
Buat salinan file tnsnames.ora di direktori tempat Anda dapat menulis, memodifikasi file yang sesuai, lalu atur variabel lingkungan TNS_ADMIN ke lokasi direktori itu.
misalnya:
sumber
Pada sistem Unix / Linux, Anda dapat menggunakan file konfigurasi level pengguna untuk mengganti entri level sistem.
File konfigurasi tingkat sistem dapat ditemukan di direktori
$TNS_ADMIN
. Jika variabelTNS_ADMIN
tidak disetel maka mereka dicari di direktori$ORACLE_HOME/network/admin
.File konfigurasi tingkat pengguna tidak menggantikan file konfigurasi tingkat sistem secara keseluruhan (karena
TNS_ADMIN
direktori mengganti seluruh$ORACLE_HOME/network/admin
direktori) tetapi mereka menambah atau mengubah entri file konfigurasi tingkat sistem. Jika ada entri dalam file konfigurasi level pengguna maka yang ini digunakan, jika tidak ada dalam file konfigurasi level pengguna maka entri file konfigurasi level sistem digunakan.sumber