Oracle - 1 (úvod, distribuce, OracleXE)
O Oracle je na každém rohu k zaslechnutí, jaký je to král mezi databázemi. Jak nad něj žádná jiná databáze nemá a na jeho cenu taktéž. Pojďme se tedy podívat, co nám společnost Oracle mj. nabízí.
Úvod
Společnost Oracle nabízí hodně řešení, my se ovšem zaměříme na čtyři, resp. pět jejích produktů (OracleXE, APEX, Oracle 10 a 11, OracleAS). V dnešním díle se nebudeme s ničím moc párat a místo teorií se přímo vrhneme do instalace OracleXE s nejnovější verzí APEX (3.1.2). Teprve až v dalších dílech si na plné verzi databáze vysvětlíme hlubší funkce, správu paměti apod.
Takže rychle a zjednodušeně o tom nezbytném:
PL/SQL (Procedural Language/Structured Query Language)
Jedná se o procedurální nadstavbu nad klasickým SQL, tzn., že pomocí PL/SQL píšeme různé procedury, které volají selecty, vytvářejí triggery aj. Oracle PL/SQL vymyslel a založil ho na programovacím jazyku ADA. PL/SQL se rychle rošířilo a jeho deriváty převzaly i jiné databáze.
APEX (Oracle Application Express)
Dříve nazýváno HTML DB, je webové vývojové prostředí postavené nad databází Oracle. Rychle se v něm dá udělat webová aplikace, jenž má data v Oracle databázi. Jedná se o menší klikací aplikaci s možností PL/SQL. Tím, jak je klikací, je také omezena, takže se hodí na jednoduší věci pro menší firmy a ne nějaké komplexní projekty.
- OracleXE (Express Edition)
Je postavena na Oracle 10, má stejné jádro jako Oracle 10, takže kompatibilita je zaručena, a je možno později přejít na plnou verzi Oracle. Je zcela zdarma, což je doprovázeno jistými omezeními:
- limit velikosti databáze: 4 GiB (skoro 1 GiB je už standardně sežrán, něco si veme integrovaný APEX, něco jiné věci)
- limit velikosti operační paměti: 1 GiB
- limit počtu procesorů: 1
- může běžen jen jednou na fyzickém PC, tzn. virtualizace s 10 běžícími systémy a na všech OracleXE asi padá
- je dostupný pouze ve 32bit verzi
- jen pro Linux a Windows
- nefunguje HTTPS, jelikož se jako HTTP server nepoužívá Apache, ale Oracle Net Listener
- není firmou Oracle podporována (chceš podporu, připlať si za plnou verzi db, nebo spoléhej po zaregistrování na ochotné rádce v Oracle fóru). (Ale na druhou stranu je u něj velmi zjednodušená instalace (jsou dodávány deb a rpm balíčky), tudíž je bezproblémové ji kdekoliv rychle zprovoznit.)
- OracleXE v sobě integruje APEX verze 2.1
Podporované distribuce
Oracle v zásadě podporuje jen enterprise distribuce. Těmi jsou RHEL (Red Hat Enterprise Linux), SLES (SUSE Linux Enterprise Server) a dá se říci, že i novinka OEL (Oracle Enterprise Linux). Již delší dobu existuje projekt "Oracle Unbreakable Linux Support". Tím se Oracle zavazuje, že bude poskytovat podporu k RHEL operačním systémů, a to i v případě, že na nich nepoběží produkty Oracle. Podporu dodává prostřednictvím předplatitelské sítě Unbreakable Linux Network (ULN). Otázkou ovšem je, na co všechno skutečně podporu dodává, vzhledem k vyjádření samotného Red Hatu.
OEL je vlastně RHEL. Oracle vzal zdrojové kódy RHEL, vyměnil loga a pár drobností a má OEL (stejně jako to dělá např. CentOS). OEL stojí 20 USD a plně jej podporuje Oracle. Výhody jsou zřejmé. Podporu vám dělá pro operační systém i databázi jedna a ta samá firma a máte velmi levný a podporovaný derivát operačního systému RHEL.
Pokud nechceme platit za enterprise řešení, tak můžeme sáhnout po jejich derivátech. Jedním z nejlepších kandidátů pro Oracle je bezesporu CentOS a na tom také budeme vše dělat (stávající verze 5.2). V posledních dílech seriálu zmíním i instalaci na nepodporovaných distribucích.
Instalace OracleXE
Požadavky:
- operační paměť: minimum 256 MiB, doporučováno 512 MiB
- swap: minimum 1 GiB
- místo na disku: minimum 1,5 GiB
- operační systém: RHEL 3, RHEL 4, Fedora Core 4, SLES 9, Debian 3.1 aj.
Nevím, zda se velikost swapu vztahuje k velikosti paměti. Každopádně, pokud vám Oracle vyhodí při instalaci chybku s nedostatkem swap, doporučuji vytvořit swap do souboru a připojit ho ke stávajícímu swap oddílu. Je to lepší, než přerozdělovat disk (já měl swap 950 MiB, tak jsem si 128 MiB přidal):
dd if=/dev/zero of=/swap.iso bs=128M count=1 mkswap /swap.iso swapon /swap.iso
Nezapomeňte také upravit soubor /etc/fstab, aby se po restartu nastavení zachovalo:
... /dev/neco none swap sw,pri=1 0 0 /swap.iso none swap sw,pri=1 0 0 ...
Zde jsou k dispozici balíčky OracleXE, doporučuji universal: http://www.Oracle.com/technology/software/products/database/xe/index.html
CentOS
mv /etc/yum.repos.d/CentOS-Media.repo /etc/yum.repos.d/CentOS-Media.backup yum update yum install mc glibc libaio useradd max passwd max
Když něco testuji, tak eliminuji potenciální problémy, které následně řeším až nakonec. Těmi je většinou firewall a SELinux, takže ho vypneme a až nám vše poběží, tak si nastavíme správně i firewall:
# vypneme firewall /etc/init.d/iptables stop # odebereme po startu pc chkconfig --del iptables # vypneme selinux: nano -w /etc/selinux/config # SELINUX=enforcing změníme na SELINUX=disabled
Stáhneme oracle-xe-univ-10.2.0.1-1.0.i386.rpm a vzápětí nainstalujeme:
rpm -ivh oracle-xe-univ-10.2.0.1-1.0.i386.rpm
Debian
nano -w /etc/apt/sources.list # zakomentovat řádek s cdrom aptitude update aptitude dist-upgrade aptitude install mc bzip2 unzip libaio1
Stáhneme oracle-xe-universal_10.2.0.1-1.0_i386.deb a vzápětí nainstalujeme:
dpkg -i oracle-xe-universal_10.2.0.1-1.0_i386.deb
Nyní máme nainstalovanou databázi s APEXem 2.1, Dále už bude vše pro obě distribuce společné. Databáze se nám nainstalovala do (lepší místo si opravdu vybrat nemohli):
/usr/lib/oracle/
Ještě je třeba provést konfiguraci (nastavení portů pro APEX a pro připojení k databázi, heslo do databáze a samozřejmě automatické spouštění databáze po startu počítače):
/etc/init.d/oracle-xe configure Specify the HTTP port that will be used for Oracle Application Express [8080]: Specify a port that will be used for the database listener [1521]: initial configuration: Confirm the password: Do you want Oracle Database 10g Express Edition to be started on boot (y/n) [y]:y
Upgrade APEX na 3.1.2
Stáhneme si nejnovější verzi APEXu:
http://www.Oracle.com/technology/products/database/application_express/download.html A rozbalíme do adresáře s Oracle:
cd /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/
unzip /cesta_kam_jsme_stáhli_apex/apex_3.1.2.zip
cd apex
Načteme si proměnné prostředí Oracle (tento řádek si můžeme přidat třeba do domovského adresáře, do .bash_profile či .bashrc, aby bylo vše nastaveno již po přihlášení):
. /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh
Přihlásíme se do databáze a započneme instalaci (může trvat i 20 min):
sqlplus sys/ as sysdba
SQL> @apexins SYSAUX SYSAUX TEMP /i/
Nastavíme heslo uživateli admin:
sqlplus sys/ as sysdba
SQL> @apxchpwd
SQL> exit
OracleXE má v sobě integrovaný APEX, a ten je celý uložen v databázi. Má tam uložen i adresář images, jenž je součástí APEXu, a jsou v něm obrázky, témata a scripty. Aby byla aktualizace kompletní, musíme adresář images překopírovat do databáze. Máme dvě nejschůdnější možnosti. OracleXE nabízí přístup k tomuto adresáři přes webdav, nebo když povolíme FTP, tak přes FTP. My se vydáme cestou FTP (přeci jen slušného FTP klienta má každý):
sqlplus system@xe SQL> exec dbms_xdb.setftpport('2100'); SQL> alter system register; SQL> select dbms_xdb.getftpport as "FTP-Port" from dual; SQL> exit
Nyní zkopírujeme (např. pomocí MC, v něm je třeba v kopírovacím dialogu F5 odškrtnout, aby kopíroval i atributy, jinak vás stále bude upozorňovat, že atribut nelze nastavit) celý obsah adresáře /usr/lib/Oracle/xe/app/Oracle/product/10.2.0/server/apex/images do /i/ na FTP serveru. Na FTP server se přihlásíme jako uživatel "system" s heslem, jenž používáme k přihlášení do databáze.
Pro vypnutí FTP serveru (vzhledem k bezpečnosti by to bylo dobré) provedeme:
sqlplus system@xe SQL> exec dbms_xdb.setftpport('0'); SQL> alter system register; SQL> exit
Ve finále ještě povolíme vzdálený přístup na webové rozhraní APEXu (standardně je přístupné pouze z localhostu):
sqlplus system@xe
SQL> EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
SQL> exit
Nyní by měly být dostupné následující adresy:
- http://127.0.0.1:8080 - licenční ujednání
- http://127.0.0.1:8080/apex - webové rozhraní APEXu, standardně přesměruje na /f?p=4550:1
- http://127.0.0.1:8080/apex/f?p=4550:10 - administrátorské rozhraní APEXu
Nejdříve je nutné přihlásit se do administrátorského rozhraní (uživatel "admin" a heslo je to, co jsme zadali při SQL scriptu "@apxchpwd"). Při prvním spuštění budete dotázání na současné heslo a zároveň vyzváni k zadání nového hesla. Poté už se budete moci přihlásit, vytvořit si workspace, přihlásit se do uživatelského rozhraní a začít tvořit vlastní aplikaci.
Jak nato, se můžete dozvědět třeba v tomto seriálu: Oracle Database XE – týden první
Kdo je líný, může vyzkoušet již hotové ukázkové aplikace pro APEX, které se nacházejí na webu Oracle přímo zde: Oracle Application Express - Packaged Applications
Ti z vás, kdo nechtějí nebo nemohou instalovat OracleXE, ale chtěli by si vyzkoušet APEX, tak samozřejmě mohou. Stačí se zaregistrovat u Oracle a hned máte k dispozici přístup k APEX rozhraní, viz: Sign up for an account
Závěr
Tak, to nejlehčí máme za sebou. Příště si povíme, jak nainstalovat Oracle 10, jak funguje připojování do databáze a něco o správě paměti v Oracle. Kdo se diví, proč se zaobírám starší verzi Oracle než aktuální (verze 11), tak vězte, že desítková verze je stále hodně používaná a určitě si to zaslouží. Navíc je certifikována na starší verze distribucí, tak se aspoň přesvědčíme, jaké komplikace mohou nastat u novějších verzí. Pokud zbyde místo, tak se dostaneme k ladnému info o 32bit vs. 64bit.