Portál AbcLinuxu, 21. května 2025 16:08
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".
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.
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
.
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
.
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.
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.
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.
Veselé SQLení...
/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???
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.