Krok 1.
| Zainstaluj i skonfiguruj oprogramowanie klienta Oracle na serwerze
stowarzyszonym DB2, używając dokumentacji dołączonej do systemu Oracle.
W celu uzyskania dostępu do źródeł danych Oracle wersja 7 i Oracle wersja 8
można użyć SQL*Net albo Net8.
Zalecenie dla serwerów stowarzyszonych działających na platformach typu
UNIX:
| Podczas instalowania oprogramowania klienta Oracle zgłoś żądanie ponownego
połączenia (relink) SQL*Net lub Net8.
|
|
Krok 2.
| Ustaw zmienne środowiskowe źródła danych, modyfikując w tym celu plik
DB2DJ.ini i wydając komendę db2set.
Komenda db2set uaktualnia rejestr profilów DB2 zgodnie z wybranymi
ustawieniami.
Plik DB2DJ.ini zawiera informacje o konfiguracji
oprogramowania klienta Oracle zainstalowanego na serwerze
stowarzyszonym. W systemie partycjonowanych baz danych można użyć
jednego pliku DB2DJ.ini dla wszystkich węzłów w wybranej instancji,
można także użyć unikalnego pliku DB2DJ.ini dla jednego lub
kilku węzłów w wybranej instancji. W systemie baz danych bez partycji
jedna instancja może mieć tylko jeden plik
DB2DJ.ini.

| Jeśli domyślne ustawienia w pliku DB2DJ.ini odpowiadają żądanej
konfiguracji, należy przejść do punktu 2.
|
- Wyedytuj plik DB2DJ.ini znajdujący się w katalogu
sqllib/cfg i ustaw następujące zmienne środowiskowe:
ORACLE_HOME
|
Ustaw zmienną środowiskową ORACLE_HOME na katalog osobisty Oracle, na
przykład:
ORACLE_HOME=katalog_osobisty_oracle
SQL*Net i Net8 wymagają, aby zmienna ta była ustawiona przed uruchomieniem
instancji stowarzyszonej. Jeśli ta zmienna została zmieniona, to przed
uwzględnieniem nowej wartości zmiennej ORACLE_HOME instancja stowarzyszona
musi być zatrzymana i uruchomiona ponownie.
Jeśli pojedynczy użytkownik instancji stowarzyszonej ma ustawioną własną
wartość zmiennej środowiskowej ORACLE_HOME, to nie jest ona używana przez
instancję stowarzyszoną. Instancja stowarzyszona używa wyłącznie
wartości zmiennej ORACLE_HOME ustawionej w rejestrze profilów DB2.
| ORACLE_BASE
|
W przypadku serwerów stowarzyszonych uruchomionych w wersjach systemu UNIX,
jeśli zmienna ORACLE_BASE została ustawiona podczas instalowania
oprogramowania klienta Oracle, to zmienną środowiskową ORACLE_BASE należy
ustawić także na serwerze stowarzyszonym.
ORACLE_BASE=katalog_osobisty_oracle
| ORA_NLS
|
W przypadku serwerów stowarzyszonych, uruchomionych w wersjach systemu
UNIX, które będą miały dostęp do źródeł danych Oracle wersja 7.2 lub
nowsza, należy ustawić zmienną środowiskową ORA_NLS:
ORA_NLS=katalog_osobisty_oracle/ocommon/nls/admin/data
| TNS_ADMIN
|
Jeśli plik tnsnames.ora SQL*Net or Net8 znajduje się poza
domyślnymi ścieżkami wyszukiwania, to zmienną środowiskową TNS_ADMIN należy
ustawić w taki sposób, aby określała położenie pliku
tnsnames.ora; na przykład:
TNS_ADMIN=x:\ścieżka\tnsnames.ora
Dla serwerów typu Windows:
| Domyślne położenie tego pliku zmienia się w zależności od używanego
oprogramowania klienta:
- Jeśli jest używane oprogramowanie SQL*Net, to plik tnsnames.ora
znajduje się w katalogu %ORACLE_HOME%\NETWORK\ADMIN.
- Jeśli jest używane oprogramowanie Net8, to plik tnsnames.ora
znajduje się w katalogu %ORACLE_HOME%\NET8\ADMIN.
| Dla serwerów typu UNIX:
| Domyślnym położeniem tego pliku jest katalog
$ORACLE_HOME/admin/util/network.
|
|
- Aby zaktualizować rejestr profilów DB2 zgodnie z
przeprowadzonymi zmianami, wykonaj komendę db2set.
W przypadku pliku DB2DJ.ini w systemie baz danych bez
partycji, lub zastosowaniu wartości znajdujących się w pliku DB2DJ.ini
tylko do bieżącego węzła, należy wydać komendę:
db2set DB2_DJ_INI = sqllib/cfg/db2dj.ini
W przypadku pliku DB2DJ.ini w systemie partycjonowanych baz
danych i zastosowania wartości znajdujących się w pliku DB2DJ.ini do
wszystkich węzłów danej instancji, należy wydać komendę:
db2set -g DB2_DJ_INI = sqllib/cfg/db2dj.ini
W przypadku pliku DB2DJ.ini w systemie partycjonowanych baz
danych i zastosowania wartości znajdujących się w pliku DB2DJ.ini do
wybranego węzła, należy wydać komendę:
db2set -i INSTANCEX 3 DB2_DJ_INI = sqllib/cfg/node3.ini
gdzie:
- INSTANCEX jest nazwą instancji.
- 3 jest numerem węzła zgodnym z plikiem
db2nodes.cfg.
- node3.ini jest zmodyfikowaną i przemianowaną wersją
pliku DB2DJ.ini.
|
Krok 3.
| Upewnij się, czy plik tnsnames.ora SQL*Net lub Net8 został
zaktualizowany dla wszystkich serwerów Oracle, dla których została
skonfigurowana komunikacja.
W pliku tnsnames.ora SID jest nazwą instancji Oracle, a HOST jest
nazwą hosta, na którym znajduje się serwer Oracle.
|
Krok 4.
| Ponownie uruchom instancję DB2:
Dla serwerów typu Windows:
|
NET STOP nazwa_instancji
NET START nazwa_instancji
| Dla serwerów typu UNIX:
|
db2stop
db2start
|
|
Krok 5.
| Użyj instrukcji CREATE WRAPPER w celu zdefiniowania biblioteki wrappera,
który będzie używany do uzyskania dostępu do źródeł danych Oracle.
Wrappery to mechanizmy używane przez serwery stowarzyszone do komunikowania
się ze źródłami danych i odczytywania z nich danych. Użycie instrukcji
CREATE WRAPPER pokazuje przykład:
CREATE WRAPPER SQLNET
gdzie SQLNET jest domyślną nazwą wrappera używanego z
oprogramowaniem klienta SQL*Net systemy Oracle. W przypadku
oprogramowania klienta Net8 systemu Oracle należy użyć nazwy
NET8.
Nazwę domyślną można zastąpić nazwą wybraną przez siebie. Jednak w
takim przypadku należy dołączyć parametr LIBRARY i nazwę biblioteki wrappera
dla platformy serwera DB2. Więcej informacji na temat nazw bibliotek
modułów nakładkowych można znaleźć w podręczniku SQL Reference.
|
Krok 6.
| Opcjonalnie: Ustaw wartość zmiennej środowiskowej DB2_DJ_COMM, aby
dołączyć bibliotekę wrappera, która odpowiada modułowi utworzonemu w kroku
poprzednim, na przykład:
db2set DB2_DJ_COMM = libsqlnet.a
Zmienna środowiskowa DB2_DJ_COMM kontroluje, czy wrapper jest załadowany w
chwili inicjowania serwera stowarzyszonego. Jeśli najpierw jest
uzyskiwany dostęp do źródła danych Oracle, może nastąpić poprawa
wydajności. Więcej informacji na temat nazw bibliotek modułów
nakładkowych można znaleźć w podręczniku SQL Reference.
|
Krok 7.
| Użyj instrukcji CREATE SERVER do zdefiniowania każdego serwera Oracle, dla
którego konfigurowana jest komunikacja, na przykład:
CREATE SERVER ORASERVER TYPE ORACLE VERSION 7.2 WRAPPER SQLNET
OPTIONS (NODE "oranode")
gdzie:
- ORASERVER jest nazwą przypisaną do serwera Oracle. Musi
to być nazwa unikalna.
- ORACLE jest typem źródła danych, do którego konfigurowany jest
dostęp.
- 7.2 jest wersją systemu Oracle, do którego ma być
uzyskany dostęp.
- SQLNET jest nazwą wrappera zdefiniowaną w instrukcji CREATE
WRAPPER.
- oranode jest nazwą węzła, w którym znajduje się
ORASERVER. Wartość dla tego węzła zawiera plik
tnsnames.ora. W przypadku tej wartości rozróżniane są wielkie i
małe litery. Rysunek 6 przedstawia zależność między opcją węzła a plikiem
tnsnames.ora.
Chociaż wartość węzła jest określona jako opcjonalna, jest ona wymagana dla
źródeł danych Oracle. Wyczerpującą listę opcji można znaleźć w
podręczniku SQL Reference.
Rysunek 6 ilustruje informacje zawarte w pliku tnsnames.ora,
widok SYSCAT.SERVEROPTIONS i widok SYSCAT.SERVERS.
Rysunek 6. Zależność między plikami systemowymi DB2 a plikiem tnsnames.ora systemu Oracle
|
Krok 8.
| Jeśli identyfikator użytkownika lub hasło dla serwera stowarzyszonego są
inne niż identyfikator użytkownika lub hasło dla źródła danych systemu Oracle,
należy użyć instrukcji CREATE USER MAPPING w celu odwzorowania lokalnego
identyfikatora użytkownika na identyfikator użytkownika i hasło zdefiniowane
dla źródła danych Oracle; na przykład:
CREATE USER MAPPING FOR DB2USER SERVER ORASERVER
OPTIONS ( REMOTE_AUTHID 'orauser', REMOTE_PASSWORD "dayl1te")
gdzie:
- DB2USER jest lokalnym identyfikatorem użytkownika odwzorowanym
na identyfikator użytkownika zdefiniowany dla źródła danych Oracle,
- ORASERVER jest nazwą źródła danych Oracle zdefiniowaną w
instrukcji CREATE SERVER,
- orauser jest identyfikatorem użytkownika dla źródła danych
Oracle, do którego jest odwzorowany DB2USER. Dla tej
wartości rozróżniane są wielkie i małe litery.
Ograniczenie:
| Identyfikator użytkownika Oracle (dla źródła danych Oracle, a nie dla
serwera stowarzyszonego DB2) musi być utworzony za pomocą komendy systemu
Oracle: create user z klauzulą 'identified by'
zamiast klauzuli 'identified externally'.
|
- dayl1te jest hasłem powiązanym z "orauser". W
przypadku tej wartości rozróżniane są wielkie i małe litery.
|
Krok 9.
| Użyj instrukcji CREATE NICKNAME w celu przypisania pseudonimu dla widoku
lub tabeli znajdujących się w źródle danych Oracle. Pseudonim ten
będzie używany podczas zapytań odnoszących się do źródła danych systemu
Oracle. Użycie instrukcji CREATE NICKNAME ilustruje poniższy
przykład:
CREATE NICKNAME ORASALES FOR ORASERVER.SALESDATA.MIDWEST
gdzie:
- ORASALES jest unikalnym pseudonimem tabeli lub widoku Oracle,
- ORASERVER.SALESDATA.MIDWEST jest trzyczęściowym
identyfikatorem utworzonym według następującego formatu:
nazwa_źródła_danych.nazwa_schematu_zdalnego.nazwa_tabeli_zdalnej
Więcej informacji na temat instrukcji CREATE NICKNAME można znaleźć w
podręczniku SQL Reference.
Więcej informacji ogólnych na temat pseudonimów można znaleźć w podręczniku
Administration Guide.
|
Krok 10.
| Powtórz poprzedni krok dla wszystkich obiektów bazy danych, dla których
chcesz utworzyć pseudonimy.
|
Krok 11.
| W razie potrzeby, dla każdego parametru HOST w sekcji DESCRIPTION
pliku tnsnames.ora zaktualizuj plik /etc/hosts
dla serwerów typu UNIX i plik
x:\winnt\system32\drivers\etc\hosts dla serwerów
Windows.
Konieczność aktualizacji tego pliku zależy od sposobu, w jaki został
skonfigurowany protokół TCP/IP w danej sieci. Część sieci musi
wykonywać zlokalizować nazwę hosta zdalnego określoneą w części DESCRIPTION
pliku tnsnames.ora (w tym przykładzie "oranode") na adres. Jeśli
w sieci znajduje się serwer nazw, który rozpoznaje nazwę hosta, to nie należy
aktualizować pliku hosts protokołu TCP/IP. Z drugiej strony, potrzebna
jest pozycja dla hosta zdalnego. Informacje na temat konfiguracji sieci
można uzyskać od administratora sieci.
|