Instalacja Oracle-XE na wirtualnej maszynie z Ubuntu

Często do celów testowych czy nauki potrzebujemy mieć dostęp do bazy Oracle 10g, nie chcemy ustawiać specjalnego serwera tylko do tego celu. Całkiem dobrze sprawdzi się maszyna wirtualna pracująca pod XenServer 5.5/5.6 z systemem Ubuntu 9.10.

KROK 1

Zakładam, że istnieje już maszyna z XenServer w wersji 5.5/5.6. Najpierw należy pobrać gotowy template dla maszyny wirtualnej. Ponieważ Oracle XE jest systemem 32-bitowym potrzebna jest właśnia taka wersja dysterybucji Linuxa. Ja znalazłem gotowe wzorce pod adresem http://www.isaaczarb.com/ubuntu-9-10-for-citrix-xenserver-5-x/ , gdzie jest ładnie opisane jak zainstalować template na XenServer.

KROK 2

Mamy już pobrany plik Ubuntu-9.1032bitPV.7z, który musimy rozpakować otrzymując Ubuntu-9.1032bitPV.xva . Teraz uruchamiamy XenCenter i po zalogowaniu się do serwera wybieramy File > Import.

Pokazuje dialog do z polem do podania lokalizacji pliku *.xva. Wybieramy nasz plik template, podajemy na jakim serwerze ma zostać zainstalowana maszyna wirtualna,  gdzie ma być umieszczony obraz dysku, parametry karty sieciowej i rozpoczyna się importowanie wzorca na serwer. W zależności od szybkości łącza trwa to krócej lub dłużej, trzeba przetransferować ok 7GB danych.

KROK 3

Maszyna powinna się już uruchomić, trzeba wejść na zakładkę konsoli i zalogować się. Na początku login to: root, a hasło: password. Po zalogowaniu się warto od razu zmienić hasło. Trzeba teraz sprawdzić adres sieciowy, który maszyna uzyskała z DHCP, ewentualnie ustawić statyczny adres IP.

KROK4

Instalacja Oracle – najłatwiej pobrać oprogramowanie bezpośrednio z repezytorium Oracle w następujący sposób:

  1. Nasza maszyna jest odpowiednio skonfugurowana do obsługi Oracle XE, ma odpowiednio dużo pamięci i odpowiednio wielki SWAP. Dlatego nie trzeba przeprowadzać zmian potrzebnych po standardowej instalacji Ubuntu.
  2. Edytujemy plik /etc/apt/sources.list dopisując na końcu linię: deb http://oss.oracle.com/debian unstable main non-free
  3. Pobieramy klucz GPG niezbędny do pobierania pakietów: $ wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle -O- | sudo apt-key add -
  4. Wykonujemy aktualizację bazy pakietów: $ sudo apt-get update
  5. Instalujemy Oracle XE: $ sudo apt-get install oracle-xe-universal
  6. Po zakończeniu pobierania (ok 260 MB) i instalacji dostajemy informację o potrzebie konfiguracji Oracle XE. Nalezy podać komendę: $ sudo /etc/init.d/oracle-xe configure
  7. Podajemy kolejno port na którym będzie dostępne narzędzie webowe [8080], port na którym będzie dostępny „database listener” [1521], oraz hasło dla użytkownika na którym będzie pracował serwer Oracle. To hasło jest jednocześnie początkowym hasłem dla użytkowników SYSTEM i SYS.
  8. Teoretycznie po wykonaniu powyższych operacji powinniśmy uruchomić w lokalnym systemie przeglądarkę i wybrać adres http://localhost:8080/apex żeby skonfigurować użytkowników, zmienić hasła itd. Ale przecież nasz system nie ma środowiska graficznego – jest jednak łatwe rozwiązanie tego problemu.
  9. Mając stację z Windows, na której działa XenCenter trzeba uruchomić tunelowanie portów poprzez SSH. Najwygodniej użyć programu PortForwarder dostępny ze strony: http://toh.fuji-climb.org/pf/
  10. Po pobraniu archiwum zip i rozpakowaniu go w dogodnym miejscu należy w pliku config.txt dopisać sekcję np. (oczywiście adresy ip trzeba odpowiedio zmienić):

    Host oracle-xe

    HostName 192.168.87.67

    User root

    LocalForward 8080 127.0.0.1:8080

    Compression yes

  11. Na stacjach z systemem Linux można stworzyć tunel poleceniem:
    ssh -L 8080:localhost:8080 user@IP_of_your_server
  12. Można też użyć Putty i skonfigurowac tunel w ramach połaczenia.
  13. Po uruchomieniu programu zostaniemy zapytani o hasło użytkownika root i jeżeli wszystko poszło tak jak trzeba, program się zminimalizuje.
  14. Uruchamiamy na lokalnym komputerze przeglądarkę wpisując adres http://127.0.0.1:8080/apex – powinna się ukazać strona logowania serwera apex. Po podaniu jako login: system oraz hasła które ustalilismy podczas konfiguracji, powinniśmy uzyskać dostęp do aplikacji. Na początek warto odblokować dostęp przez http z innych hostów w sieci, co pozwoli mieć dostęp do zarządzania ze swojego komputera.
  15. Teraz wystarczy sprawdzić dowolnym narzędziem np. Oracle SQL Developer (http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html), Aqua Studio (http://www.aquafold.com/aquadatastudio.html), Toad for Oracle (http://www.toadworld.com/Freeware/tabid/680/Default.aspx) czy wszystko działa. Jako  SSID bazy danych należy podać XE.

Opisany sposób nie wymaga instalacji środowiska graficznego na serwerze, mnie na maszynie XenServer z jednym czterordzeniowym procesorem Xeon i pamięcią 12 GB zajęło to ok. godzinę czasu.

Jak już serwer Oracle działa, można np. utworzyć użytkowników, schematy, zaimportować dane i pracować. Takie rozwiązanie sprawdziło się nawet w niewielkiej bazie z aplikacją w Java dla 10 użytkowników, obrabiającą tabele po kilka milionów wierszy.