Portál AbcLinuxu, 26. dubna 2024 00:36

Oracle - 1 (úvod, distribuce, OracleXE)

7. 1. 2009 | Max Devaine
Články - 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:

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 00 oraclexe 01

oraclexe 02 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 zbude místo, tak se dostaneme k ladnému info o 32bit vs. 64bit.

Související články

Oracle: vývoj na SUSE 10.0
Seriál: Tvorba databází v MySQL
Seriál: Správa databází v MySQL
Seriál: Adabas
Praktický návod k PgSQL
Propojení OpenOffice.org s databází
Tvorba databázových formulářů v OpenOffice.org

Odkazy a zdroje

Oracle Database 10g Express Edition Downloads
LinuxEXPRES.cz - Oracle Database Express Edition
Instalace OracleXE
http://www.dbsvet.cz/view.php?cisloclanku=2007022801
Vlastnosti a edice
Apex
Wikipedia - PL/SQL
Oracle Unbreakable Linux Support

Další články z této rubriky

VDR a DVB-T2, část 2.
VDR a DVB-T2, část 1.
Šifrovaný Proxmox VE 6: ZFS, LUKS, systemd_boot a Dropbear
MapTiler – proměňte obrázek v zoomovatelnou mapu
Syncthing

Diskuse k tomuto článku

7.1.2009 01:05 paskaler
Rozbalit Rozbalit vše Re: Oracle - 1 (úvod, distribuce, OracleXE)
Odpovědět | Sbalit | Link | Blokovat | Admin

Velmi pekny clanok, dakujem...

Max avatar 7.1.2009 07:46 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Oracle - 1 (úvod, distribuce, OracleXE)
Až nato, že mi Robert neopravil žádnmou chybu, jenž jsem mu reportoval :(. Hlavně chybějí odřádkování v SQL konzoli :(
Zdar Max
Měl jsem sen ... :(
7.1.2009 08:02 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Re: Oracle - 1 (úvod, distribuce, OracleXE)
Omlouvám se, omylem vyšla nesprávná verze. Doufám, že už je to v pořádku.
Max avatar 7.1.2009 08:10 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Oracle - 1 (úvod, distribuce, OracleXE)
Ano, děkuji.
Zdar Max
Měl jsem sen ... :(
hikikomori82 avatar 7.1.2009 08:32 hikikomori82 | skóre: 18 | blog: foobar | Košice
Rozbalit Rozbalit vše Re: Oracle - 1 (úvod, distribuce, OracleXE)
Odpovědět | Sbalit | Link | Blokovat | Admin
Skoda, cakal som v uvodnom clanku skor info o tom preco by sme mali chciet oracle. Z tohoto clanku viem len ze je to nejaka dalsia databaza.
Slobodný font na technické kreslenie
7.1.2009 09:00 YYY | skóre: 29 | blog: martinek
Rozbalit Rozbalit vše Re: Oracle - 1 (úvod, distribuce, OracleXE)
Kdyz nevis, proc bys mel chtit oracle, tak je pro tebe spravnou volbou mysql. A to nemyslim nijak zle.
7.1.2009 11:18 Láďa | skóre: 9
Rozbalit Rozbalit vše Re: Oracle - 1 (úvod, distribuce, OracleXE)

+ 1

Use the right tool for the right job.

7.1.2009 16:38 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Oracle - 1 (úvod, distribuce, OracleXE)
vim proc nechci oracle (xe)... protoze postgresql... ;-]
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
8.1.2009 13:19 aubi
Rozbalit Rozbalit vše Re: Oracle - 1 (úvod, distribuce, OracleXE)

Proc hned myslet na nejhorsi a posilat ho do pekel? Pravda, pokud chcete umet jenom jednoduchy select a neplanujete se naucit nic slozitejsiho, tak asi staci.

7.1.2009 10:13 tomm | skóre: 7 | blog: tomm's software | Sokolov
Rozbalit Rozbalit vše Re: Oracle - 1 (úvod, distribuce, OracleXE)
Odpovědět | Sbalit | Link | Blokovat | Admin
Dodam jeste par informaci: * Oracle XE je pouze 32bitovy, * dodava se 2 verzich: international UTF-8 a western europa iso8859-1.

S tim kodovanim je potiz, protoze pokud mate treba historicky aplikaci s jinym kodovanim, nefunguje to. Reseni existuje. Pred nadumpovanim dat do databaze je zapotrebi zmenit kodovu sadu databaze, postup je k dispozici, funguje spolehlive.

A informace z praxe: loni jsme preklopili poslednich par malych zakazniku, kteri jeste bezeli na MS SQL personal engine (a v jednom pripade MS SQL 2005 EE) prave na XE a tim jsme se zbavili potizisticke DB. Tim jsme poresili stavajici aplikaci. Ale vsechny nove projekty mensiho razu pouzivaji PostgreSQL, dle meho nazoru je to podstatne sikovnejsi databaze s nekolika uzasnymi vychytavkami :-) Ale stale lepsi Oracle, nez MS SQL ;-)
GUI existuje jen proto, aby se veslo vice terminalu na jednu obrazovku ...
Lubor Kemza avatar 7.1.2009 15:04 Lubor Kemza | Praha
Rozbalit Rozbalit vše OEL, Oracle VM
Odpovědět | Sbalit | Link | Blokovat | Admin

Oracle Enterprise Linux (RHEL) i Oracle Virtual Machine (OEL+XEN) je ke stažení samozřejmě zdarma. Viz oss.oracle.com. Totéž platí i o Oracle Virtual Manager a templates pro XEN. Platí se pouze podpora, nebo přístup do repožitářů s aktualizacemi. Ostatní produkty (10g, 11g, AS a pod) jsou zdarma k vyzkoušení a testování.

Co se týče web aplikací, je možné použít Oracle Http Server (Apache 2.0) s mod_plsql - psaní procedur přímo v PL/SQL s uložením v databázi (funguje i na OracleXE). Samozřejmě také v PHP 4/5 a Perlu - vše je součástí instalace OHS.

Jména hloupých na všech sloupích.
Lubor Kemza avatar 7.1.2009 15:18 Lubor Kemza | Praha
Rozbalit Rozbalit vše Re: OEL, Oracle VM

Ještě dodám, že OracleXE je víceméně shodné s Oracle 10g, avšak neobsahuje některé balíčky (například XML DB). Problémem však může být, že mezinárodní verze pracuje pouze v UTF8. Lze sice přepnout počítání znaků v CHAR místo BYTE, avšak některé ovladače třetích stran pro přístup k databázi takto nelze nastavit - taže vyhodnocují nesprávně délky polí.

Jména hloupých na všech sloupích.
8.1.2009 09:49 Ivan
Rozbalit Rozbalit vše Re: OEL, Oracle VM

XML DB tam castecne je, resp podpora pro SYS.XMLTYPE tam je urcite. Co tam ale chybi je JVM a vsechny JAVA stored procedury. Pokud jde o NATIVE CHARACTER set tak vam nikdo nebrani vytvorit si vlastni vlastni databazi a zvolit si libovolnou znakovou sadu.

 

7.1.2009 17:29 Bobika
Rozbalit Rozbalit vše Re: OEL, Oracle VM

10g, 11g, AS dle licencnich ujednani zdarma neni ani k vyzkouseni ani pro vyvoj.

To ze to je "zdarma" ke stazeni jeste neznamena ze to muzete licencne "zdarma" provozovat.

8.1.2009 10:54 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: OEL, Oracle VM
A jak si mám tedy vykládat větu We grant you a nonexclusive, nontransferable limited license to use the programs only for the purpose of developing a single prototype of your application, and not for any other purpose? Možná chápu slovo develop nějak špatně? :-)
Ještě na tom nejsem tak špatně, abych četl Viewegha.
8.1.2009 13:11 ivan
Rozbalit Rozbalit vše Re: OEL, Oracle VM

Ona je tam spousta omezeni. Jedna aplikace, 30 dnu, nesmite zverejnovat benchmarky a kdo vi co jeste. Jestli se nepletu, tak cca za 3500$ se muzete stat oracle partner a k tomu dostanete 5 devel licenci na vsechny produkty.

15.1.2009 14:17 iq
Rozbalit Rozbalit vše Re: OEL, Oracle VM

Jsi asi necetl ty dalsi dovetky a odstavce :-p 

7.1.2009 22:45 Lukáš Zapletal | skóre: 42 | blog: lzapův svět | Olomouc
Rozbalit Rozbalit vše Re: Oracle - 1 (úvod, distribuce, OracleXE)
Odpovědět | Sbalit | Link | Blokovat | Admin
Pěkný článek.

ps - Oracle je softwarová společnost, jejichž vlajkovým produktem je Oracle Database. V textu by snad tato záměna nemusela v některých případech vadit, v názvu článku už by to mohlo být přesněji...
Later --- Lukáš Zapletal
7.1.2009 23:25 Lubos Kopecky | skóre: 32
Rozbalit Rozbalit vše Re: Oracle - 1 (úvod, distribuce, OracleXE)
Odpovědět | Sbalit | Link | Blokovat | Admin
instalace na debianu jsem musel udelat tyhle upravy (brano v poradi dle clanku) - v clanku je uvadeno Oracle, ale v debu mam oracle:
dpkg -i oracle-xe-universal_10.2.0.1-1.0_i386.deb
/usr/lib/oracle/
/etc/init.d/oracle-xe configure
. /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/apex/images do /i/
dale sem si nepovolil pristup z venku na portu 8080 pro apex, protoze tam nejede ssl, ale pres mod proxy v apache tam preposilam pozadavky
<VirtualHost *:443>
    ServerName domena.ltd
    ProxyRequests On
    ProxyPass / http://127.0.0.1:8080/
    ProxyPassReverse / http://127.0.0.1:8080/
    <Proxy *>
        AddDefaultCharset off
        Order deny,allow
        Allow from all
    </Proxy>
    LogLevel warn
    CustomLog /var/log/error-oracle.log combined
    ErrorLog /var/log/access-oracle.log

    SSLEngine On
    SSLCertificateFile /cesta/k/certifikatu/certifikat.crt
    SSLCertificateKeyFile /cesta/k/certifikatu/certifikat.crt.key
</VirtualHost>
U mc se pristupuje k ftp-server nasledovne - ponechame zobrazena obe modra okna a napiseme prikaz
cd ftp://system@localhost:2100
nasledne v mc vyskoci okno pro zdani hesla a pak mam v jedne pulce ftp-oracle-server a v druhym data z localhostu a uz jen F5 na kopii..

jinak dik za paradni navod a uz se tesim na dalsi dily!!!
7.1.2009 23:29 Lubos Kopecky | skóre: 32
Rozbalit Rozbalit vše Re: Oracle - 1 (úvod, distribuce, OracleXE)
sem zapomnel, ten etch je 64-bit, tak uvidim, jak se to bude chovat, az se na oracle pustej nejaky dotazky :)
8.1.2009 11:09 Jakub Suchy | skóre: 22 | Praha
Rozbalit Rozbalit vše Re: Oracle - 1 (úvod, distribuce, OracleXE)
Odpovědět | Sbalit | Link | Blokovat | Admin

Neni pravda, ze Oracle bere RHEL a dela z nej OEL. Oracle bere CentOS a dela z nej OEL. Nema tedy koule ani na to, aby si ten RHEL odbrandoval sam...

Drupal
15.1.2009 14:14 iq
Rozbalit Rozbalit vše Re: Oracle - 1 (úvod, distribuce, OracleXE)

A jak je tedy mozne ze se stava pravidlem ze je vypusten OEL  tak den dva pred tim nez je teprve vydan CentOs??? 

17.1.2009 14:24 Majkls
Rozbalit Rozbalit vše Re: Oracle - 1 (úvod, distribuce, OracleXE)
ale zas má koule na to, aby vyvíjela vlastní filesystémy pro linux, na což bychom taky neměli zapomínat, že... Navíc je na rozdíl od redhatu neposkytuje "okousané" ale komplet. Tedy zatím.
Není umění napsat 10000 řádků, ale napsat na 10 řádků, co by jiný psal na 1000 řádků.
26.1.2009 14:16 hohoho
Rozbalit Rozbalit vše 8bitové kódování znaků
Odpovědět | Sbalit | Link | Blokovat | Admin

Pokud má někdo raději klasické 8bitové kódování znaků češtíny (iso nebo windows) není problém pod XE zastavit (a smazat) výchozí instanci (databázi) a vytvořit si jinou dle vlastních potřeb. Naklikat to ale nejde.

3.3.2009 21:20 coldak
Rozbalit Rozbalit vše Re: Oracle - 1 (úvod, distribuce, OracleXE)
Odpovědět | Sbalit | Link | Blokovat | Admin
len tak pre uplnost, obmedzenie oracleXE na 4GB dat je pravdou len z casti, skusenejsi admin co uz ma nejake skusenosti s oracle databazami toto obmedzenie pomerne jednoducho obide. minule som to skusal a vytvoril som si ulozny priestor 64GB. samozrejme to nieje konecna velkost no nechcelo sa mi viac zaberat diskovy priestor. viac ma trapi ze sa mi este nepodarilo rozbehat na oracleXE storovanu javu.

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