it-swarm.asia

Cara menggunakan sqlplus untuk terhubung ke Oracle Database yang terletak di Host lain tanpa mengubah tnsnames.ora saya sendiri

Saya ingin terhubung ke database Oracle yang terletak di Host lain menggunakan sqlplus. Halaman ini menyarankan menambahkan item pada tnsnames saya untuk dimasukkan 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/[email protected]_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/[email protected][email protected] ;( I know, this one is not valid)
83
Louis Rhys
 sqlplus user/[email protected](DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))

Mungkin, dan ini mungkin tergantung pada lingkungan baris perintah yang Anda gunakan, Anda perlu mengutip string, semacamnya

 sqlplus "user/[email protected](DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))"

atau

 sqlplus 'user/[email protected](DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))'
88

Anda dapat menggunakan koneksi mudah untuk ini:

sqlplus usr/[email protected]/remote_service_name

Untuk mengaktifkan koneksi mudah pada mesin Anda, Anda perlu menambahkannya ke NAMES.DIRECTORY_PATH di sqlnet.ora, mis .:

NAMES.DIRECTORY_PATH=(EZCONNECT)

Jika pendengar Anda menggunakan porta non-default, gunakan [email protected]:port/....

Sebenarnya sepertinya Anda harus memberikan nama layanan, bukan SID; mereka mungkin sama tetapi jika tidak, Anda harus mendapatkannya dari server.

37
Alex Poole

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:

cp $Oracle_HOME/network/admin/tnsnames.ora /tmp/tnsnames.ora
# edit the /tmp/tnsnames.ora file to add your entries

# Set the $TNS_ADMIN environment variable so that sqlplus knows where to look 
export TNS_ADMIN=/tmp
18
Philᵀᴹ

Pada sistem Unix/Linux Anda dapat menggunakan file konfigurasi level pengguna untuk mengganti entri level sistem.

 Sistem-Level Pengguna-Level 
 File Konfigurasi File Konfigurasi 
 ------------------ ------- ------------ 
 sqlnet.ora $ HOME/.sqlnet.ora 
 tnsnames.ora $ HOME/.tnsnames.ora 

File konfigurasi tingkat sistem dapat ditemukan di direktori $TNS_ADMIN. Jika variabel TNS_ADMIN tidak disetel maka mereka dicari di direktori $Oracle_HOME/network/admin.

File konfigurasi tingkat pengguna tidak menggantikan file konfigurasi tingkat sistem secara keseluruhan (seperti TNS_ADMIN direktori menggantikan keseluruhan $Oracle_HOME/network/admin direktori) tetapi mereka menambah atau mengubah entri file konfigurasi tingkat sistem. Jika ada entri dalam file konfigurasi tingkat pengguna maka yang ini digunakan, jika tidak ada dalam file konfigurasi tingkat pengguna maka entri file konfigurasi tingkat sistem digunakan.

3
miracle173