Zmienne środowiskowe Oracle i parę innych drobiazgów

Poniższe sprawy są dosyć elementarne i możliwe do znalezienia w dokumentacji. Niemniej jednak często ktoś o to pyta a w dokumentacji znaleźć te informacje niezbyt łatwo. Wszystko co piszę poniżej dotyczy Oracle/Unix (także Oracle/Linux).

Kluczowymi zmiennymi środowiskowymi wykorzystywanymi przez Oracle niezależnie od konfiguracji są:

ORACLE_HOME
Miejsce w którym zainstalowano Oracle. Wykorzystywane do mnóstwa różnych celów. Bez tej zmiennej możemy się spodziewać rozlicznych kłopotów. U mnie jest to /opt/oracle/8.0.5, gdybym słuchał instalatora miałbym raczej /opt/oracle/app/products/8.0.5 lub coś podobnego.
NLS_LANG
Ustawienie języka dla aplikacji łączących się z Oracle (SQL*Plus ale także nasze programy). Jeśli korzystamy z iso-latin-2 i chcemy oglądać odpowiednie literki, należy tę zmienną ustawić na polish_poland.EE8ISO8859P2 - w przeciwnym wypadku, zamiast polskich literek, będziemy dostawać znaki zapytania (także przy operacjach typu export/import).

Dalsze zmienne zależą od sposobu pracy. Jeśli korzystamy z lokalnej bazy danych musimy zdefiniować:

ORACLE_SID
Lokalna nazwa bazy danych z której korzystamy - nadana w trakcie jej tworzenia. Jeśli nie jesteśmy w stanie sobie jej przypomnieć, warto zerknąć do katalogu $ORACLE_HOME/dbs - np. dla bazy MYORACLE znajdziemy tam pliki initMYORACLE.ora, configMYORACLE.ora itp.

Natomiast przy dostępie do zdalnych baz przez SQL*Net ważne są

TWO_TASK
Nazwa zdalnej bazy danych - czyli nazwa odpowiedniego wpisu w pliku tnsnames.ora albo pełny opis połączenia (tak przy okazji, na niektórych platformach - min. VMS - zamiast TWO_TASK trzeba używać ORA_DFLT_HOSTSTR).
TNS_ADMIN
Nazwa katalogu w którym znajduje się plik tnsnames.ora (u mnie /etc/oracle). Tej zmiennej można nie definiować, wówczas plik jest poszukiwany w $ORACLE_HOME/network/admin.

Uwaga: jeśli w środowisku jest zdefiniowane zarówno ORACLE_SID jak TWO_TASK, ten drugi ma pierwszeństwo.

komentarze obsługiwane przez Disqus