Download: KnowHow_oracle

Transkrypt

Download: KnowHow_oracle
KNOW HOW
Oracle
Firma Oracle Corporation powstała
ponad 25 lat temu i praktycznie od
samego początku jej sztandarowym
produktem była relacyjna (obecnie
Instalujemy serwer Oracle
Dwa światy
relacyjno-obiektowa) baza danych.
Dzięki starannemu procesowi projektowania i ciągłej ewolucji, dodawaniu nowych możliwości i wychodzeniu naprzeciw potrzebom
współczesnego społeczeństwa inwww.dfrc.nasa.gov/gallery/photo
formatycznego, produkt firmy
Oracle jest bez wątpienia najlepszą
propozycją w swej klasie.
DARIUSZ WALAT
W
ielu Czytelników zadaje sobie zapewne pytanie – co w miesięczniku poświęconym Linuksowi
i oprogramowaniu Open Source robi artykuł
o komercyjnej bazie danych Oracle?
W odpowiedzi mógłbym przeprowadzić wywód dotyczący korzyści płynących ze wsparcia
ruchu Open Source przez takich potentatów
światowego rynku oprogramowania, jak IBM,
Sun Microsystems, czy też właśnie Oracle.
Wywód taki byłby całkiem długi, musiałby bowiem odkryć meandry toczonych od kilku lat
dyskusji dotyczących sensowności, korzyści,
opłacalności stosowania oprogramowania
Open Source we współpracy z komercyjnym
i zamkniętym kodem.
Nie będziemy po raz kolejny odkrywać
„prawd oczywistych”, bo nie to jest tematem
niniejszego artykułu. Ograniczymy się jedynie
do przypomnienia kilku znanych powszechnie
argumentów, które w przypadku połączenia
bazy danych Oracle i Linuksa sprawdzają się
wyśmienicie, a mianowicie o stabilności, elastyczności, otwartości kodu Linuksa (co jest
również wykorzystywane przez firmę Oracle
wraz z firmą Red Hat przy optymalizacji Red
Hat Enterprise Linux pod kątem współpracy
z bazą danych Oracle), wydajności oraz łatwości zarządzania systemem operacyjnym.
W niniejszym artykule zostanie opisany
proces instalacji serwera bazodanowego Oracle na platformie Red Hat Linux 9.0.
60
Lipiec 2004
Aby mieć pewność, że korzystamy z bazy
w sposób optymalny, w przypadku zastosowań
produkcyjnych należałoby skorzystać z jednej
z certyfikowanych przez Oracle Corporation
dystrybucji: Red Hat Advanced Server i Enterprise Linux oraz SuSE Linux Enterprise
Server firmy Novell/SuSE.
Jednak w celu poznania potężnych możliwości drzemiących we flagowym produkcie
Oracle, nie jest konieczny zakup tych komercyjnych dystrybucji. Wystarczy stary, poczciwy Red Hat 9.0. Proces instalacji motora bazy
danych będzie taki sam zarówno dla Red Hat
9.0, jak i na przykład w Red Hat Advanced
Serwer 2.1, zatem po poznaniu tajników instalacji bazy Oracle na tym pierwszym, nie będziemy mieli specjalnych problemów z instalacją na platformach klasy Enterprise.
Spróbujemy zainstalować najpopularniejszą obecnie wersję bazy – 9iR2. Stosunkowo
niedawno na rynku pojawił się nowy produkt
oznaczony jako 10g, gdzie „g” w nazwie symbolizuje wsparcie bazy Oracle dla niezbyt często jeszcze spotykanych, ale z całą pewnością
przyszłościowych systemów opartych na grid
computing. Jednakże wersja „g” jest stosunkowo młoda, stąd też my skupimy się na standardowej wersji 9iR2.
gramowania, posiada doskonale przygotowany portal, który ma pomóc użytkownikom
w uzyskaniu wersji instalacyjnych poszczególnych produktów, odpowiedniej dokumentacji oraz uzyskiwaniu dostępu do szkoleń on-line, artykułów technicznych, itd.
W celu uzyskania wersji instalacyjnej Oracle 9iR2 dla Linuksa, należy wejść na strony
portalu OTN – Oracle Technology Network
(http://otn.oracle.com), zarejestrować się (cały
proces jest bezpłatny), a następnie wybrać odpowiedni produkt w sekcji „Product Centers > Services -> Downloads -> Database”.
Należy jednak pamiętać o tym, iż uzyskane
w ten sposób oprogramowanie może być używane tylko w określonych celach (szczegóły licencji są opisane na stronach OTN). Komercyjne wykorzystanie wymaga bezwzględnie
OTN – skarb kibica
Firma Oracle, podobnie do kilku innych czołowych graczy na komercyjnym rynku opro-
www.linux-magazine.pl
Rysunek 1: Okno powitalne Uniwersalnego
Instalatora Oracle.
Oracle
oprogramowanie należy przygotować partycję
o wielkości około 3,5 GB.
Następnie na przygotowanych partycjach
należy utworzyć odpowiednie systemy plików,
np. ext3:
[root@pyrltest]# mke2fs -L oracle U
-j /dev/sda10
[root@pyrltest]# mke2fs -L ora9iU
R2home -j /dev/sda11
Rysunek 2: Okno konfiguracji plików OUI.
nabycia stosownej licencji.
Gdzie mieszkam
i kim jestem?
Pierwszym krokiem koniecznym do zainstalowania świeżo pozyskanego oprogramowania
jest stworzenie odpowiedniej struktury katalogów (systemów plików) oraz stworzenie odpowiedniego użytkownika i grupy.
Jeśli chodzi o strukturę katalogów docelowych, można skorzystać ze wskazówek zawartych w specyfikacji OFA (Optimal Flexible
Architecture). Została ona opracowana przez
specjalistów Oracle Corporation w celu zapewnienia optymalnej organizacji plików serwera bazy danych oraz plików konkretnych
baz danych. Należy pamiętać, iż jest to zbiór
pewnych założeń, które nie są bynajmniej obligatoryjne. Autor od lat stosuje z powodzeniem następujący schemat systemu plików dla
katalogu domowego właściciela oprogramowania bazy danych oraz dla samego zbioru plików wchodzących w skład konkretnego wydania motoru bazodanowego: /Oracle jako katalog domowy właściciela oprogramowania serwera Oracle oraz /Oracle/app/oracle/product/x.y.z dla składowania plików konkretnego systemu zarządzania bazą danych, gdzie
x.y.z stanowią trzy najbardziej znaczące cyfry
konkretnej wersji, np. 9.2.0.
W celu przygotowania stosownych systemów plików należy najpierw utworzyć odpowiednie partycje, np. za pomocą narzędzia
fdisk lub też (co jest sugerowanym rozwiązaniem) przygotować odpowiednie wolumeny
logiczne zarządzane przez np. LVM. Dlaczego? Ponieważ oprogramowanie Oracle od czasu do czasy wymaga instalowania łatek, które
mogą spowodować w końcu zapełnienie partycji, a systemy takie jak LVM pozwalają na elastyczną zmianę wielkości woluminów.
Partycja katalogu domowego właściciela
oprogramowania Oracle powinna mieć nie
więcej niż 300-500 MB, natomiast na samo
gdzie sda10 i sda11 należy zastąpić odpowiednimi plikami specjalnymi partycji dyskowych
istniejącymi w konkretnym systemie.
W celu zamontowania przygotowanych partycji konieczne jest utworzenie odpowiednich
punktów montowania, zatem należy przygotować specjalne katalogi, a następnie dokonać
operacji montowania.
[root@pyrltest]# mkdir /Oracle
[root@pyrltest]# mount /dev/sda10 U
/Oracle
[root@pyrltest]# mkdir -p U
/Oracle/app/oracle/product/9.2.0
[root@pyrltest]# chmod -R 2750 U
/Oracle
[root@pyrltest]# mount /dev/sda11 U
/Oracle/app/oracle/product/9.2.0
Aby proces przebiegał automatycznie, po każdym restarcie systemu konieczne jest dodanie
do pliku /etc/fstab następujących wpisów:
LABEL=oracle /Oracle ext3 U
defaults 1 2
LABEL=ora9iR2home /Oracle/app/U
oracle/product/9.2.0 ext3 U
defaults 1 2
Kolejnym krokiem jest utworzenie odpowiednich użytkowników i grup, które będą potrzebne do instalacji i zarządzania oprogramowaniem Oracle RDBMS.
Doświadczenie autora pokazuje, że całość
KNOW HOW
procesu instalacji oprogramowania i jego późniejszego uruchamiania można z powodzeniem
wykonać przy pomocy jednego konta i jednej
grupy, odpowiednio oracle i dba. Warto przy
okazji odnotować, iż przy planowaniu instalacji
oprogramowania Oracle na większej ilości serwerów warto ustalić zawczasu odpowiednie
identyfikatory systemowe dla grupy dba i użytkownika oracle, wspólne dla wszystkich instalacji w całej organizacji – ułatwi to późniejszą
opiekę nad wieloma bazami danych.
[root@pyrltest]# groupadd -g U
200 dba
[root@pyrltest]# useradd -u 200 U
-g dba -s /bin/bash -d /Oracle U
-c „oracle owner” oracle
Po utworzeniu odpowiedniego użytkownika
i grupy należy uczynić ich właścicielami katalogów w uprzednio utworzonych systemach
plików.
[root@pyrltest]#chown -R U
oracle.dba /Oracle
Duchy przeszłości
W celu uniknięcia błędów podczas operacji
linkowania i kompilacji binariów serwera
Oracle należy upewnić się, że w systemie są
zainstalowane następujące pakiety:
gcc-3.2.2-5
cpp-3.2.2-5
glibc-devel-2.3.2-11.9
nss_db-compat-2.2-20
compat-gcc-7.3-2.96.118
compat-libgcj-7.3-2.96.118
compat-libgcj-devel-7.3-2.96.118
binutils-2.13.90.0.18-9
na przykład za pomocą
[root@pyrltest]# rpm -qa | egrep U
„gcc|cpp|glibc-devel|binutils|U
compat-gcc|compat-libgcj|U
compat-libgcj-devel|nss_db-compat”
W przypadku braku powyższych pakietów
należy je zainstalować za pomocą narzędzia
RPM, wszystkie potrzebne pakiety znajdują
się na płytach instalacyjnych Red Hat 9.0.
Jądro na sterydach
Rysunek 3: Okno źródła plików instalacyjnych
oraz Oracle Home.
Do komunikacji międzyprocesowej serwer
Oracle wykorzystuje w intensywny sposób zasoby, takie jak pamięć dzielona, semafory oraz
pamięć wirtualna (swap). Z tego powodu
www.linux-magazine.pl
Lipiec 2004
61
KNOW HOW
Oracle
wskazana jest zmiana domyślnych ustawień
pewnych parametrów jądra, powiązanych bezpośrednio lub pośrednio z tymi zasobami
w stosunku do oferowanych standardowo
w dystrybucji Red Hat 9.0. W przeciwnym wypadku proces instalacji może zakończyć się
niepowodzeniem.
Szczegółowy opis poszczególnych parametrów jądra oraz ich minimalnych wartości wymaganych przez serwer Oracle można znaleźć
w dokumentacji. Tutaj skupimy się jedynie na
sposobie ustawienia odpowiednich wartości.
Czynność tę można wykonać na dwa sposoby:
interaktywny, polegający na bezpośredniej
zmianie odpowiednich parametrów jądra poprzez ingerencję w pliki znajdujące się w katalogu /proc:
[root@pyrltest]# echo 250 32000 U
100 128 > /proc/sys/kernel/sem
[root@pyrltest]# echo 2147483648 U
> /proc/sys/kernel/shmmax
[root@pyrltest]# echo 4096 U
> /proc/sys/kernel/shmmin
[root@pyrltest]# echo 2097152 U
> /proc/sys/kernel/shmall
[root@pyrltest]# echo 65536 U
> /proc/sys/fs/file-max
[root@pyrltest]# echo 1024 65000 U
> /proc/sys/net/ipv4/U
ip_local_port_range
oraz nieinteraktywny, polegający na ustawieniu odpowiednich parametrów (które zostaną odczytane przez jądro po restarcie systemu) w pliku /etc/sysctl.conf
kernel.sem = 250 32000 100 128
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.file-max = 65536
net.ipv4.ip_local_port_range = U
1024 65000
Dodatkowo w pliku /etc/security/limits.conf
należy ustawić limity dla maksymalnej liczby
otwartych plików oraz maksymalnej liczby
procesów właściciela serwera Oracle.
oracle soft proc 16384
oracle soft nofile 65536
oracle hard nofile 65536
Wygodne mieszkanie
Wymagania dotyczące wielkości pamięci
RAM i pamięci wirtualnej niezbędnej do instalacji bazy Oracle 9iR2 są duże. Wynoszą
one (podaję za dokumentacją) odpowiednio:
512 MB i 1GB oraz dwukrotność wielkości pamięci RAM dla pamięci wirtualnej. W celu
sprawdzenia dostępnej pamięci RAM można
się posłużyć poleceniem:
[root@pyrltest]# grep MemTotal U
/proc/meminfo
MemTotal: 524288kB
Natomiast do sprawdzenia przestrzeni wymiany:
[root@pyrltest]# cat /proc/swaps
Filename
Type
Size
U
Used
Priority
/dev/sda09
partition
U
1044144
0
-1
W przypadku braku odpowiednio dużej partycji wymiany należy ją koniecznie utworzyć,
na przykład za pomocą fdisk, następnie utworzyć na niej przestrzeń wymiany w następujący sposób:
[root@pyrltest]# mkswap /dev/sda12
Rysunek 5: Okno wyboru komponentów serwera Oracle.
[root@pyrltest]# zcat
lnx_920_disk1.cpio.gz
[root@pyrltest]# zcat
lnx_920_disk2.cpio.gz
[root@pyrltest]# zcat
lnx_920_disk3.cpio.gz
U
| cpio -idmv
U
| cpio -idmv
U
| cpio -idmv
Dzięki tej operacji stworzone zostaną 3 katalogi instalacyjne Oracle RDBS 9iR2; odpowiednio Disk1, Disk2 i Disk3. Należy jeszcze
stosownie zmienić prawa do nich, tak aby
później użytkownik oracle mógł uruchomić
odpowiedni plik instalacyjny.
[root@pyrltest]# chown -R oracle.dba Disk[1-3]
We własnej skórze
Do tej pory wszystkie czynności przygotowawcze były wykonywane jako root. Najwyższa pora zmienić skórę i stać się użytkownikiem oracle. Przedtem jednak wskazane jest
ustawienia odpowiedniego środowiska pracy
(ścieżki, ORACLE_BASE, ORACLE_HOME, ustawienia językowe, itd.) użytkownika
oracle poprzez dodanie odpowiednich zmiennych na końcu pliku ~oracle/.bashrc, tak jak
na poniższym listingu.
a wreszcie ją aktywować
[root@pyrltest]# swapon /dev/sda12
Rysunek 4: Wybór opcji językowych.
62
Lipiec 2004
Wymagana wolna przestrzeń w systemie plików /tmp to 400 MB. Jeśli serwer ma zbyt mało miejsca w katalogu /tmp, należy przed rozpoczęciem instalacji motoru bazodanowego
Oracle ustawić jako użytkownika oracle
zmienną TEMP, wskazującą na katalog z odpowiednią ilością przestrzeni.
W tym kroku można również przygotować
do instalacji pobrane ze strony OTN oprogramowanie.
www.linux-magazine.pl
# Srodowisko oracle
export ORACLE_BASE=U
/Oracle/app/oracle
export ORACLE_HOME=U
/Oracle/app/oracle/product/9.2.0
export ORACLE_SID=testsid
export ORACLE_TERM=xterm
export ORA_NLS33=U
$ORACLE_HOME/ocommon/nls/admin/data
# Sciezka przeszukiwan
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=U
$ORACLE_HOME/lib:/lib:/usr/lib
Oracle
:/usr/local/lib
# Use old Linuxthreads with U
floating stacks instead of
# the new Native POSIX Thread U
Library (NTPL)
# export LD_ASSUME_KERNEL=2.4.1
# export THREADS_FLAG=native
# Narodowe ustawienia językowe U
dla Oracle
export NLS_LANG=U
'polish_poland.ee8iso8859p2'
# Classpath
CLASSPATH=$ORACLE_HOME/JRE:U
$ORACLE_HOME/jlib:U
$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:U
$ORACLE_HOME/network/jlib
Po tej operacji przełączenie na użytkownika
oracle spowoduje odpowiednie ustawienie
środowiska pracy koniecznego do rozpoczęcia
instalacji.
[root@pyrltest]# su – oracle
Po przygotowaniu odpowiedniego środowiska
można w końcu rozpocząć proces instalacji
oprogramowania bazy danych Oracle.
Budujemy nowy dom
Począwszy od wersji 8i systemy zarządzania bazą danych Oracle zostały wyposażony
w graficzne, praktycznie jednakowe dla
wszystkich platform, oparte o Java środowisko instalacyjne nazywane Uniwersalnym Instalatorem Oracle (Oracle Universal
Installer).
Tak więc proces instalacji oprogramowania
Oracle odbywa się w środowisku graficznym.
Dowolnym środowisku graficznym – dodajmy
gwoli ścisłości.
W celu poprawnego uruchomienia instalatora konieczne jest ustawienie zmiennej DISPLAY jako użytkownik oracle.
Rysunek 6: Okno podsumowania parametrów
instalacji.
[oracle@pyrltest]% export U
DISPLAY=127.0.0.1:0
Następnie z poziomu użytkownika root wykonujemy polecenie, które umożliwi innym
użytkownikom uruchamianie programów
w środowisku graficznym. Uruchamiamy
więc nowe okno X-terminalowe i w nim wykonujemy polecenie:
[root@pyrltest]# xhost +127.0.0.1
System jest gotowy do uruchomienia instalatora. W sesji X-terminalowej użytkownika
oracle uruchamiamy skrypt:
[oracle@pyrltest]% U
Disk1/runInstaller
który spowoduje otwarcie graficznego okna
instalatora.
Instalator jest zbudowany w przejrzysty,
klarowny sposób, większość pytań przez niego
zadawanych ma ustawione sensowne wartości
domyślne, tak więc na tym etapie nawet mało
doświadczony użytkownik nie powinien mieć
większych problemów. Przy pierwszej instalacji serwera Oracle (w danym systemie można
mieć zainstalowanych kilka różnych wersji
serwera Oracle) w systemie Instalator zapyta
o katalog, w którym będą przechowywane informacje związane z OUI (Rysunek 2). Należy
w tym miejscu zostawić podpowiadaną ścieżkę, gdyż jest ona zbudowana w oparciu
o zmienną środowiskową $ORACLE_BASE
i jej wartość jest prawidłowa.
W kolejnych krokach będziemy pytani
o ścieżkę do katalogów z wersją instalacyjną,
nazwę Oracle Home (którą autor zwyczajowo
zmienia w przypadku serwera 9iR2 na OraHome9iR2), ścieżkę do Oracle Home (podpowiadana wartość jest pobierana ze zmiennej
$ORACLE_HOME).
W kolejnych oknach pojawią się pytania dotyczące języków, w których serwer Oracle będzie mógł pracować (Rysunek 4), oraz typu
przeprowadzanej instalacji, gdzie najelastyczniejszym wyborem jest Custom, pozwalający
zadecydować o instalacji odpowiednich komponentów serwera Oracle (nie wszystkie komponenty są potrzebne w każdym wypadku –
przykładowo w bazach danych OTLP raczej
nie wybierzemy komponentu Oracle OLAP
bądź Oracle Data Mining).
Instalator zapyta również o uprzywilejowaną grupę w Linuksie, która będzie miała
możliwość uaktualniania oprogramowania
serwera Oracle (należy tutaj wybrać dba), lo-
KNOW HOW
kalizację komponentów związanych z Java
oraz, czy po instalacji serwera Oracle będziemy chcieli od razu utworzyć bazę danych (w
przypadku czystej instalacji serwera Oracle
należy wybrać „No”).
Po zebraniu odpowiednich informacji OUI
wyświetla okno podsumowujące parametry instalacji, zaś wybranie przycisku Install powoduje rozpoczęcie procesu fizycznej instalacji
(linkowanie, kompilowanie) plików serwera
bazodanowego Oracle.
Po zakończeniu procesu instalacji serwera
Oracle OUI uruchomi jeszcze kreatora konfiguracji podstawowych parametrów sieciowych
– w naszym przypadku należy wybrać wartości
domyślne.
I to już wszystko. Serwer Oracle 9iR2 został
zainstalowany! To jednak dopiero początek
drogi. W celu jego efektywnego wykorzystania
konieczne jest przede wszystkim stworzenie
jakiejś bazy danych, a w dalszej kolejności
przygotowanie odpowiednich skryptów startowych, pozwalających na automatyczne podnoszenie instancji bazy danych po restarcie systemu, odpowiedniego środowiska zapewniającego automatykę wykonywania kopii zapasowych, strojenie systemu, konfiguracja pod kątem bezpieczeństwa itd. To jednak tematy na
kolejne artykuły.
W niniejszym artykule pominąłem również milczeniem (z niewielkim odstępstwem
dotyczącym pamięci RAM i przestrzeni dyskowej) aspekty związane z doborem architektury sprzętowej systemu, a więc tematami oscylującymi wokół ilości procesorów,
macierzy dyskowych, bibliotek taśmowych.
Nie są to jednak kwestie, bez omówienia
których nie da się poprawnie zainstalować
omawianego w niniejszym tekście oprogramowania, a zasługują one z całą pewnością
na osobne potraktowanie.
Do przodu!
Pomimo niewątpliwego wkładu firmy
Oracle w poprawienie komfortu instalacji
oprogramowania bazy danych, proces ten
w Linuksie wciąż wymaga (i zapewne długo
jeszcze będzie wymagał) pewnego doświadczenia i wiedzy. Samodzielne zainstalowanie motoru bazy danych w systemie RedHat 9.0 oraz późniejsze utworzenie bazy
danych da jednak użytkownikowi możliwość zapoznania się z wysoce cenioną technologią w stabilnym, dającym wysoki komfort pracy środowisku i zasmakowania
w tym co najlepsze z obu światów, tego komercyjnego, oraz tak przez nas wszystkich
cenionego Open Source.
■
www.linux-magazine.pl
Lipiec 2004
63

Podobne dokumenty