- předchozí článek - následující článek - obsah - úvodní stránka -

Linuxové noviny 11/99

Oracle pro Linux

Radim Kubacki

Oracle je v současné době dostupný pro Linux v následujících verzích: Oracle 8.0.5(.1) Standard a Enterprise Edition a ve verzi Oracle 8i označovaná také jako 8.1.5 opět jako Standard i Enterprise Edition. Mimo to je zde také Oracle Application Server ve verzích 4.0.7 a 3.0.2 a produkt WebDB. Vše je možné je nalézt na adrese http://technet.oracle.com/, příp. je možné si jej stáhnout pomocí ftp ze serveru ftp://ftp.oracle.com/.

Oracle je jednou z nejrozšířenějších databazí. Verze SE a EE jsou víceuživatelské, transakční relační databázové servery. Je možné škálovat jejich výkon a použít je i v opravdu rozsáhlých aplikacích. Mimo Linuxové verze existují i její ekvivalenty na většině Unixových systémů (Solaris, HP-UX, AIX,...), VMS, Windows NT. V rámci Enterprise Edition verze jsou dostupné navíc oproti jednodušší verzi tyto rysy: Advanced Replication, Object a Partitioning Option, Spatial, Time Series a Visual Information Retrieval Cartridge, Parallel Query a Advanced Networking Option. Firma Oracle přitom pro Linuxovou verzi poskytuje zdarma vývojářskou licenci jednomu vývojáři na jeden stroj. Licence zdarma se tedy netýká produkčního použití této databáze.

Dále se zaměřím především na verzi 8.0.5, protože Oracle 8i má prozatím ve verzi pro Linux příliš mnoho chyb. Navíc došlo při přechodu od verze 8.0.5 k 8i k přepsání instalátoru do Javy a budete tedy potřebovat Java Runtime Environment, X Window System a především dostatek paměti k samotné instalaci. 128 MB doporučených výrobcem je údajně opravdu potřebných. Poté, co přežijete instalaci, už nároky budou vcelku srovnatelné s 8.0.5. Nicméně bývá doporučováno v případě zájmu o tento produkt počkat na novou verzi, která je ohlášena do konce tohoto roku. Hlavní rozdíl oproti řadě 8.0 je přitom optimalizace pro internetovské aplikace, a to v rozsahu, který je větší než by naznačovala změna v číselném označení produktu.

Instalace

Po stažení potřebných souborů nebo jejich získání na instalačním CD (soubory budou zabírat 180 až necelých 300MB podle zvolené verze) můžete přikročit k instalaci.

Verze 8.0.5 je původně certifikována s distribucí RedHat 5.2, ale je možné ji provozovat i na strojích s RedHat 6.0 nebou jinou srovnatelnou konfigurací. V takovém případě se ovšem instalace poněkud zkomplikuje, protože je nutné aplikovat patche, které zajistí kompatibilitu s potřebnými knihovnami opětovným slinkováním programů (Oracle 8.0.5 je linkován s glibc2.0). Tyto patche naštěstí získáte na stejném místě jako samotný Oracle. Průběh instalace této verze je poměrně podrobně popsán na http://jordan.fortwayne.com/oracle. Dozvíte se tam, v jakém pořadí provádět jednotlivé instalační kroky včetně úpravy některých parametrů jádra a jak předejít některým chybám, na které můžete narazit. Celkově budete potřebovat aspoň 400MB diskového prostoru a stroj s minimálně 32MB paměti.

Závěrečným krokem takové instalace je vytvoření nové databáze. Pokud tak neučiníte přímo v instalátoru, budete to muset udělat přímo. Potřebujete si k tomu připravit vlastní init<sid>.ora soubor, který získáte úpravou existujícího souboru obsaženého v distribuci. <sid> je označení jedné konkrétní instance databáze. Pak si nezapomeňte nastavit proměnnou prostředí ORACLE_SID na zvolenou hodnotu <sid> a můžete spustit Server Manager (svrmgrl). V tom můžete založit vlastní databázi, výhodné je použít skriptů crdb.orc a crdb2.orc, které vhodně upravíte. Naleznete je po instalaci v adresáři $ORACLE_HOME/rdbms/install/rdbms. Tyto skripty vytvoří nejen samotnou databázi, ale přidají i založení rollback segmentů, můžete nařídit i založení tablespaců a zajistí vygenerování tzv. data dictionary. Automaticky jsou vytvořeni dva uživatelé SYS a SYSTEM, kterým je přidělena role databázových administrátorů. Hesla těchto uživatelů naleznete v dokumentaci, když nahlédnete do Oracle Administrator's Guide.

S takto instalovanou databází můžete komunikovat mnoha způsoby. Nejjednodušeji je to možné pomocí produktu SQL Plus, který vám umožní zadávat příkazy jazyka SQL a sledovat jejich výsledky. Stojí za to připomenout, že je podporováno SQL92 Entry Level a řada rozšíření definovaných firmou Oracle. Jedním z nejvýraznějších je existence procedurálního ijazyka PL/SQL dovolujícího psaní procedur a funkcí. Pro programování můžete použít Pro*C, což je prekompilátor, který vám umožní používat v C/C++ programech SQL příkazy jazyka SQL použitím direktiv EXEC SQL <sql_command>. Ty jsou v průběhu prekompilace nahrazeny voláním funkcí C jazyka v dodaných knihovnách. Tyto knihovny můžete samozřejmě používat také přímo, dokumentace pro Oracle Call Interface (OCI) je součástí produktu. Pracujete-li s jazykem Java, můžete použít dostupné JDBC drivery, a to jak ovladače v čisté Javě, tak i verzi používající OCI knihovny. Existují i moduly rožšiřující jiné jazyky, jako je např. Perl, PHP.

Jak funguje Oracle

Oracle na vašem počítači vytvoří mnoho souborů. Část z nich budou programové soubory, které získáte při instalaci. Dále ke každé existující databází existuje aspoň jeden control file popisující konfiguraci dané databáze. Je lépe mít víc kopií tohoto souboru, nejlépe na různých discích pro případ poškození. Data každé databáze, v terminologii Oraclu nazývané instance, se ukládá do jednoho nebo více tablespaců. Fyzicky je každý tablespace reprezentován datovými soubory. Zároveň je tablespace důležitý nástroj administrace a správy databáze. Ukládají se do nich tabulky, indexy, package, procedury, pohledy (views), synonyma a nově vytvořené typy. Vhodnou definicí vlastností tablespaců, která zahrnuje jejich fyzické umístění, pravidla pro přidělování prostoru na disku, kvóty uživatelů, a správně zvoleným rozmístěním objektů do nich lze dosáhnou optimalizace výkonu databáze.

Další věcí nezbytnou pro chod Oraclu jsou rollback segmenty, do kterých se ukládají historie prováděných transakcí, musí být aspoň dva pro každou instanci a jejich počet se odvozuje od počtu současně prováděných transakcí. Opět jsou umístěny do zvolených tablespaců.

Na rozdíl od verze Oracle7 přichází verze 8 s tzv. Oracle Flexible Architecture, což je množství doporučení, jak pojmenovávat a kam ukládat jednotlivé soubory. Není však nutné se jich bezvýhradně držet.

Databázový server při spuštění každé instance vytvoří několik procesů, které jsou pojmenovány ora_????_<sid> a společně zajišťují jeho činnost. Navíc můžete potřebovat listener pro podporu komunikace prostřednictvím TCP/IP protokolu. Každé připojení klienta k databázi pak má za následek vytvoření dalšího procesu. Ladiči výkonu mají velké množství možností nastavování parametrů ovlivňujících činnost databáze. Systém je celkově velice stabilní a nedochází v něm ke ztrátám dat. Pokud se tedy vyhnete nekorektnímu ukončování běžící databáze a nepoškodíte či nesmažete si některý ze souborů sami, nebudete zřejmě mít problémy. Komu však záleží na datech, bude zálohovat. Lze k tomu opět využít možnosti produktu prověřené dlouhým vývojem.

Národní prostředí

Potěšující zpráva říká, že Oracle podporuje češtinu. Není problém s použitím znakové sady ISO 8859-2, tříděním, jsou definovány i formáty pro datum, měnu. Navíc jsou počeštěny i některé katalogy zpráv. Pokud nezapomenete zadat správnou kódovou stránku (EE8ISO8859P2) už do skriptu pro vytvoření databáze a nastavení nls_language a nls_territory do init.ora souboru, je prakticky vystaráno. Důležité je zejména říci hned při zakládání databáze, že chcete tuto sadu. Nastavení NLS (National Language Support) proměnných je možné měnit pro každou session zvlášť.

Další vývoj

Zájem o Linux ze strany firmy Oracle nekončí uvedením jmenovaných produktů. Přislíbeny jsou nové verze jak samotné databáze, tak i aplikačního serveru. Navíc se ještě letos připravuje uvolnění jednodušší verze databázového stroje Oracle 8i Lite, a dokonce má být portováno i vývojové prostředí Oracle Developer. *


- předchozí článek - následující článek - obsah - úvodní stránka -