Portál AbcLinuxu, 30. dubna 2025 09:10

Instalace Oracle XE na CentOS 5.2

17.11.2008 12:47 | Přečteno: 3039× | Linux | Výběrový blog | poslední úprava: 18.11.2008 14:14

Jelikož jsem uživatel Oracle neznalý, bral jsem instalaci tohoto sytému na stejnou váhu jako v případě jiných databází, které jsem už předtím instaloval (MySQL, Postgres). Cesta ke zdárnému výsledku nebyla ale tak přímočará, jak jsem čekal. Proto nabízím jednoduchý návod, kterak dostat na počítač s CentOS 5.2 databázový systém Oracle 10g Express Edition.

Co je dobré vědět dopředu

Mnoho vrásek na čele vám ušetří vědomí, že tato verze Oracle se dodává pouze a jen ve 32-bitové verzi a proto jej není možné slinkovat s 64-bitovými programy, které se na vašem počítači případně mohou vyskytnout. Proto je lepší mít systém celý ve 32 bitech nebo mít zaráz nainstalované obě verze nějaké aplikace (což ovšem nemusí být podporovaná varianta, takže to chce trochu zkušeností).

Já se vydal tou nejméně vhodnou cestou a to instalací XE na CentOS 5.2 x86_64. Smířil jsem se s tím, že něco prostě nejde za cenu velkého zjednodušení instalačního procesu a údržby nainstalovaného produktu. Přecejen to mám pouze na "takový ten domácí vývoj" a ne pro nějaký enterprise server s desítkami tisíc dotazů za den. Je zde také možnost instalace "velkého" Oracle, který je za určitých podmínek k dispozici zdarma a k němuž 64-bitová verze existuje.

Postup instalace

Zde uvedený postup je rozšířením postupu standardního, který je uveden na Oraclích stránkách a kterým jsem se sám při prvotní instalaci řídil. Oracle také nabízí skoro-video tutoriál ve fleši, který instalační proces hezky popisuje.

Instalace

EDIT: peksha mě odkázal na návod, resp. skript, který se používá pro openSUSE (a další distra) a který celý proces instalace automatizuje

  1. Stáheme si RPM Oracle XE Universal z webu
  2. Toto RPM nainstalujeme svým oblíbeným nástrojem (např. rpm -iv oracle-xe-univ-10.2.0.1-1.0.i386.rpm jako root)
  3. Po instalaci je třeba spustit Oraclí nastavovač (/etc/init.d/oracle-xe configure), který se nás zeptá na několik otázek ohledně portů a hesla uživatele SYSTEM (zapamatovat ;))
  4. Jakmile vše proběhne, máme instalaci hotovou. Je třeba ještě dodělat pár maličkostí, aby se vše chovalo, jak má.

Spuštění DB a proměnné prostředí

Nyní už nám sice databáze běží (to zjistíme a případně napravíme příkazem /etc/init.d/oracle-xe status resp. /etc/init.d/oracle-xe start), my se k ní ovšem nemůžeme připojovat z venčí (pokud je to žádoucí) a taktéž je nám nepřístupné webové klikátko Oracle APEX (předpokládám instalaci na vzdálený počítač).

Že je vše v pořádku zjistíme příkazem lsnrctl status, který má v ideálním případě takovýto výstup:

root@ugly ~ # lsnrctl status

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 17-LIS-2008 12:19:02

Copyright (c) 1991, 2005, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date                16-LIS-2008 20:28:26
Uptime                    0 days 15 hr. 50 min. 36 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Default Service           XE
Listener Parameter File   /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/admin/listener.ora
Listener Log File         /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC_FOR_XE)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ugly)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ugly)(PORT=8080))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "XE" has 1 instance(s).
  Instance "XE", status READY, has 1 handler(s) for this service...
Service "XEXDB" has 1 instance(s).
  Instance "XE", status READY, has 1 handler(s) for this service...
Service "XE_XPT" has 1 instance(s).
  Instance "XE", status READY, has 1 handler(s) for this service...
The command completed successfully

Nejdříve je ale třeba nastavit proměnné prostředí, aby nám fungovaly všechny oraclí aplikace. Toto je možné provést buď spuštěním skriptu /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh. Obvykle je také rozumné na tento skript odkázat v nějakém přihlašovacím skriptu (např. .bashrc či .bash_profile) aby se nám proměnné nastavovaly automaticky při přihlášení.

Přístup z venčí k databází a APEXu

Dále můžeme napravit zakázaný přístup z venčí k APEXu a databázi samotné. Provedeme to v curses klikátku system-config-securitylevel připadně ručne upravíme pravidla v /etc/sysconfig/iptables. Pokud chceme APEX pro správu uživatelů a prohlížení stavu databáze (a desítky dalších užitečných věcí včetně velmi snadného vývoje webových aplikací), povolíme 8080, na kterém ve výchozím stavu APEX běží. Máme-li v úmyslu k databázi přistupovat vzdáleně, je vhodné povolit taktéž port 1521. Obojí samozřejmě může být bezpečnostním rizikem, tudíž je dobré zvážit, zda opravdu toto nastavení provedeme.

Následně je třeba povolit samotný vzdálený přístup k APEXu v nastavení Oracle. Oracle to navrhuje v manuálu udělat přímo v APEXu z localhostu. Tento postup ale nelze dost dobře použít, jelikož máme vzdálený server a přihlašování v linksu do jejich klikátka nefunguje. Využijeme tudíž utilitu sqlplus, která je ekvivalentem konzolí z jiných databázových systému.

Spustím si sqlplus, přihlásíme se jako system s heslem, které jsme zadali při instalaci a vložíme následující SQL kód: EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);.

Pozn.: trvalo mi asi 3 hodiny googlení, než jsem přišel na to, že sqlplus se mi podaří spustit jen a pouze pokud jsem přihlášený jako uživatel oracle, z roota ani jiného uživatele to nejde.

Hotovo

Rozhraní APEXu

Tím jsme instalaci dokončili a můžeme si začít hrát s databází a to buď z APEXu, který má SQL konzoli, z terminálu či z nějakého programovacího jazyka.

Rozšířeno: Upgrade APEXu na nejnovější verzi

Vzhledem ke komentáři xvaska v diskusi a mé snaze o kompletní zápisek přidávám postup upgrade APEXu

XE obsahuje ve svém instalačním RPM opravdu muzejní verzi APEXu, kterou se už dnes asi nemá moc smysl zabývat. Ukážeme si tedy, jak provést upgrade na nejnovější verzi z webu Oracle. Pokud jste se zatím s dvojkou naučili pracovat, bude vás čekat několik změn, ty jsou popsány (stejě jako postup, ze kterého vychází toto rozšíření zápisku) na oraclích stránkách.

Postup je tedy následující (předpokladem je pochopitelně funkční APEX v2):

  1. Stáhneme nový APEX z webu
  2. Rozbalíme si jej unzipem do $ORACLE_HOME, obvykle tedy do /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/apex (možná by pak neškodilo změnit vlastníka adresáře příkazem chown -R oracle:dba $ORACLE_HOME/apex)
  3. Přesuneme se do rozbaleného adresáře, přihlásíme se jako uživatel oracle a spustíme sqlplus /nolog
  4. Do konzole se přihlásíme connect sys/ as sysdba a zadáme heslo
  5. Vložíme příkaz @apexins [heslo nového uživatele ADMIN pro APEX] SYSAUX SYSAUX TEMP /i/. Instalace bude nějakou dobu trvat (Celeron 220 cca 1/2 hodiny).
  6. Dále je třeba říct Oracle, kde má hledat data APEXu, to učiníme pomocí @apxldimg.sql /usr/lib/oracle/xe/app/oracle/product/10.2.0/server (případně vložíme jinou cestu, máme-li APEX jinde)
  7. Pokračujeme příkazem @apxxepwd.sql [heslo nového uživatele ADMIN pro APEX] do stejné konzole
  8. No a nakonec zadáme příkaz @utilities/reset_image_prefix.sql a odentrujeme nabídnuté /i/. Ač by tento příkaz neměl být potřeba, bylo nutné jej spustit, jinak nefungovaly správně obrázky a skripty což znemožňovalo přihlášení a práci s APEXem
Upgradovaný APEX na verzi 3

Tím jsme hotovi a můžeme se přihlásit do http://localhost:8080/apex/apex_admin, kde si vytvoříme příslušné uživatele. Další informace o práci s touto verzí naleznete v dokumentaci.

       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

xvasek avatar 17.11.2008 16:28 xvasek | skóre: 21 | blog: | Zlín
Rozbalit Rozbalit vše Re: Instalace Oracle XE na CentOS 5.2
Odpovědět | Sbalit | Link | Blokovat | Admin
Ještě bych dodal návod na upgrade APEXu na aktuální verzi - ta dodávaná je celkem stará.
17.11.2008 17:34 outsider
Rozbalit Rozbalit vše Re: Instalace Oracle XE na CentOS 5.2
Tady je upgrade nejaky upgrade... http://www.oracle.com/technology/products/database/application_express/html/3.0.1_and_xe.html

Nebo potrebujes jeste novejsi verzi?

xvasek avatar 17.11.2008 22:38 xvasek | skóre: 21 | blog: | Zlín
Rozbalit Rozbalit vše Re: Instalace Oracle XE na CentOS 5.2
Nevím, já to už moc nepoužívám - teda rozhodně ne že by to byl špatný software, ale už dělám něco jiného. Každopádně APEX 2 a 3 jsou dost jiné softwary, se dvojkou asi (výhledově) nemá cenu ztrácet čas. 3.0.1 asi v principu stačí, divím se, že za ty roky neudělali nějaký nový build XE už přímo s trojkou.
17.11.2008 20:27 Jan Grmela | skóre: 45 | blog: Kilo šťávy z lachtana | Brno
Rozbalit Rozbalit vše Re: Instalace Oracle XE na CentOS 5.2
Dodám, právě dělám upgrade u sebe :-)
17.11.2008 17:23 dad
Rozbalit Rozbalit vše Re: Instalace Oracle XE na CentOS 5.2
Odpovědět | Sbalit | Link | Blokovat | Admin
+1, diky a otazecka - mam naisntalovan CentOS 5.0, ten 5.2 byl potreba a nebo je to jedno?
17.11.2008 18:39 pasmen | skóre: 45 | blog: glob | Praha
Rozbalit Rozbalit vše Re: Instalace Oracle XE na CentOS 5.2
Určitě potřeba není, nainstaloval jsem Oracle stejné verze na RHEL 5.0, což je to samé. Obecně jde Oracle nainstalovat skoro všude s menší nebo větší mírou obezliček typu LD_ASSUME_KERNEL apod. Já ho nainstaloval dokonce u sebe na Archu a to je co říct :-)
Max avatar 17.11.2008 21:23 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Instalace Oracle XE na CentOS 5.2
Odpovědět | Sbalit | Link | Blokovat | Admin
Tak XE je triviální, chtěl jsem na to také kdysi napsat návod. Než začli podporovat u apexu i XE verzi db, tak to byly drsný hacky na upgrade. To byly postupy na celé A4, aby to prošlo. Teď už je to komplet trivialita :).
Už jsem si udělal návody na dost věcí, nejhorší asi jsou chybějící balíčky, které se liší 32bit vs. 64bit distro apod. Myslím teď u ostrých verzí.
Zdar Max
PS:stál by někdo o osvětu v Oracle DB ? Instalace, základní nastavení a upgrade, případně doplňky jako apex apod. ?
Měl jsem sen ... :(
17.11.2008 23:02 Jan Grmela | skóre: 45 | blog: Kilo šťávy z lachtana | Brno
Rozbalit Rozbalit vše Re: Instalace Oracle XE na CentOS 5.2
Ad osvěta -- já tedy určitě. Ve škole nám sice ukázali, že "existuje nějaký ten dbMan, přes který se tam přihlásíme a Orákl nemá na konci SELECTu LIMIT" ale to je tak všechno. Co se týče provozu samotné databáze, to jsme se nedozvěděli naprosto nic. A ani vlastně to, co by nám Oracle měl přinést oproti například takovému Postgresu.
18.11.2008 10:34 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: Instalace Oracle XE na CentOS 5.2
stál by někdo o osvětu v Oracle DB ? Instalace, základní nastavení a upgrade, případně doplňky jako apex apod. ?
Sure as hell! A jestli to bude na Debianu, tak dvojnásob :-)
Ještě na tom nejsem tak špatně, abych četl Viewegha.
default avatar 24.11.2008 19:49 default | skóre: 22 | Madrid
Rozbalit Rozbalit vše Re: Instalace Oracle XE na CentOS 5.2

 

stál by někdo o osvětu v Oracle DB ? Instalace, základní nastavení a upgrade, případně doplňky jako apex apod. ? 

 

Nabízím kompletní seriál o Oracle SQL. Bude-li zájem, rád napíšu. Mám spoustu příkladů a testovacích schémat. Zaměření by bylo hlavně na vývoj pro Oracle a výkon. Kdyžtak dejte vědět. (Možno i PL/SQL)

default avatar 24.11.2008 19:59 default | skóre: 22 | Madrid
Rozbalit Rozbalit vše Re: Instalace Oracle XE na CentOS 5.2

 Asi nejlepší by bylo to nějak sesynchronizovat s Maxem… Když by byl zájem…

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.