Portál AbcLinuxu, 23. dubna 2024 08:35

Oracle: vývoj na SUSE 10.0

26. 10. 2005 | Petr Vaněk
Články - Oracle: vývoj na SUSE 10.0  

Desátá verze SUSE je na světě poměrně krátkou dobu, tudíž s ní zatím veškeré dostupné verze Oracle databáze nepočítají. Naštěstí jsou ale starší SUSE Novellem a Oracle podporovány, takže se dá desítka přiohnout a "ohákovat".

Úvod

S níže popsaným postupem jsem strávil krušné chvilky, takže rád ostatním od problému pomůžu.

V následujícím textu předpokládám, že na je na počítači nainstalován (Open)SUSE 10.0 s alespoň minimálním X Window systémem a C/C++ vývojovými nástroji, a že se chystáme instalovat 10g release 2. Dále předpokládám znalost základních termínů Oracle.

Instalace Serveru

Samotný DB server není potřeba, pokud existuje možnost připojení na nějaký síťový. Já si jej ale pro jistotu stejně instaluji.

Nejprve stáhneme a nainstalujeme tzv. orarun balík (běhové prostředí Oracle) ze staršího SUSE Linux Enterprise Serveru.

Jako root instalujeme pomocí

rpm -ivh --nodeps orarun-1.8-109.15.i586.rpm

a stále jako root zůstáváme.

Přes YaST nainstalujeme libaio a libaio-devel balíky (asynchronní IO, hlavně nesplést s libao). YaST zde vypíše pestrobarevné varování o nesplněných závislostech s pdksh a xshared, ale to nevadí, klidně je ignorujme, protože to je pozůstatek SLESu.

Orarun nám mimo jiné vytvořil nového uživatele oracle a skupinu oinstall, pod kterými vše poběží. Uživatel oracle je ale vypnutý, takže musíme buď proklikat YaST (Bezpečnost a uživatelé - Správce uživatelů), anebo editujeme login shell v /etc/passwd a nastavíme heslo.

V /etc/profile.d/oracle.sh editujeme proměnnou ORACLE_HOME na $ORACLE_BASE/product/10gR2 a zvolíme ORACLE_SID.

Dále spustíme /usr/sbin/rcoracle start, což nastaví parametry linuxového jádra na Oraclu příjemné. Také zde ignorujme varovná hlášení o nenastavené proměnné ORACLE_HOME - nastaví se posléze.

Pak opustíme roota a přihlásíme se do X uživatele oracle. Z webu Oracle stažený zip balík (10201_database_linux32.zip) rozbalíme a pustíme se do nejjednoduššího hacku v dějinách databází - v souboru database/install/oraparam.ini do seznamu "Certified Versions" připíšeme SuSE-10 (a to i přesto, že třeba používáme OpenSUSE). Tuto editaci lze obejít parametrem -ignoresysprereqs při instalaci, ale to jsem se jednak dozvěděl až později, a druhak je to takové bez šťávy.

A teď už nic nebrání tomu, abychom spustili runInstaller, který nás provede celou instalací (ano, je to v grafice, protože máme na instalaci málo času a nervů). Manuálně musíme provést kontrolu "Product-Specific Prerequisites Checks?", protože instalátor opět nenajde SUSE 10. V závěru ještě musíme pod rootem spustit skripty /opt/oracle/oraInventory/orainstRoot.sh a /opt/oracle/product/10gR2/root.sh, k čemuž nás ovšem vyzve dialogové okénko. Nyní by už měl být server dostupný včetně nastavených tnsnames a listeneru, o čemž se přesvědčíme např. programem tnsping.

Pokud chceme spouštět Oracle automaticky při startu, editujeme v souboru /etc/sysconfig/oracle proměnnou START_ORACLE_DB na "yes", to samé s listenerem apod. Můžeme také použít dobrodiní YaSTu (Systém - Editor souborů /etc/sysconfig - Productivity - Databases - Oracle). Na svém pracovním stroji mám nastavení následující: V /etc/sysconfig/oracle mám start Oracle a příslušenství povolen, přičemž službu nespouštím v žádném runlevelu, anžto je to potvora nenažraná. Lokální DB server si spouštím podle potřeby přes /etc/init.d/oracle start.

Instalace klienta

Opět pod uživatelem oracle rozbalíme stažený balík (10201_client_linux32.zip), ve vzniklém instalačním adresáři provedeme výše popsanou úpravu client/install/oraparam.ini, čímž obejdeme kontrolu podporovaných verzí operačního systému, a v X spustíme instalátor. Protože instalujeme vývojářské prostředí, nezvolíme tzv. instantního klienta (tj. minimální běhové prostředí klientských aplikací), ale vybereme software pro DBA nebo vývojáře.

Do .profile si přidáme Oracle proměnné, abychom mohli spouštět patřičné programy, a třeba se dostali k tnsnames.

# oracle vecirek
export ORACLE_HOME=/opt/oracle/product/10gR2
export PATH=$PATH:$ORACLE_HOME/bin

Oracle také neregistruje své knihovny v ld.so.conf. Proto si v /etc/ld.so.conf.d/ vytvořím soubor oracle.conf, který bude automaticky vložen při načtení linkeru. Do něj napíšu /opt/oracle/product/10gR2/lib a zavolám ldconfig.

TOra

sqlplus je určitě šikovný nástroj, ale my, jako správní pojídači koláčů, raději sáhneme po něčem, co je pro vývoj šikovnější, co nám například pomůže s laděním SQL nebo monitoringem databáze. V linuxovém světě nemáme na výběr, musí nám vyhovovat TOra a TOra pro SUSE v RPM neexistuje a TOra naneštěstí používá hodně nestandardní způsob překladu ze zdrojových kódů...

Protože si nechceme zahnojit systém a protože nechceme číst dlouhé manuály balení do RPM, použijeme kompilaci do domácího adresáře vývojáře, toho času do mého. V systému musíme mít pochopitelně nainstalovány tzv. devel RPM balíky Qt qt3-devel a o něco méně pochopitelně qt3-devel-tools. Stažený balík (tora-1.3.18.tar.gz) rozbalíme a vezmeme tyto pečlivě odladěné configure parametry. Protože SUSE a protože Tora.

./configure \
--prefix=/home/pvanek/tora-bin\
--without-kde\
--with-qt-dir=/usr/lib/qt3\
--with-qt-includes=/usr/lib/qt3/include\
--with-qt-libraries=/usr/lib/qt3/lib\
--with-static-oracle

Autor nemá nic proti KDE, sám jej používá, ale nechtělo se mu instalovat kde-devel balíky. Bez parametru --with-static-oracle nebude dostupná Oracle komponenta (to je ten SUSE důvod). Ostatní cesty ke knihovnám a hlavičkovým souborům si na koleně vyráběný configure skript sám nenajde.

oracle na suse tora

gVim

Psaní větších bloků PL/SQL příkazů je pro někoho pohodlnější v tomto editoru. Existuje do něj řada modulů, které spolupracují s databázovým serverem. Já si vybral oracle.vim, ze kterého v podstatě používám prosté spouštění obsahu souboru jako sqlplus skriptů, a nasazuji tím editované package apod. (Pikantní je zejména to, že gVim používám pouze ve Windows.)

Jádrem konfigurace je úprava procedury SelectDatabase(), kde lze definovat často používaná připojení v poměrně srozumitelné if podmínce.

Enterprise Manager

EM je správcovský nástroj spouštěný jako webová aplikace na vlastním web serveru.

Před spuštěním musíme nastavit identifikátor databáze, kterou chceme pomocí EM prohlížet, např.:export ORACLE_SID=s0test a jako uživatel oracle zavoláme /opt/oracle/product/10gR2/bin/emctl start dbconsole. Výpisy spouštění EM nám řeknou, že je vše dostupné webovým prohlížečem na adrese http://pvanek.clance.local:1158/em/console.

Pozor - některé funkce EM nelze provozovat v Konqueroru, takže se spuštění Firefoxu nevyhneme.

oracle na suse em

Závěrem

Veselé SQLení...

Související články

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
Recenze: InterBase/Firebird
Recenze: PostgreSQL - Praktický průvodce

Odkazy a zdroje

SUSE
Oracle

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

Praktický test komprese ZPAQ v programu lrzip
Porovnávání souborů PDF
Microsoft rozdává zadarmo stovky e-knih
Minimalistické prezentace s Markdown
Kde hledat Creative Commons a alternativy

Diskuse k tomuto článku

26.10.2005 03:10 User682 | skóre: 38 | blog: aqarium | Praha
Rozbalit Rozbalit vše Re: Oracle: vývoj na SUSE 10.0
Odpovědět | Sbalit | Link | Blokovat | Admin
zdravim,

hodne zasluzny clanek. pred casem jsem si uzil instalaci 10-kove verse oracle a sybase na debianu. vcelku obcas zabava na dlouhe vecery, pokud s tim nemate praxi nebo nenajdete pouzitelny navod, ktery popisuje veskere chyby, ktere Vam pri instalaci nastaly.

bohuzel nejak vyrobci techto spise pocitaji s podporovanymi distribucemi, coz nejak u produkcnich stroju chapu. nicmene pokud na __vyvoj__ pouzivate jine distro, tak zazijete vcelku peklo, pokud nejste v tomto zbehli.

trosku vice me vadi, ze tyto database vyzaduji X-ka. minimalne pro instalaci. ale budiz.

bye gf
26.10.2005 09:49 Honza Houštěk
Rozbalit Rozbalit vše Re: Oracle: vývoj na SUSE 10.0
ad Oracle a nepodporované distribuce -- Oracle DB je již dost velký moloch na to, aby když už padne rozhodnutí, že poběží na Linuxu, se mu distribuce přizpůsobila (jak v případě produkčního běhu, tak vývoje). ušetří se tím dost času, člověk se nevzdá (třeba v budoucnu) možnosti podpory a co se provozu a správy týká, bude v tomto Linux jako Linux (Oracle toho od systému zase tolik nechce, a kde běží Oracle, tam už by moc jiných věcí být nemělo).

ad "X-ka" při instalaci -- z grafického instalátoru (a dalších wizardů, např. pro vytvoření DB) sice nijak zvlášť nadšený nejsem, ale pro jejich použití samozřejmě není potřeba X server na straně serveru. stačí pár základních knihoven a samozřejmě X server někde jinde
26.10.2005 15:21 zabza | skóre: 52 | blog: Nad_sklenkou_cerveneho
Rozbalit Rozbalit vše Re: Oracle: vývoj na SUSE 10.0
Odpovědět | Sbalit | Link | Blokovat | Admin
Zrovna dneska večer se chystám nainstalovat Oracle 10.2 na svůj domácí počítač s Mandrivou 2006.0. Teď tam mám Oracle 10, instaloval jsem to na Mandrivě LE2005 (nebo možná 10.1), instalace se podařila a běží to...

Ale nepamatuju se, jestli byly nějaké problémy, že bych se podělil o řešení (takže asi nebyly :-) )
26.10.2005 15:44 Petr
Rozbalit Rozbalit vše Re: Oracle: vývoj na SUSE 10.0
Mně to běží doma na SuSE 9.2 a problémy jsem taky neměl; se SyBase taky nebyly... ad X:
Porád nemůžu pochopit, proč lidem vadí na serveru X. Disky jdou dostatečně velké a když už to někdo myslí s databází opravdu vážně, pak platí:
  • jako datové úložiště je zvolené řešení postavené na SCSI
z toho vyplývá:
  • když už mám SCSI, tak databáze má svůj vlastní disk
z toho vyplývá:
  • systém jako takový má také svůj vlastní disk
Vzhledem k uvedenému nevidím problém s místem, páč 30GB SCSI disk, který na systém stačí (vzhledem k počtu otáček, cache...) stojí 5 000,- Kč, což vzhledem k celé sestavě je zanedbatelná částka. Zabezpečení??? Ano, toto jsem ve výše uvedeném záměrně zanedbal, protože:
  • Ukažte mi jediný program na databázovém serveru, který běží (je trvale v paměti – např. daemon) a používá X
pakliže takový program neexistuje, nemá tedy cenu zabezpečovat to, co neběží. Máte zabezpečený /boot/grub/menu.lst? Je to taky soubor, stejně jako knihovny X? Je! A je svou existencí nebezpečný nebo je v něm bezpečnostní díra???
26.10.2005 19:01 Martin Hlavacek
Rozbalit Rozbalit vše Re: Oracle: vývoj na SUSE 10.0
Odpovědět | Sbalit | Link | Blokovat | Admin
SuSE 10 na SunFire V20z s Oracle 10 stejne verze jako autor. Pri dodrzeni kucharky, ktera je na oracle technology network je instalace hracka. Priznam se, nevim, proc na to sel autor clanku tak slozite. Doporucuji vice casu venovat provozni dokumentaci :-)
26.10.2005 21:06 s0 | skóre: 32 | blog: nejchytřejší kecy | prágl
Rozbalit Rozbalit vše Re: Oracle: vývoj na SUSE 10.0
nějak tam v tom nic složitého nevidím, ale šlo mi spíš o celek - kuchařku kompilace tory v otn nenajdu ;)

navic mi přijde jednodušší použít třeba ten orarun, než přepisovat parametry kernelu ručně atd.
Kuolema Kaikille (Paitsi Meille).
30.10.2005 20:44 Martin Hlavacek
Rozbalit Rozbalit vše Re: Oracle: vývoj na SUSE 10.0
nevim, ale slusny kernel, ktery je nakonfigurovan pro serverove ucely databazoveho charakteru neni zas az tak moc potreba menit.. navic, udela-li neco clovek rucne a precte-li si navic, co ze to vlastne dela a proc, to jednak pomuze a taky prospeje ;-) ale jinak uznavam, kompilaci tory v otn asi tezko najdem.. :-)
28.10.2005 12:22 xg
Rozbalit Rozbalit vše Re: Oracle: vývoj na SUSE 10.0
Odpovědět | Sbalit | Link | Blokovat | Admin
Mam zkusenost s Oraclem na Debianu: instaloval jsem dle: http://www.togaware.com/linux/survivor/Oracle_10g.shtml a naprosto bez problemu (na tento navod se odkazuji i z ofic. stranek oracle.com)

Ale mam dotaz k sql*plus - jak dosahnout jeho 'konzolovosti' jako na woknech?.. Tj. sipka nahoru se mi vrati o prikaz zpet, ale predevsim, nastaveni virtualni sirky bufferu v terminalu (vetsi nez umoznuje rozliseni monitoru - v kombinaci se set lines xxxx - nebude zalamovat radky, ale bude nabizet horizontalni scrollbar) - hledal jsem nejaky vhodny terminal pro Xka, ale nic kloubneho jsem nenasel.
18.1.2009 20:15 m;)
Rozbalit Rozbalit vše Re: Oracle: vývoj na SUSE 10.0
rlwrap -- http://utopia.knoware.nl/~hlub/uck/rlwrap/ ;)

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