it-swarm-eu.dev

Jak používat sqlplus pro připojení k databázi Oracle umístěné na jiném hostiteli, aniž bych upravoval vlastní tnsnames.ora

Chci se připojit k databázi Oracle umístěné na jiném hostiteli pomocí sqlplus. Tato stránka navrhl přidat položku do mých jmen tnsnam, aby se připojil k této databázi

local_SID =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL= TCP)(Host= hostname.network)(Port= 1521))
    (CONNECT_DATA = (SID = remote_SID))
  )

a pak to použijte v sqlplus

sqlplus user/[email protected]_SID

Za mých okolností však není možné změnit místní jména. Je možné připojit se ke vzdálené databázi pouze pomocí argumentu sqlplus, aniž byste museli měnit názvy jmen? Něco jako

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)))

Možná, a to může záviset na prostředí příkazového řádku, které používáte, je třeba uvést řetězec, například

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

nebo

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

K tomu můžete použít easy connect :

sqlplus usr/[email protected]/remote_service_name

Chcete-li na počítači povolit snadné připojení , musíte jej přidat do NAMES.DIRECTORY_PATH v sqlnet.ora, např .:

NAMES.DIRECTORY_PATH=(EZCONNECT)

Pokud je váš posluchač na jiném než výchozím portu, použijte [email protected]:port/....

Ve skutečnosti se zdá, že musíte zadat název služby, nikoli SID; mohou být stejné, ale pokud ne, budete je muset získat ze serveru.

37
Alex Poole

Vytvořte kopii souboru tnsnames.ora v adresáři, do kterého můžete zapsat, podle toho upravte soubor a poté nastavte proměnnou prostředí TNS_ADMIN do umístění tohoto adresáře.

např:

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ᵀᴹ

V systému Unix/Linux můžete k přepsání položek na systémové úrovni použít konfigurační soubory na úrovni uživatele .

 Uživatelská úroveň na úrovni systému 
 Konfigurační soubor konfiguračního souboru 
 ------------------ ------- ------------ 
 sqlnet.ora $ HOME/.sqlnet.ora 
 tnsnames.ora $ HOME/.tnsnames.ora 

Konfigurační soubory na úrovni systému lze nalézt v adresáři $TNS_ADMIN. Pokud proměnná TNS_ADMIN není nastaveno, pak jsou prohledávány v adresáři $Oracle_HOME/network/admin.

Konfigurační soubory na úrovni uživatele nenahrazují konfigurační soubory na systémové úrovni jako celek (jako TNS_ADMIN adresář nahradit celý $Oracle_HOME/network/admin adresář), ale přidávají nebo mění položky konfiguračních souborů na systémové úrovni. Pokud položka existuje v konfiguračním souboru na úrovni uživatele, použije se tento, pokud neexistuje v konfiguračním souboru na úrovni uživatele, použije se položka konfiguračního souboru na úrovni systému.

3
miracle173