Oracle 10g andmebaas

Allikas: Kuutõrvaja
Redaktsioon seisuga 26. juuni 2007, kell 22:07 kasutajalt Imre (arutelu | kaastöö) (Paigaldamine)

Sissejuhatus

Oracle 10g andmebaas on populaarne relatsiooniline andmebaas, mis on toetatud Solaris ning mitmetel Linux platvormidel. Iseenesest on tegu kommertstarkvaraga, kuid litsentsitingimused jätavad üksikasutajale võimaluse tarkvara tutvumise eesmärgil kasutada. Täpsemalt saab kasutamistingimustega tutvuda tootja kodulehel aadressil http://www.oracle.com/. Kuutõrvajas käsitletakse Oracle 10g andmebaasi nende arvutikasutajate silmaringi laiendamise eesmärgil, kes ei ole selle tarkvaraga tuttavad. Käesolev pala ei asenda Oracle veebikohas esitatud dokumentatsiooni, on püütud esitada ühe kasutamise kogemust lootuses, et seejärel on huvilisel lihtsam orienteeruda ametlikus dokumentatsioonis.


Paigaldamine

Oracle andmebaasist esineb mitmeid versioone

  1. Standard Edition
  2. Standard Edition One
  3. Enterprise Edition
  4. Express Edition

Kuna kõige väiksema kuluga saab huviline töötava andmebaasi enda tarbeks paigalda toetatud platvormile kasutades Solaris operatsioonisüsteemi, siis käesolevas palas toodud näidete puhul on just seda operatsioonisüsteemi kasutatud. Siiski, ka muude operatsioonisüsteemide puhul toimub Oracle 10g andmebaasi kasutamise praktiliselt samamoodi.

Tarkvara paigaldamiseks saab kasutada installerit kahel viisil

  1. internaktiivselt - ./runInstaller
  2. mitte-interaktiivsel - ./runInstaller -silent -responseFile /opt/oracle/oracle-10gresponse-file.txt

Nn responsefail'i abil tehtud paigaldus käib kiiremini ja on lihtsamini reprodutseeritav. Samas, reeglina tekitatakse responsefile interaktiivse interaktiivse paigaldamiskorra ajal

 bash$ ./runInstaller -record -destinationFile /opt/oracle/oracle-10gresponse-file.txt

Tarkvara paigaldamise tulemusena on tekkinud failisüsteemis kataloogi /opt/oracle andmebaasi nö mootori moodustavad failid, kusjuures andmebaasi andmete kogumi mõttes ei ole moodustatud ja ühtegi Oracle 10g andmebaasiga seotud protsessi ei tööta.

Andmebaasi moodustamine

Enne andmebaasi moodustamist peab olema Oracle 10g tarkvara edukalt paigaldatud. Seejärel tuleb logida arvutisse kasutajana oracle ning veenduda, et kirjeldatud sarnased keskkonnamuutujad

ORACLE_HOME=/opt/oracle
PATH=$PATH:/opt/oracle/10.2.0/db_1/bin

Andmebaasi saab moodustada mitmel erineval viisil, kõige nö kasutajasõbralikum on kasutada programm dbca (database configuration assistant), kus andmebaasi loomise jaoks vajalikud parameetrid sisestatakse graafiliste dialoogide vahendusel.

Andmebaasi käivitamine

Andmebaasi käivitamiseks peavad olema seadistatud sellised keskkonnamuutujad

ORACLE_HOME=/opt/oracle
ORACLE_SID=test
PATH=$PATH:/opt/oracle/10.2.0/db_1/bin

ning nö käsitsi käivitamiseks tuleb öelda

bash$ sqlplus / as sysdba
SQL> startup

Seejärel saab käsu

bash$ ps -ef | grep oracle

abil veenduda, et andmebaasile vastavad protsessid töötavad. Andmebaasi seiskamiseks tuleb öelda

SQL> shutdown

Andmebaasi võrgust kättesaadavaks muutmine

Selleks, et andmebaas oleks võrgust ligipääsetav, mis tegelikult on reegline andmebaasi praktilise kasutamise jaoks oluline, tuleb käivitada listener programm. Vajalik on sarnase sisuga seadistusfail

LISTENER=
 (DESCRIPTION=
   (ADDRESS_LIST=
     (ADDRESS=(PROTOCOL=tcp)(HOST=baas.loomaaed.tartu.ee)(PORT=1521))
     (ADDRESS=(PROTOCOL=ipc)(KEY=extproc))))
SID_LIST_LISTENER=
 (SID_LIST=
   (SID_DESC=
     (GLOBAL_DBNAME=test.baas.loomaaed.tartu.ee)
     (ORACLE_HOME=/opt/oracle/product/10.2.0/db_1)
     (SID_NAME=TEST)))

ning tuleb öelda

bash$ lsnrctl start

Seejärel saab käsu

bash$ netstat -an | grep 1521

abil veenduda, et teenus kuulab pordil 1521.


Veebipõhise haldusliidese kasutamine

Oracle 10g andmebaasi tarvkara paigaldusjärgseid seadistusi saab teha selleks mõeldud veebipõhise kasutajaliidese, 'Oracle Enterprise Manager 10g Database Control' abil. Andmebaasi mootoriga koos paigaldati pisike java veebiserver ning selle käivitamiseks tuleb öelda

bash$ emctl start dbconsole

Ning pöörduda brauseriga aadressile http://baas.loomaaed.tartu.ee:1158/em/. Kasutajanimeks valige sys rollis sysdba ning sisestage andmebaasi moodustamisel kasutatud parool.


Olemasoleva andmebaasi alusel andmebaasi moodustamine

dbca -silent -createTemplateFromDB -sourceDB test -sysDBAUserName \
 sys -sysDBAPassword parool -templateName test2

Tulemusena tekitatakse template fail

$ORACLE_HOME/assistants/dbca/templates/test2.dbt

Järgmise sammuna tuleb selle template'i alusel genereeritada andmbaasi moodustavad skriptid

dbca -silent -generateScripts -gdbName test2.baas.loomaaed.tartu.ee

-sysDBAUserName \

 sys -sysDBAPassword parool -templateName test2 -scriptDEST

/opt/oracle/test2

Tulemusena tekivad sellised failid

test2.sh
test2.sql
init.ora
CreateDB.sql
CreateDBFiles.sql
CreateDBCatalog.sql
emRepository.sql
postDBCreation.sql
test2.log

Uue andmebaasi genereerimiseks tuleb käivitada skript test2.sh, kuid enne maksab faili CreateDBCatalog.sql teisel real kirjutada 'set echo off'.

Skeemi kopeerimine ühest andmebaasist teise

Andmebaasi skeemi kopeerimiseks lastakse lähteandmebaasil salvestada oma failisüsteemi spetsiaalses DataPump formaadis fail, seejärel kopeeritakse see teise arvutisse, kus töötab sihtandmebaas ning loetakse failisüsteemist sihtandmebaasi sisse. Andmebaasi ja failisüststeemi vahel toimuva andmevahetuse juures peavad neid tegevusi sooritaval andmebaasi kasutajal olema sobivad õigused ning andmebaas peab teadma, kus failisüsteemis dump fail asub.

Vaikimisi on kirjeldatud nn andmebaasi DIRECTORY objekt nimega data_pump_dir, millele vastab failisüsteemis kataloog

$ORACLE_HOME/admin/$ORACLE_SID/dpdump

Kasutajale saab vastavad õigused anda sysdba rollis kasutaja näiteks sellise käsuga

SQL> grant read, write on directory data_pump_dir to priit;

Dump faili moodustamiseks tuleb öelda lähteandmebaasis

bash$ expdp priit/parool DIRECTORY=data_pump_dir \
 DUMPFILE=priit-20070330-exp.dmp LOGFILE=priit-20070330-exp.log

Seejärel tuleb lähteandmebaasi data_pump_dir kataloogi moodustunud dumpfail kopeerida teise andmebaasi failisüsteemis data_pump_dir kataloogi ning anda käsk

bash$ impdp priit/parool SCHEMAS=priit DIRECTORY=data_pump_dir \
 DUMPFILE=priit-20070330-exp.dmp LOGFILE=priit-20070330-imp.log

Tegevuse käigus näidatakse standardväljundisse progressi ja lisaks salvesatakse see näidatud logifaili.

Lisaks on võimalus expdp käsu abil ilma dumpfaili moodustamata hinnata andmete mahtu käsuga

bash$ expdp priit/parool ESTIMATE_ONLY=y DIRECTORY=data_pump_dir

Andmebaasi veebipõhise haldusliidese moodustamine

Mõnel juhul, näiteks peale andmebaasi genereerimist template'ist moodustatud skriptide abil, on vajalik tekitada lisaks ka andmebaasi veebipõhine haldusliides (Oracle Enterprise Manager 10g Database Control). Selleks tuleb tekitada andmebaasi mõned skeemid ning samuti ettevalmistada failisüsteemis asuv javapõhine veebiserver, tuleb anda käsud

bash$ emca -repos create
bash$ emca -config dbcontrol db

Viimane käsk näitab oma väljundis ära veebiliidese aadressi.

Andmebaasi kustutamine

Andmebaasi sh talle vastavate failide kustutamiseks tuleb andmebaasi seisata ning anda käsk

bash$ dbca -silent -deleteDatabase -sourceDB andmebaasinimi -sysDBAUserName sys -sysDBAPassword parool

Inventory

Oracle andmebaasile paigaldatud CPU (critical patch update) ning üksikute paikade nimekirjaga tutvumiseks tuleb anda käsk

basj$ $ORACLE_HOME/OPatch/opatch lsinventory

Klientprogrammi sqlplus kasutamine

Andmebaasi paigaldamisel paigaldatakse ka klientprogramm sqlplus, mille abil saab andmebaasile anda interaktiivses rezhiimis, samuti batch-rezhiimis, korraldusi. Programmi on kõige mugavam kasutada, kui on kirjeldatud ära nn oracle nimede fail

$ORACLE_HOME/network/admin/tnsnames.ora

Selles failis seostatakse ühenduse nimi ühenduse tekitamiseks kasutatud parameetritega, näiteks selliselt

test =
       (DESCRIPTION =
       (ADDRESS=(PROTOCOL=tcp)(HOST=baas.loomaaed.tartu.ee)(PORT=1521) )
       (CONNECT_DATA=
               (SERVICE_NAME=test.baas.loomaaed.tartu.ee)
               (INSTANCE_NAME=test)))

NB! Selle faili juures on indentimine oluline!

Seejärel saab andmebaasi poole pöörduda selliselt

bash$ sqlplus priit/parool@test
SQL>

Batch rezhiimi kasutamiseks tuleb esmalt moodustada sql lausetest koosnev tekstifaili ning anda see täitmiseks

bash$ sqlplus priit/parool@test @failinimi

Probleemid

Kui saab veateate, et spfile fail pole andmebaasi käivitamisel leitav, siis tasub üle kontrollida, kas ORACLE_SID väärtus on õiges tõstes, nimelt teatud juhtumitel on see tõstutundlik.