Oracle on Linux – ciąg dalszy

Ewa Palarczyk
ewa.palarczyk@mp.pl
Na podstawie wiadomości znalezionych w Internecie

Nowości

Od czasu ostatniego artykułu, na linuksowym rynku wydarzyło
się sporo. Jeszcze kilka miesięcy temu administrator Oracle Real Application
Clusters na Linuksie musiał pracować z raw devices. W międzyczasie światło
dzienne ujrzał Oracle Cluster File System (OCFS) i stał się produktem dostępnym
na rynku. Dzięki OCFS użytkownicy, a raczej administratorzy Oracle9i Real
Application Clusters mogą zapomnieć o zarządzaniu i konfigurowaniu raw
devices
i znacznie ułatwić sobie życie.

W przeciwieństwie do mało elastycznych raw devices,
klastrowy system plików jest alternatywą, która łatwo integruje się z Real
Application Clusters. Interfejs ten wyda się znajomy użytkownikom systemu plików
POSIX, dając wygodną perspektywę plików bazy danych i łatwość
rozszerzania plików, dodawania nowych i kopiowania istniejących bez konieczności
zmiany wielkości partycji, na której te pliki się znajdują.

Klastrowy system plików umożliwia administratorowi
instalację bazy ze współdzielonym „Oracle Home” – podstawowym
katalogiem, w którym instalowany jest Oracle. W sytuacji, gdy Oracle Home jest
dostępny na wspólnym dysku, każda działająca instancja Oracle będzie się
wykonywała z tych samych plików binarnych. Dzięki temu, zredukowaniu ulega
znacznie czas instalacji i ilość wymaganej przestrzeni dyskowej. Dzięki współdzielonemu
systemowi plików, różne instancje bazy mogą współdzielić zarchiwizowane
pliki dziennika, co znacznie ułatwia odzysk, jako że każdy węzeł posiada
dostęp do każdego potrzebnego w danym momencie zarchiwizowanego pliku
dziennika. Współdzielony Oracle Home pozwala również na korzystanie ze wspólnych
plików kontrolnych, dzięki czemu administrator może – pracując na dowolnym węźle
– mieć dostęp do całego systemu.

OCFS spełnia powyższe wymogi stawiane klastrowym systemom
plików, przy czym nie można jeszcze mówić o OCFS, jako o oprogramowaniu
uniwersalnym. Należy się spodziewać takiej funkcjonalności w niedalekiej
przyszłości. Zaowocuje to zwiększonymi możliwościami RAC w działaniu na
współdzielonych plikach wykonywalnych i tym samym można będzie mówić o
OCFS jako o prawdziwym klastrowym systemie plików.

OCFS umożliwia buforowanie systemu plików dla pewnych
typowych operacji. Poprawia to wydajność dla typowych operacji na systemie
plików. Wykonywalny kod jest przechowywany w pamięci. I/O wykonany na plikach
spoza bazy danych będzie zapisany z opóźnieniem. Oracle Cluster File System,
dystrybuowany między innymi przez Red Hat, z którym Oracle blisko współpracuje
(zwłaszcza w zakresie RH Advanced Server), umożliwia wszystkim węzłom równoczesny
dostęp do danego systemu plików. Początkowo przewiduje się pracę OCFS na
około czterech do ośmiu serwerach, przy czym wydaje się, że ograniczenie to
szybko zostanie pokonane. OCFS korzysta między innymi z O_DIRECT (bezpośredni
I/O dysku), dzięki czemu osiągnięto wydajność serwera porównywalną z
serwerem pracującym na raw devices. Baza Oracle 9.2.0.2 rozpoznaje pliki
na OCFS i otwiera je w prawidłowym trybie. W RH Advanced Server 2.1
zaimplementowano w jądrze 2.4.9 dodatkowe funkcje (omówione w poprzednim
artykule, Oracle’owe PLOUG’tki Nr 24), natomiast w innych dystrybucjach i
kolejnych wersjach dostępna będzie wersja uniwersalna O_DIRECT.

OCFS wspiera wszystkie pliki bazy Oracle – pliki danych,
kontrolne, dziennika powtórzeń i zarchiwizowane pliki dziennika powtórzeń.
OCFS został zaprojektowany z myślą o zarządzaniu danymi na wielu systemach
serwerowych i przechowywania danych. Klastrowy system plików prezentowany przez
Oracle zapewnia, że dane pozostają spójne nawet w sytuacji, gdy wielu użytkowników
równocześnie modyfikuje pliki na danym dysku.

Charakter OCFS wymaga stałej pracy nad jądrem Linuksa. Każde
I/O z dysku przechodzi przez ten system plików. Tym samym OCFS musi być bardzo
stabilny. Kolejnym etapem rozwoju OCFS ma być praca nad wsparciem dla
normalnych plików – to znaczy nie tylko plików bazodanowych, ale również
plików wykonywalnych Oracle.

Automatyczna konfiguracja systemu umożliwia bardzo szybkie i
łatwe ustawienie systemu w klaster. OCFS obsługuje systemy do 32 węzłów.
Istnieje również możliwość określenia plików i katalogów jako lokalne.
Dzięki temu administrator lub użytkownik może trzymać pliki, które są
unikalne dla danego węzła. Każdy węzeł widzi tym samym swoją wersję. Ta
funkcjonalność nazywana bywa CDSL – Context Dependent Symbolic Links. Dzięki
OCFS, urządzenia mogą być montowane poprzez nazwę (etykietę), administrator
zaś nie musi sprawdzać rzeczywistych urządzeń w systemie. Zaktualizowane
polecenie mount, dystrybuowane z pakietami, będzie automatycznie znajdowało
dyski. Rozwiązuje to omawiany w poprzednim artykule problem, gdzie dyski
logiczne na dołączanych do klastra węzłach mogły być wykrywane w różnej
kolejności, co mogło powodować znaczne utrudnienia w automatycznym montowaniu
dysków OCFS przy procesie bootowania systemu.

Jak od strony praktycznej wygląda praca z oracle’owym
systemem plików? Generalnie do konfiguracji OCFS zaleca się wykorzystywanie
narzędzia ocfstool, dzięki któremu należy wygenerować plik
konfiguracyjny ocfs.conf. Następnie należy utworzyć skrypt, który będzie
uruchamiał moduł ocfs.o przy starcie systemu. Kolejnym krokiem jest
utworzenie partycji OCFS np. przy pomocy programu fdisk. Zaleca się, aby
system został spartycjonowany zgodnie ze standardami Oracle Optimal Flexible
Architecture (OFA). Po utworzeniu punktów montowania systemu plików OCFS, należy
sformatować partycje i dokonać dalszych ustawień przy pomocy narzędzia ocfstool.
W ustawieniach zaleca się pozostawić domyślną wartość wielkości bloku –
128. Montowanie systemu plików OCFS powinno się odbywać metodą partycja po
partycji, aby system został zainicjalizowany poprawnie.

Do zmiany konfiguracji parametrów systemu Linux, w przypadku
dystrybucji Red Hat, Oracle dostarcza skrypt rhas_ossetup.sh Kolejnym krokiem,
jaki należy wykonać, aby umożliwić poprawne funkcjonowanie OCFS, jest
konfiguracja partycji swap. Należy dokonać alokacji przynajmniej 8 GB na
partycję swap. Należy również pamiętać o takich ustawieniach sieci, aby ładowały
się automatycznie podczas startu systemu.

Jeśli chodzi o dystrybucję OCFS i politykę Oracle w
zakresie tego oprogramowania, firma udostępniła kod źródłowy OCFS’a, który
rozpowszechniany jest zgodnie z licencją GPL. Tym samym oprogramowanie OCFS może
być pobrane ze stron Oracle za darmo. Dzięki temu programiści rozwijający
przede wszystkim kernel Linuksa, mogą rozwijać moduły jądra odpowiadające
za pracę w systemie klastrowym przy wykorzystaniu tego kodu. Z drugiej strony
wydaje się, iż w środowisku użytkowników Linuksa, którego fundamentem jest
open source i które znane jest powszechnie ze swojej niechęci do rozwiązań
komercyjnych, chętniej przyjmie się tego typu oprogramowanie, niż wersja płatna.

Darmowy OCFS jest konkurencją dla podobnych systemów plików
tworzonych przez partnerów Oracle (np. Veritas Software, PolyServe, Sistina
Software). Dla tych firm oznacza to, że będą one musiały wzbogacić swoje
produkty o tzw. wartość dodaną, aby stały się atrakcyjne dla klientów na
tyle, aby byli oni skłonni za te produkty płacić. Należy dodać, że również
Red Hat pracuje nad własnym klastrowym systemem plików. Prezentacji tegoż
systemu można oczekiwać jeszcze w tym roku. Będzie to częścią większej
kampanii Red Hat’a w zakresie oprogramowania do zarządzania dużymi sieciami.

W pierwszej wersji oracle’owego systemu plików, użytkownik
ma do wyboru pracę z OCFS lub z raw devices. Nadal trwają prace nad włączeniem
kodu tegoż systemu plików do każdego jądra linuksowego, nie tylko wybranych
wersji jądra np. dla RH Advanced Server. Prace te polegają na próbach
dostosowania kodu OCFS do linuksowych standardów programowania. OCFS ma być
uniwersalnym systemem plików dla Linuksa, niezależnie od dystrybucji na jakiej
pracujemy. Dostosowanie kodu OCFS do linuksowych standardów pozwoli społeczności
linuksowej lepiej zapoznać się z systemem i podjąć prace nad jego rozwojem i
rozbudową. Takie działanie pozwala Oracle’owi na wspieranie systemu
operacyjnego, będącego jednym z podstawowych w obecnej strategii firmy, bez
jednoczesnej konieczności ponoszenia dodatkowych kosztów na rozwój całego
systemu.

Podsumowując, wydaje się, że OCFS powinien zwiększyć
popularność Oracle RAC na Linuksie. Praca z raw devices, które są mało
elastyczne, gdzie konieczna jest alokacja dużych rozmiarów przestrzeni
dyskowych, była dość uciążliwa. OCFS ma zachęcić do pracy z Oracle RAC
poprzez łatwość administracji i większą wydajność. W niedalekiej przyszłości
Oracle planuje udostępnić kolejne projekty klastrowe dla Linuksa, będące
elementami nowych wersji OCFS.

Kolejnym świeżo udostępnionym szerokiej publiczności
rozwiązaniem jest łata do jądra linuksowego wspierająca FireWire w
konfiguracji współdzielenia dysków. Taka propozycja wydaje się interesująca
dla mniej zamożnych użytkowników, jako że pozwala na stosunkowo tanią
konfigurację klastrów Oracle na Linuksie. FireWire (IEEE 1394), przez długi
czas kojarzony z podłączaniem do komputerów PC urządzeń peryferyjnych typu
kamery cyfrowe, drukarki, okazał się świetnym rozwiązaniem, umożliwiającym
pracę Oracle na wielu komputerach lub węzłach. Wśród zalet używania
FireWire wymienić należy przynajmniej kilka: technologia ta umożliwia
transfer do 400 megabitów/sekundę, około 30 razy większy od USB. FireWire
następnej generacji mają osiągać transfer 800, 1600 i 3200 Mb/s. FireWire
wspiera aż 63 urządzenia peryferyjne. Standard może pracować w topologii
drzewa z 63. węzłami, gdzie do każdego węzła podłączyć można 16 urządzeń.
Urządzenia FireWire są typu hot-pluggable, co oznacza, że urządzenie może
być włączane/wyłączane w trakcie pracy, a także bez konieczności restartu
komputera. Dodatkowo kable FireWire są łatwe do podłączenia – bez znajomości
ID urządzenia, przełącznika DIP, terminatorów itp.

Łata na urządzenia FireWire jest również udostępniana
przez Oracle na zasadach licencji GNU GPL. Umożliwia ona utworzenie w tani,
szybki i łatwy sposób wielowęzłowego klastra Oracle na Linuksie, wykorzystując
połączenia wewnętrzne standardu IEEE 1394 i współdzielony dysk twardy, również
FireWire. W chwili obecnej jednak łata jest dopiero w fazie rozwojowej, udostępniona
użytkownikom w celach testowych i deweloperskich; tym samym nie nadaje się do
zastosowania w środowisku produkcyjnym. Należy się jednak spodziewać
szybkiego dokończenia prac nad tą wersją. W chwili gdy Oracle rozpoczął
pracę nad FireWire, istniały sterowniki tego urządzenia dla Windows, Mac OS,
oraz Linuksa, przy czym nie wspierały one wspólnego systemu przechowywania
danych. Oznaczało to, że system operacyjny wiązał dany sterownik z określonym
dyskiem dla konkretnej maszyny. Aby FireWire mógł być wykorzystywany do rozwiązań
klastrowych, konieczne było takie rozwiązanie, które zapewniałoby nie wyłączny
dostęp do dysku, tak aby liczne komputery – węzły klastra – miały dostęp
do tego samego systemu przechowywania danych. Udało się to zrobić dzięki
usunięciu maski bitowej, która identyfikuje maszynę podczas procesu
logowania. Rezultatem końcowym jest nie wyłączny dostęp do dysku twardego
FireWire. Pozostałe węzły w klastrze logują się do tego samego dysku
podczas swoich sesji, wykorzystując ten sam zmodyfikowany sterownik, dzięki
czemu wszystkie mają nie wyłączny dostęp do tego dysku.

Obecnie wydaje się, że maksymalną liczbą węzłów RAC
pracujących w oparciu o nowe sterowniki FireWire jest 4. Aczkolwiek samo
FireWire zostało zaprojektowane do pracy z większą liczbą dysków – aż
64.

Po załadowaniu modułów sterownika i jego łaty, Linux
rozpoznaje dołączony dysk FireWire jako urządzenie SCSI. W tym momencie dysk
staje się dostępny dla standardowych narzędzi systemu – np.
partycjonowania, tworzenia systemu plików. Przykładowo w przypadku Oracle RAC,
tworzy się wtedy partycje dla wszystkich plików i łączy raw devices z
odpowiednimi partycjami, lub – korzystając z Oracle Cluster File System –
tworzy się ten sam system plików na wszystkich węzłach, bez konieczności
manualnego tworzenia partycji.

Łata FireWire jest atrakcyjnym rozwiązaniem umożliwiającym
testowanie Oracle Real Application Clusters w stosunkowo tanim środowisku. Gdy
rozwiązanie wejdzie w fazę produkcyjną, RAC – dzięki swej konkurencyjności
cenowej – może stać się interesującym rozwiązaniem dla sektora średnich
przedsiębiorstw, których na droższe rozwiązania nie stać.

Trochę praktyki

Tyle o nowościach. W poprzednim artykule obiecałam zająć
się pracą Oracle na Linuksie od strony praktycznej. Konfiguracja Linuksa pod kątem
pracy z Oracle odbywa się poprzez odpowiednie ustawienia parametrów w pliku
konfiguracyjnym Oracle znajdującym się w katalogu /etc. Jest to katalog, w którym
znajduje się większość plików konfiguracyjnych systemu. Ważnym katalogiem
z punktu widzenia administracji Oracle i definiowaniu parametrów systemu „w
locie”, bez konieczności restartu systemu jest katalog /proc – mieszczący
deskryptory procesów systemu. /proc jest jednocześnie systemem plików,
zamontowanym w katalogu /proc, co można sprawdzić w pliku /etc/fstab:

none /proc proc defaults 0 0

lub wydając polecenie mount:

none on /proc type proc (rw)

System plików proc może zostać włączony lub wyłączony
w kompilacji jądra. Administrator może odczytywać stąd informacje o
parametrach pracującego systemu, a także modyfikować te ustawienia
(podkatalog /proc/sys). Nadawanie nowych wartości parametrom systemu odbywa się
poprzez wydanie polecenia echo, np.

echo "2147483649" > /proc/sys/kernel/shmmax

Należy przy tym pamiętać, że tak wprowadzone zmiany
zostaną utracone w trakcie restartu systemu, dlatego też powinno się takie
polecenia umieścić w skryptach startowych systemu.

Ustawienia parametrów systemów mogą być również
wprowadzane w pliku /etc/sysctl.conf, np.

kernel.shmmax=2147483648

Ustawienia, jakie należy wprowadzić do prawidłowej pracy
Oracle na Linuksie, nie wymagają rekompilacji jądra systemu. Konfigurację
systemu można przeprowadzić wyłącznie dzięki zmianom parametrów plików
katalogu /proc. Co więcej, jeżeli zakupimy RH Advanced Server i zainstalujemy
moduł OCFS, utracimy wsparcie Oracle w przypadku rekompilacji jądra. Ponowna
kompilacja jądra jest jednak czasem konieczna, np. w sytuacji dodania nowych
sterowników sprzętu, czy włączania obsługi urządzeń SCSI.

W przypadku strojenia Linuksa do wydajnej pracy Oracle, należy
zwrócić uwagę przede wszystkim na zasoby CPU, system pamięci, system I/O, w
tym ilość i wydajność dysków. W związku z tym należy pamiętać o
ustawieniach plików w katalogu /proc, takich jak:

  • /proc/cpuinfo – pokazuje informacje o procesorach dostępnych
    w systemie: typ procesora, model, częstotliwość zegara, pamięci cache
    drugiego poziomu
  • /proc/meminfo – jest to jeden z najczęściej przeglądanych
    plików, zawiera informacje o wykorzystaniu pamięci RAM w systemie. Są tu
    między innymi następujące parametry:

    • Mem – ilość pamięci RAM w systemie z podziałem
      na pamięć wykorzystaną, wolną, dzieloną, buforowaną i cache.
    • Swap – ilość pamięci swap, z podziałem na używaną
      i wolną
    • MemTotal – całkowita ilość fizycznej pamięci
      RAM
    • MemFree – ilość niewykorzystanej przez system
      pamięci RAM
    • HighTotal i HighFree – ilość całkowitej i wolnej
      pamięci, która nie jest bezpośrednio zamapowana do przestrzeni jądra.
  • /proc/devices – pokazuje urządzenia znakowe i blokowe,
    które są w danej chwili obsługiwane przez jądro. Nie wyświetla modułów
    dostępnych, które nie są załadowane do jądra.
  • /proc/filesystems – pokazuje systemy plików aktualnie
    obsługiwane przez jądro i czy są one obecnie zamontowane.
  • /proc/interrupts – pokazuje numer przerwania, liczbę
    przerwań przypadającą na IRQ wg procesora, typ przerwania i nazwę urządzenia
    przypisaną danemu przerwaniu.
  • /proc/iomem – wyświetla aktualną mapę pamięci
    systemu dla danych urządzeń.
  • /proc/loadavg – pokazuje średnie obciążenie,
    wykorzystanie procesora w różnych okresach czasu, oraz liczbę aktualnie
    uruchomionych procesów i całkowitą liczbę procesów.
  • /proc/mdstat – zawiera informacje przydatne dla systemu
    o wielu dyskach, charakteryzuje urządzenia md działające w systemie, np.
    konfigurację RAID
  • /proc/mounts – wygląd pliku zbliżony do /etc/mtab,
    ukazujący wszystkie aktualnie zamontowane systemy plików, przy czym
    informacje tutaj mogą być bardziej aktualne.
  • /proc/partitions – zawiera bardzo szczegółowe
    informacje o partycjach dostępnych w systemie.
  • /proc/pci – przedstawia szczegółową listę urządzeń
    PCI w systemie.
  • /proc/stat – zawiera różne statystyki o systemie od
    czasu ostatniego restartu.
  • /proc/slabinfo – ten plik również przedstawia
    informacje o systemie pamięci. Jądra od 2.2 wzwyż używają tak zwane slab
    pools
    do zarządzania pamięcią ponad poziomem strony.

Wirtualny system plików proc może być przeglądany za
pomocą poleceń cat, free, top, more i less.

Wśród przydatnych narzędzi do monitorowania systemu
wymienić należy top (wyświetlający najważniejsze informacje o
systemie w danej chwili), free, memstat, vmstat czy iostat.

Aby Oracle mógł prawidłowo funkcjonować na Linuksie, należy
pamiętać o pewnych podstawowych zasadach. Po pierwsze należy zapewnić
odpowiednią przestrzeń na pliki tymczasowe – katalog /tmp powinien mieć
przynajmniej 400MB. Jeżeli nie zapewnimy odpowiedniej wielkości tego katalogu,
instalacja Oracle się nie powiedzie. Kolejną rzeczą o jakiej trzeba pamiętać
jest minimalna wielkość pamięci swap, która powinna wynosić co najmniej
1GB. I wreszcie Oracle się zainstaluje, ale nie zadziała, jeżeli system będzie
pozbawiony środowiska rozwojowego (pakiety te są włączane domyślnie do
standardowej instalacji systemu).

Należy pamiętać, że kluczem do wydajnej pracy Oracle na
Linuksie jest prawidłowa instalacja i konfiguracja systemu operacyjnego. Przy
instalacji zaleca się utworzenie kilku odrębnych partycji, między innymi dla
zwiększenia bezpieczeństwa pracy systemu: partycji głównej, /boot, /home, /tmp,
/usr (przynajmniej 3 GB, tyle zajmuje np. Advanced Server i dodatkowo miejsce na
instalację pakietów), /var i oczywiście swap. Ważną rzeczą w przypadku
samodzielnego wyboru instalowanych pakietów, jest zaznaczenie pakietów z grupy
„Software Development”, koniecznych do prawidłowego funkcjonowania Oracle,
jak i korzystania z takich możliwości, jak asynchroniczne I/O. Warto
przypomnieć, jak radzić sobie z najczęściej występującymi podczas
instalacji problemami.

  • Jeżeli system się nie chce zainstalować i możemy
    przypuszczać, że dzieje się tak na skutek braku sterownika do nowego urządzenia,
    należy przeprowadzić instalację, w której możliwe będzie dodanie
    sterownika z własnej dyskietki (w przypadku Red Hat jest to opcja
    instalacji dd).
  • Jeżeli podłączone są dwa kontrolery SCSI, należy
    pamiętać o wyłączeniu jednego z nich, jako że system może podejmować
    próby bootowania z niewłaściwego kontrolera.
  • Niekiedy program do partycjonowania fdisk nie wyświetla
    kontrolera RAID, dlatego zaleca się podawanie całej nazwy urządzenia przy
    poleceniach fdisk (np. fdisk /dev/ida/c0d0).

Z ogólnych zasad dotyczących konfiguracji systemu:

  • Nie zaleca się z korzystania z usług typu telnet, ftp,
    rsh, rexec, rlogin, stanowiących lukę bezpieczeństwa w systemie, na którym są
    zainstalowane.
    W każdej dystrybucji Linuksa dostępny jest darmowy pakiet openssh.
  • Zaleca się ustawienie zakresu portów lokalnych używanych
    przez protokoły TCP i UDP:


    echo 1024 65000 > /proc/sys/net/ipv4/ip_
    local_port_range

  • Powinno się ustawić maksymalną liczbę procesów
    przypadających a użytkownika na 16384. Wykonuje się to poleceniem:


    ulimit -u 16384

  • Dla prawidłowej pracy Oracle ważne jest również
    odpowiednie ustawienie semaforów, odpowiadających za wykorzystanie poszczególnych
    procesów. Można je ustawić poleceniem


    echo "100 32000 100 100" > /proc/sys/kernel/sem

    gdzie pierwsza wartość to SEMMSL (najwyższy parametr
    PROCESSES
    w systemie jakiejkolwiek bazy Oracle + 10; minimalna wartość to 100). Druga
    wartość to wartość parametru SEMMNS (suma parametru PROCESSES dla każdej
    bazy, minimum 256), trzecia – SEMOPM (maksymalna liczba operacji przypadających
    na wywołanie semop, zalecana wartość wynosi 100). Ostatnia wartość określa
    maksymalną liczbę ustawień semaforów w całym systemie (SEMMNI, minimum
    100).

Obok odpowiednio strojonej bazy, konieczne jest okresowe
monitorowanie ustawień parametrów jądra. Tak pozyskane informacje są żywymi
statystkami systemu i muszą być gromadzone w różnych punktach pracy, przy różnej
wielkości obciążeniu – od średniego do maksymalnego. Monitorowanie i
strojenie systemu operacyjnego i bazy danych muszą iść równolegle.

Do zbierania informacji o pamięci
w systemie służą, omawiane wcześniej pliki /proc/meminfo oraz /proc/slabinfo.

Najczęściej stosowanym narzędziem do monitorowania sieci
jest netstat, zwykle stosowany z opcjami -t, -a, -n. Informacje na
temat sieci można również uzyskać z systemu plików proc,
a zwłaszcza z plików /proc/net/dev, /proc/net/snmp i /proc/net/softnet_stat.

Wśród innych przydatnych narzędzi do monitorowania systemu
wymienić należy vmstat – przedstawia dane na temat pamięci
wirtualnej, sar – do mierzenia aktywności systemu, iostat
przedstawia statystyki I/O i procesora dla partycji i urządzeń, oraz polecenie
top prezentujące najważniejsze uruchomione procesy procesora.

W przypadku wystąpienia awarii systemu, chcąc poznać źródło
jej wystąpienia, interesujących informacji należy szukać przede wszystkim w
kilku miejscach. Podstawowym plikiem, do którego należy zaglądać w przypadku
jakichkolwiek błędów systemu jest /var/log/messages. Warto również korzystać z narzędzi dostarczających
informacje o całym systemie – dmesg, pokazujących informacje o urządzeniach
PCI – lspci, zależności między urządzeniami – lsof, czy wyświetlających
załadowane moduły jądra – lsmod. Zaleca się również, aby włączyć
zmienną sysrq, co znacznie ułatwia debugowanie:

echo 1 > /proc/sys/kernel/sysrq

Mając tę opcję włączoną, nawet w przypadku awarii
administrator ma dostęp do pewnych informacji dzięki użyciu kombinacji
klawiszy ALT, SysRq
i odpowiednia litera sysrq.

Przykładowo:

Do debugowania można wykorzystać konsolę szeregową i narzędzie
netdump. Netdump działa w architekturze klient – serwer. W
przypadku awarii systemu, cały obraz pamięci zrzucany jest do serwera netdump.

Podsumowanie

Rynek linuksowy w Oracle’u jest stosunkowo młody, stąd
rozwija się tak dynamicznie. Tak duże tempo pojawiania się zmian i nowości
zostanie zapewne utrzymane do momentu,
aż para Oracle i Linux osiągnie w jakimś stopniu dojrzałość. Warto
dlatego, wydaje mi się, śledzić kierunki
w jakich ta para podąża i poszerzać wiedzę z zakresu znajomości systemu
Linux, jako że jego znaczenie
w Oracle’u może tylko rosnąć.