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:

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:

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.

oraclexe 01 oraclexe 02 oraclexe 03 oraclexe 04

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.