- Łukasz Stelmach – Java JBoss Linux - http://blog.stelmisoft.pl -

Instalacja bazy danych Oracle XE 10g w 64 bitowym systemie Debian lub Ubuntu

Oracle udostępnia darmową wersję swojej bazy danych o nazwie Oracle XE 10g. Posiada ona szereg ograniczeń w stosunku do wersji komercyjnej, ale można jej zarówno używać w małych systemach oraz pozwala na zapoznanie się z samą bazą danych. Oracle udostępnia pakiety instalacyjne swojej bazy danych zarówno dla środowiska Red Hat jak i wywodzących się z Debiana. Niestety, są dostępne wersje tych pakietów tylko dla architektury 32 bitowej, co uniemożliwia przeprowadzenie prostej instalacji w środowisku 64 bitowym.

Na szczęście, nie będzie bardzo źle, wystarczy kilka dodatkowych kroków i powinno się udać.

Krok 1: Pobranie bazy danych

Bazę danych Oracle XE 10g można pobrać ze stron firmy Oracle: Oracle Database Software Downloads: Oracle Database 10g Release 2 (10.2.0.1) [1]. Należy zgodzić się tam na warunki licencji (należałoby także się z nią zapoznać) a następnie można pobrać odpowiednie pakiety z bazą danych.

Można także pobrać odpowiedni plik od razu z udostępnianego przez Oracle repozytorium dla Debiana: oracle-xe-universal_10.2.0.1-1.1_i386.deb [2].

$ wget http://oss.oracle.com/debian/dists/unstable/non-free/binary-i386/oracle-xe-universal_10.2.0.1-1.1_i386.deb

Próba instalacji tego pakietu w środowisku 64 bitowy skończy się takim komunikatem błędu:

# dpkg -i oracle-xe-universal_10.2.0.1-1.1_i386.deb
dpkg: błąd przetwarzania oracle-xe-universal_10.2.0.1-1.1_i386.deb (--install):
 architektura pakietu (i386) nie zgadza się z architekturą systemu (amd64)
Wystąpiły błędy podczas przetwarzania:
 oracle-xe-universal_10.2.0.1-1.1_i386.deb

Krok 2: Instalacja dodatkowych pakietów

Należy zainstalować w systemie także obsługę bibliotek 32 bitowych:

# aptitude install libc6-i386

Pakiet ten może już być zainstalowany.

Dodatkowo należy zainstalować pakiet bc (także może już znajdować się w systemie):

# aptitude install bc

Należy także zainstalować 32 bitową wersję pakietu libaio.

Dla Ubuntu Lucid najnowszą wersję pakietu można pobrać ze strony Download Page for libaio1_0.3.107-3ubuntu2_i386.deb on Intel x86 machines [3].

Dla Debiana Lenny najnowszą wersję pakietu można pobrać ze strony Download Page for libaio1_0.3.107-3_i386.deb on Intel x86 machines [4].

Instalacja tego pakietu jest możliwa przy użyciu takiej komendy (powoduje instalację pakietu i ignorowanie architektury):

# dpkg -i --force-architecture libaio1_*_i386.deb

Podczas instalacji zostanie wyświetlone ostrzeżenie o niezgodności architektury, ale nie powinny wystąpić inne problemy.

Krok 3: Instalacja Oracle XE 10g

Po niezbędnych krokach przygotowawczych czas na instalację samej bazy danych:

# sudo dpkg -i --force-architecture oracle-xe-universal_10.2.0.1-1.1_i386.deb

Po zainstalowaniu pakietu pozostaje go jeszcze skonfigurować przy użyciu polecenia:

# /etc/init.d/oracle-xe configure

Najpierw zostaniemy poproszeni o wskazanie portu HTTP, poprzez który będziemy mogli połączyć się z interfejsem do zarządzania bazą danych, domyślnie jest przyjmowany port 8080. W moim przypadku port ten często jest zajęty przez inne aplikacji, więc zmieniłem go na 8081:

Specify the HTTP port that will be used for Oracle Application Express [8080]:8081

Teraz należy podać domyślny port na którym będzie nasłuchiwała baza danych na przy chodzące połączenia z aplikacji, w przypadku Oracle jest to port 1521:

Specify a port that will be used for the database listener [1521]:

Należy podać hasła do konta administracyjnego:

Specify a password to be used for database accounts.  Note that the same
password will be used for SYS and SYSTEM.  Oracle recommends the use of
different passwords for each database account.  This can be done after
initial configuration:
Confirm the password:

Ostatnie pytanie pozwoli na podjęcie decyzji, czy Oracle ma startować podczas uruchamiania komputera.

Z tego co widzę w skryptach startowych, jeżeli wyłączymy tę opcję, to pozbędziemy się możliwości korzystania ze skryptu /etc/init.d/oracle-xe w celu zatrzymywania i startowania bazy danych (ręcznego, nie podczas uruchamiania systemu). Dlatego też proponuję tutaj zostawić odpowiedź y nawet w sytuacji, gdy nie chcemy aby baza danych startowała za każdym razem i po instalacji przeczytać punkt o 6.

Do you want Oracle Database 10g Express Edition to be started on boot (y/n) [y]:y

Nastąpi teraz konfiguracja bazy danych, po której powinna już działać. Pozostaje tylko połączyć się ze wskazanym adresem i zalogować do bazy danych.

Krok 4: Konfiguracja zmiennych środowiskowych

Można jeszcze dodać do ścieżki poleceń katalog z plikami wykonywalnymi Oracla.

Jeżeli jesteśmy jedynym użytkownikiem komputera, można je zdefiniować w pliku ~/.bashrc danego użytkownika. W przypadku gdy użytkowników jest kilku, warto utworzyć plik /etc/profile.d/oracle.sh. Plik ten będzie wczytywany przy logowaniu każdego użytkownika. Oczywiście, należy zwrócić uwagę odpowiednie uprawnienia do tego pliku:

# chmod 644 /etc/profile.d/oracle.sh

Zawartość pliku oracle.shlub też parametry, które należy dopisać w profilu danego użytkownika:

1
2
3
4
5
ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_HOME
export ORACLE_SID=XE
export PATH

Pozostaje się teraz zalogować ponownie (lub wykonać plik w ramach sesji) aby zmienne zaczęły działać.

Krok 6: Zatrzymywanie i uruchamianie bazy danych Oracle XE 10g

Jeżeli baza danych ma nie być uruchamiana podczas startu systemu, najlepiej jest usunąć odpowiednie linki z katalogów rc?.d:

# rm /etc/rc?.d/S??oracle-xe

Uruchomienie serwera jest możliwe poprzez wydanie komendy:

# /etc/init.d/oracle-xe start

Zatrzymanie serwera natomiast następuje po użyciu polecenia:

# /etc/init.d/oracle-xe stop

Pozostałe opcje można zobaczyć po użyciu polecenie:

# /etc/init.d/oracle-xe
Usage: /etc/init.d/oracle-xe {start|stop|restart|force-reload|configure|status|enable|disable}

Po tych operacjach powinniśmy dysponować działającą bazą Oracle XE 10g w środowisku 64 bitowym.

Źródła