Portál AbcLinuxu, 30. dubna 2025 09:10
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.
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.
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.
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
rpm -iv oracle-xe-univ-10.2.0.1-1.0.i386.rpm
jako root)/etc/init.d/oracle-xe configure
), který se nás zeptá na několik otázek ohledně portů a hesla uživatele SYSTEM (zapamatovat ;))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í.
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.
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.
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):
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
)oracle
a spustíme sqlplus /nolog
connect sys/ as sysdba
a zadáme heslo@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).@apxldimg.sql /usr/lib/oracle/xe/app/oracle/product/10.2.0/server
(případně vložíme jinou cestu, máme-li APEX jinde)@apxxepwd.sql [heslo nového uživatele ADMIN pro APEX]
do stejné konzole@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 APEXemTí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.
Tiskni
Sdílej:
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
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)
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.