Zdalna baza bez edycji tnsnames.ora

Oracle pozwala (bardzo użyteczne) całkowicie przezroczyście podłączać się do zdalnych baz danych. Standardowa metoda specyfikowania zdalnej bazy polega na edycji pliku tnsnames.ora (ręcznej lub przy pomocy asystenta/wizarda/...) w celu nadania zdalnej bazie symbolicznej nazwy - a następnie używania tej nazwy. Niekiedy jednak, zwłaszcza gdy nie mamy uprawnień do edycji wspomnianego pliku (co można obejść ustawiając zmienną TNS_CONFIG na katalog w którym umieścimy naszą wersję) albo chcemy wykonać jednorazowy test, możemy wykorzystać inną metodę: pełny opis zdalnej bazy może być zadany bezpośrednio jako treść zmiennej TWO_TASK czy element 'connect string-u'.

Zamiast się rozwodzić, podam przykład. Poniższe polecenie uruchamia sqlplusa łącząć się z bazą o SID-zie (nazwie) MYBASE na maszynie mymachine.somewhere.pl (można też podawać adresy IP a nie nazwy), gdzie TNS*Listener działa na standardowym porcie 1521.

Poniższy napis powinien stanowić jedną linijkę

sqlplus 'scott/tiger@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)
   (HOST=mymachine.somewhere.pl)(PORT=1521)))(CONNECT_DATA=(SID=MYBASE)))'

(pojedyncze cudzysłowy są istotne - pod Unixem - inaczej za interpretowanie nawiasów mogą się zabrać co niektóre shelle).

Równoważnie można napisać:

Definicja zmiennej TWO_TASK powinna stanowić jedną linijkę

TWO_TASK='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)
   (HOST=mymachine.somewhere.pl)(PORT=1521)))(CONNECT_DATA=(SID=MYBASE)))'
export TWO_TASK
sqlplus scott/tiger

i ogólnie używać obnawiasowanego napisu w dowolnym kontekście w którym możemy użyć nazwy SQL*Net.

komentarze obsługiwane przez Disqus