Edukira joan

Oracle Database

Wikipedia, Entziklopedia askea
Oracle Database
Jatorria
Azken bertsioa23ai
Ezaugarriak
Programazio-lengoaiaJava (mul) Itzuli, C eta C++
Sistema eragileaOracle Trace Metadata (en) Itzuli
Irakur dezakePlataforma-anitz
Idatz dezakeOracle Trace Metadata (en) Itzuli
Lizentziaend-user license agreement (en) Itzuli
Ekoizpena
GaratzaileaOracle Corporation

oracle.com…
Twitter: OracleDatabase LinkedIn: /oracleautonomousdatabase Edit the value on Wikidata

Oracle Database (normalean Oracle DBMS edo Oracle deitua) software tresneri multzoa da, Oracle Corporationek garatutako datu-baseak kudeatzeko sistema. Grid arkitektura berrian oinarrituta dago. Arkitektura berri honek zerbitzarien aniztasuna eta biltegiratzearen errekurtsoak eta prozesamendua lotzen ditu modu eraginkor batean.

Oracle Grid Computing hiru elementu dira:

1. Oracle Database 10g: Datu baseen ardatz-eragilea da. Beharrezkoak diren trenak dauzka funtzio ezberdinak lortzeko: informazioaren biltegiratzea antolatu, aurkezten diren zerbitzuen artean arreta handiagoa eduki,...eta abar. Era eraginkorrean antolatzen du informazioa, korreo elektronikoa, dokumentuak, multimedia fitxategiak eta XML.

2. Oracle Application Server 10g: Oracle-k daukan aplikazioen zerbitzaria. Zerbitzuen multzo bat da, ahalbidetzen du web-nabigatzaileari aldi berean parte hartzea datu-baseekin.

3. Oracle Enterprise Manager 10g: Ahalbidetzen dio datu-base kudeatzaileari bere eginkizunak. Web-nabigatzailea erabilita sartzen da: http://host_izena:5500/em[Betiko hautsitako esteka]. Ondoren, agertuko da orri bat erabiltzaile izena, pasahitza eta rolak eskatzen.

Datu basea kudeatzen duenari, Data Base Administrator (DBA) deritzogu, edo Datu-Base Kudeatzailea. Bere eginkizunak: Oracle instalatzea, datu-basea diseinatzea, sortzea, abiatzea, gelditzea, erabiltzaileak sortzea, lehentasunak ezartzea, segurtasun kopiak egitea eta datu basea berreskuratzea dira.

Oracle Arkitektura

[aldatu | aldatu iturburu kodea]

Datu-base bat ez da bakarrik bere datu-fisikoak, baita ere objektu-fisikoak, memoriakoan eta prozesukoak diren datuen konbinazioak ezagutu behar du.

Datu-Basearen Osagaiak

[aldatu | aldatu iturburu kodea]

Oracle datu-base baten osagaiak dira: Datuen fitxategiak (database files), Transakzio fitxategiak (log files) eta Kontrol fitxategiak (control files).

Datuen fitxategiak

[aldatu | aldatu iturburu kodea]
Datu-basearen informazio guztia dauka: erabiltzailearen datuak eta sistemaren datuak. Datu basean informazio sartu baino lehen beharrezkoa da taulentzako espazio bat gordetzea (tablespace) eta gero taula sortu, espazio horren barruan datuak sartzen ditugu. Tablespaces lagungarriak dira datu-basearen informazioa antolatzeko, horrela, tablespace ezberdinak erabiltzen dira datu-base ezberdinerako. Tablespace bakoitzak fitxategi bat baino gehiago eduki ditzake diskoan. Datu fitxategi bakoitza tablespace bakar baten parte izan daiteke. Oracle instalatzean honako tablespaces sortzen dira:
  • SYSTEM: Oracle kudeatzeko beharrezko den informazioa gordetzen den lekua, adibidez: Datuen hiztegiari buruzko informazioa. SYSTEM01.DBF fitxategian gordetzen da. 10g bertsioan SYSAUX deituriko tablespace bat existitzen da, SYSTEM laguntzeko eginkizunarekin.
  • USERS: Erabiltzaileen informazioa gordetzen du. Normalean DB probak egiteko taulak gordetzeko uzten digun tokia da. USERS01.DBF fitxategian gordetzen da.
  • TEMP: aldi baterako taulak gordetzen dira. TEMP01.DBF fitxategian biltegiratzen dira.
  • UNDOTBS1: Deuzestatzeko infromazioa gordetzen du. Datuak eguneratu baino lehen daukagun informazioa gordetzen du. UNDOTBS01.DBF fitxategian gordetzen dira. Transakzioa aaitu gabe dagoenean datuak berreskuratu daitezke. Tablespace honek rollback segmentuak ditu eta hauek barik ezingo lirateke transakzioak egin. Transakzioak egiten direnean segmentu bat lehenesten zaio. Hurrengo kontsultak rollback segmentuak, bere jabea eta tablespacea non dagoen erakusten digu:
  • Adibidea:

    SQL> SELECT SEGMENT_NAME, OWNER, TABLESPACE_NAME FROM DBA_ROLLBACK_SEGS;

    Transakzio fitxategiak

    [aldatu | aldatu iturburu kodea]
    Fitxategi hauek, datuen fitxategiak dira eta bertan Oracle-k gordetzen du datuen gainean gertatzen diren aldaketa guztiak (INSERT,UPDATE,DELETE). Datu hauek datuak berreskuratzeko erabiltzen dira. Fitxategi anitzak daude eta gomendagarria da beste disko batean gordetzean datuak ez galtzeko. Normalean sortzen dira Redo Log Online-eko taldea batzuk, talde bakoitzak partaideak egonda, taldearen partaide bakoitzak kopia berdinak izanda. LGWR prozesua (background process) idazte du aldi berean talde bateko Redo Log fitxategi guztietan. Oracle-k gutxienez bi Redo Log Online talde sortzen ditu, bere partaideak izando: RED001.LOG, RED002.LOG eta RED003.LOG.
    Redo Log erregistro baten edukia: Transakzioaren identifikazioa, bloke helbidea , errenkada zenbakia, zutabe zenbakia eta aldarazi den datuaren balioa.
    Redo Log Online bat erabiltzen denean, Oracle-k esleitzen dio sekuentzia zenbaki bat identifikaziorako. Sekuentzia-zenbaki hau gordetzen da kontrol-fitxategian eta datu-fitxategi guztien hasieran. Honekin berreskuratu ahal dira akats batengatik galdu diren datuak.

    Kontrol fitxategiak

    [aldatu | aldatu iturburu kodea]
    Oracle datu-basearekin zerikusia duen fitxategien informazioa dauka Datu basearen egituran egiten diren aldaketa guztiak agertzen dira kontrol fitxategietan. Fitxategietan agertzen den informazioa bakarrak aldatu ahal da Oracle zerbitzarian. Gomendagarria da babes-kopiak sortzea. Instalazioan sortzen diren kontrolerako fitxategiak hurrengoak dira: CONTROL01.CTL, CONTROL02.CTL, CONTROL03.CTL. Eta edukitzen duten informazioa hurrengoa da:
  • Datu basearen izena eta identifikazioa
  • Datu basearen sortze-data eta sortze-orduaren erregistroa
  • Lan-egiteko fitxategien eta Redo Log fitxategien izena eta kokapena
  • Redo Log historiala eta erregistratzen diren aldaketak.
  • Gordeta dauden Redo Logs-en kokapena eta egoera.
  • Babes-kopien kokapenak eta egoerak.
  • Aldaketak ematen direnean log-ean momentu horretan daukan zenbakiarekin gordetzen da (log-a)
  • Checkpoints-en informazioa
  • Datu fitxategien egoerak (On-line eta off-line)
  • Memoriaren Egitura

    [aldatu | aldatu iturburu kodea]

    Erabiltzailearen (client) eta zerbitzariaren (server) prozesuak haien artean komunikatzeko erabiltzen dira memoria egiturak. Oracle-k bi memoria-egiturak erabiltzen ditu: SGA (System Glbal Area) eta PGA (Program Global Area).

    System Global Area, SGA

    [aldatu | aldatu iturburu kodea]
    Datu basean kontsultatu diren azkenengo datuak gordetzeko erabiltzen diren memoria-egituren multzoa da. Datuen Informazioa eta Oracle zerbitzari kontrolerako Informazioa dauka. Hurrengo eremutan banatzen da:
  • SQL-ren inguru konpartituak : Datuei buruzko hiztegi-cacheaz eta liburutegi-cacheaz osatutakoa. Datuei buruzko hiztegi-cachea datu-baseen azkenengo aldaketen informazioa dauka, definizio desberdinaz edukiz: datu-base fitxategiak, zutabeak, erabiltzaileak, lehentasunak eta bestelako objektuak. Liburutegi-cachea exekutatu diren SQL aginduak biltzen ditu: aginduaren testua, aztertutako kodea eta exekuzio-plan.
  • Datuen buffer-a: erabili diren azkeneko datu-fitxategien eta irakurri diren azkenengo datu-blokeen kopiak biltzen ditu. Erabiltzaileak memoria eremu honetara sartzen dira. Datu-bloke edo datu-buffer bezala ezagutzen da.
  • Multzo handia: hautagarri den memoria-eremua da. SQL aginduen prozesamendurako erabiltzen ez diren egiturak gordetzeko erabiltzen da.
  • Java Multzoa: Tamaina zehazten du Java komandoen analisien betebeharrak betetzeko eta Java kodea biltzen du
  • Redolog-aren buffer-a: Transakzioak erregistratzen diren (INSERT, UPDATE, DELETE) edo datu basean idatzi baino lehen gertatzen diren aldaketen eremua da. Background prozesuek edo zerbitzariek erabiltzen dute.
  • Program Global Area, PGA

    [aldatu | aldatu iturburu kodea]
    Oracle erabiltzaile bakar batek erabiltzen duen memoria gunea da eta prozesuaren datuak eta informazioa dauka. PGA memoria ez da elkar trukatzen. Zerbitzari den prozesu bakoitzari PGA bat esleituko zaio, eta prozesu horretarako beste ezeinetarako ez da izango.
  • Antolaketa eremua SQL aginduen antolakuntzarako.
  • Bileraren informazioa: erabiltzaileen lehentasunak eta errendimenduaren estatistikak.
  • Kurtsorearen egoera, prozesamenduaren urratsaren kokapena adierazten duena.
  • Background Prozesuak

    [aldatu | aldatu iturburu kodea]

    Datu basearen egitura fisikoak eta memoria egiturak mantentzen eta aplikatzen dira background prozesu batzuk erabiliz. Prozesuen zenbakia aldakorra da eta datu basearen konfiguratzearen menpe dago. Datu-base berak kudeatzen ditu prozesu hauek. Zerbitzari prozesu multzo bat dago, datu-baseari funtzionatzen laguntzen diona: hauek background prozesuak dira.

    Background prozesuak hurrengoak dira:

    DBWR prozesua (DataBase WRiter):

    [aldatu | aldatu iturburu kodea]

    SGAko datuen bufferra kudeatzeko erabiltzen den prozesua da. idazketa diferitua egiten duen prozesua da. Redolog-en fitxategiak irauliko ditu DB-aren gainean beteta daudenean, eta lehenen aldarazitako blokeak grabatuko ditu SGAren datu-buffer-etik, baldin eta beste datu batzuk prozesatzeko bloke libreak behar baditu. DB-aren gainean idazten duen prozesu bakarra da.

    CKPT prozesuak (CheckPoint):

    [aldatu | aldatu iturburu kodea]

    Modu bat da datu-basearen bufferra sinkronizatzeko datuen fitxategiekin. Chekpoint-a gertatzen da era automatikoan RedoLog erregistro moduko fitxategi bat betetzen denean eta instantzia bat ixtean (SHUTDOWN) .

    LGWR prozesuak (LogWriter):

    [aldatu | aldatu iturburu kodea]

    Redolog-buffer-ean erregistratzen diren aldaketak grabatuko ditu redolog-fitxategien gainean.

  • Transakzio bat balioztatzen denean
  • RedoLog bufferraren heren bat betetzen denean
  • RedoLog bufferrean Mega bat baino gehiago aldatu denean
  • Timeout (3 segundoko tartean) gertatzen denean
  • DBWR eragiketak egin baino lehenago.
  • SMON prozesuak (System MONitor):

    [aldatu | aldatu iturburu kodea]

    SMON prozesuak (sistemaren monitorea), SELECT-en bat gauzatzeko beharrezkoak diren kalkulu konplexuen emaitza izanik, baliorik ez duten datuak desagerrarazi egingo ditu, eta espazioa askatu egingo du. Gainera, instantzia berreskuratzeari ekingo dio datu basea abaian jartzean, eta tablespace-etan aldamenean dauden tarte hutsak trinkotuko ditu. PMON-en bezala, prozesu hau “itzarri” egiten da aldian behin, esku hartu behar ote duen egiaztatzeko.

    PMON prozesuak (Process MONitor):

    [aldatu | aldatu iturburu kodea]

    PMON prozesuak (prozesuen monitorea) era anormalean bukatu diren konexioek blokeatuta dauzkaten baliabideak askatuko ditu.

    ARCH prozesuak (ARCHiver):

    [aldatu | aldatu iturburu kodea]

    RedoLog-en kopiak egiten ditu akatsen bat izanez gero datuak berreskuratu ahal izateko eta aukerakoa da.

    RECO prozesuak (RECOverer):

    [aldatu | aldatu iturburu kodea]

    LCKn, Pnnn eta SNPn prozesuei aukera jakin batzuk erabiltzen direnean baino ez zaie eragingo. Adibidez, aukera banatua (RECO), parallel server (LKCn), parallel query (Pnnn) eta erreplika aukera (SNPn) erabiltzen direnean.

    Errendimenduaren ikuspegi dinamikoak

    [aldatu | aldatu iturburu kodea]

    Kontrol fitxategien informazioa biltzen dute. Diskoaren eta memoriaren egituran datuak ematen dizkigute eta errendimenduarekin erlazionatuta daude. Bakarrik DBA (Datu basearen administratzailea) dauzka baimenak fitxategien informazioak ikusteko.

    Zer da oracle instantzia?

    [aldatu | aldatu iturburu kodea]

    Memoriaren egitura eta background-eko prozesu multzo bat da, datu basea kudeatzeko erabiltzen dena.

    Biltegiratze-egiturak

    [aldatu | aldatu iturburu kodea]

    Datu basearen datu guztiak maila logikoko tablespace-etan daude biltegiratuta.Tablespace bat maila fisikoan fitxategi bat edo gehiagotan biltegiratu daiteke.

    Segmentuak: Datu-base batean objektuan okupatzen duten lekuak (spaces) dira. Objektu sortzerakoan, adibidez, taula bat, automatikoki sortzen eta esleitzen zaio segmentu bat gutxienez.

    Luzapenak: Segidan dauden Oracle sententziak dira. Tablespace bat sortzerakoan, dagokion datu-.fitxategia goiburuko bloke bat edukiko du eta gainera luzapena aske bat soberan geratzen den fitxategiarekin osatuta.

    Oracle Blokeak: irteera/sarrerako gutxienezko unitateak dira. Sistema eragileen bloke bat edo gehiagoz osatuta daude. Oracle blokea definitzen da datu basea sortzerakoan, honako parametroan, DB_BLOCK_SIZE.


    Ikusi dugunez, objektu bat sortzerakoan segmentu bat sortzen da. Segmentuak tablespace barruan biltzen dira. Esan dezakegu segmentu bat tablespace baten fitxategi ezberdinetan egon dezakeen Oracle-bloke bat dela. Segmentu bat ezabatzean, okupatuta zegoen espazioa tablespace-ra itzultzen da. Segmentu bakoitzak honako parametroak dauzka: INITIAL, NEZT, MINEXTENTS, MAXEXTENTS, PCTINCREASE, PCTFREE, PCTUSED, TABLESPACE.

    Biltegiratze egiturak ikusteko hurrengo ikuspegiak erabiltzen dira:

  • DBA_SEGMENTS: Segmentuei buruzko informazioa: izena, jabea, segmentu-mota, tablespace, luzapenen eta blokeen tamaina, biltegiratze definizioak,...eta abar. Hurrengo kontsultak segmentuak, luzapenen kopurua eta jabeen (SCOTT izenakoa) blokeak erakusten ditu:
  • SQL> SELECT SEGMENT_NAME, TABLESPACE_NAME, EXTENTS, BLOCKS FROM DBA_SEGMENTS WHERE OWNER=’SCOTT’ ;

  • DBA_EXTENTS: Luzapenei buruzko informazioa: izena, jabea, blokeen tamaina, tablespace izena,...eta abar. Hurrengo kontsulta SCOTT jabeak daukan EMP segmentuaren luzapenak erakusten ditu:
  • SQL> SELECT TABLESPACE_NAME, BLOCKS, BYTES FROM DBA_EXTENTS WHERE OWNER=’OWNER’ AND SEGMENT_NAME=’EMP’;

    Segmentu motak

    [aldatu | aldatu iturburu kodea]
  • Taula edo Datuen segmentuak: CREATE TABLE erabilita sortzen dira. Datuak biltegiratzeko era arruntena taula izaten da.
  • Indize segmentuak: CREATE INDEX, indize jakin bateko erregistro guztiak, indize segmentu batzuetan biltegiratzen dira. Gomendagarria da tablespace edukitzea datuak ez diren indizeentzako, errendimendua hobetzeko.
  • Rollback segmentuak: Transakzioa okerra gertatu eta gero berreskurapena ahalbidetzen dutenak dira. Rollback erregistroaren egitura hurrengoa da: transakzioa identifikadorea, blokearen helbidea, errenkada zenbakia, zutabearen zenbakia eta aldaketa gertatu baino lehen zegoen datua. Datu-basean eragiketak egiteko beharrezkoa gutxienez Rollback segmentua bat edukitzea. Rollback bat sortzeko erabiltzen dugu:
  • CREATE [PUBLIC] ROLLBACK SEGMENT segmentu_izena_rb TABLESPACE izena_tablespace STORAGE ( INITIAL tamaina [K|M] NEXT tamaina [K|M] OPTIMAL tamaina [K|M] MINEXTENTS luz_kopurua MAXEXTENTS luz_kopurua | UNLIMITED);

  • Aldi Baterako Segmentuak: Oracle-k sortutakoak dira eta memorian sartzen ez diren eragiketak egiteko erabiltzen dira: CREATE INDEX, ORDER BY, GROUP BY, DISTINCT, UNION, INTERSECT, MINUS. Sententzia amaitzerakoan ezabatzen dira.
  • Segurtasun kudeaketa

    [aldatu | aldatu iturburu kodea]

    Segurtasuna bi mailatan banatu dezakegu: datuen segurtasuna eta sistemaren segurtasuna:

  • Sistemaren segurtasuna: datu basearen sarbidea eta erabilpena, sistema mailan kontrolatzen dute. Adib: erabiltzaile bat sartzen denean, segurtasun mekanismoak kontrolatzen dute ea posiblea den erabiltzaile hori datu basera sartzea.

  • Datuen segurtasuna: datu basearen sarbidea eta erabilpena, objektu mailan kontrolatzen dute. Erabiltzaileak objektu batera sartu direnean, segurtasun mekanismoak kontrolatzen dute ea posiblea den ala ez.
  • Erabiltzaileak

    [aldatu | aldatu iturburu kodea]

    Erabiltzailea, datu basean definitutako izen bat da. Izen horren bitartez datu basera konektatu daiteke eta objektu desberdinetara sar daiteke administratzaileak eman dizkion baimenak kontutan hartuz. Eskema batzuk daude erabiltzaile bakoitzari lotuta. Eskema hauek objektuen bilduma logikoak dira.

    Erabiltzaileak sortu

    [aldatu | aldatu iturburu kodea]

    Instalazioa egiten denean badaude sistematikoki sortzen diren bi erabiltzaile, hauek SYS eta SYSTEM erabiltzaileak dira. Bia erabiltzaile hauek administratzaile baimenak dauzkate eta nahi dutena egin dezakete datu basearen kudeaketan. Erabiltzaile berriak sortzeko hurrengo agindua erabiltzen dugu; CREATE USER, ondorengoa da SQL kodea:

     CREATE USER erabiltzailearen_izena
     IDENTIFIED BY sarrera-kodea
     DEFAULT TABLESPACE taula_espazioa
     TEMPORARY TABLESPACE taula_Espazioa
     QUOTA taulei_atxikitako_espazioa (MB kopurua)
     PROFILE erabiltzailearen_profila
    

    Jakiteko erabiltzaileen zerrenda, bi modutara egin dezakegu hurrengo aginduak erabiliz: USER_USERS orainaldiko_erabiltzailea eta ALL_USERS sortutako_erabiltzaile_guztiak.

    Erabiltzaileak birmoldatu

    [aldatu | aldatu iturburu kodea]

    Erabiltzaileak behin sortuta daudela moldatu daitezke hurrengo agindua erabiliz: ALTER USER. Aldaketak egitean erabiltzaile bakoitzak bere kodea baino ezin dezake aldatu, beste aldaketaren bat egiteko baimen bereziak eduki behar ditu.

    Erabiltzaileak ezabatu

    [aldatu | aldatu iturburu kodea]

    Erabiltzaileak ezabatu daitezke eta baita menpean dituzten objektu guztiak ere, DROP USER agindua erabiltzen dugu.

     SQL> DROP USER erabiltzailearen_izena [CASCADE];
    

    [CASCADE] agindua erabiltzaileak menpean dituen objektuak ezabatzeko erabiltzen da.

    Datu base batean erabiltzaileak eragiketa zehatzak egiteko dituen ahalmenak dira. Erabiltzaileka sortzen direnean beharrezkoa da lehentasunak ematea eragiketa desberdinak egin ahal izateko. Oraclek rol edo funtzio ezberdinak eskaintzen ditu eta horietako hiru garapen inguruari aplikatuta daude. Rolak lehentasun multzo ezberdinak osatzen dute.

    Funtzioak (rol) Lehentasunak
    CONNECT ALTER SESION, CREATE CLUSTER, CREAT DATABASE LINK, CREATE SECUENCE, CREATE SESSION, CREATE SYNONYM, CREATE TABLE eta CREATE VIEW
    RESOURCE CREATE CLUSTER, CREATE INDEXTYPE, CREATE OPERATOR, CREATE PROCEDURE, CREATE TABLE, CREATE SEQUENCE, CREATE TRIGGER eta CREATE TYPE.
    DBA Sistemaren lehentasunak dauzka.


    Bi lehentasun mota desberdin daude: objektuekiko lehentasunak eta sistemarekiko lehentasunak.

      1- Objektuekiko lehentasunak: Beste erabiltzaileen objektuekiko aldaketak egiten baimena ematen digute. Adib: beste erabiltzaile baten taula begiratzeari deitzen diogu objektuekiko lehentasuna. GRANT agindua erabiltzen dugu objektuekiko lehentasuna emateko. GRANT aginduarekin INSERT; UPDATE edo REFERENCES lehentasunak eman daitezke.
      2- Sistemarekiko lehentasunak: SQL aginduak exekutatzeko beharrezkoak diren lehentasunak dira, hauek ekintza desberdinak egiteko beharrezkoak dira.

    Lehentasunak kendu

    [aldatu | aldatu iturburu kodea]

    SQL REVOKE aginduarekin lehentasunak kendu ditzakegu, formatua hurrengoa da:

     REVOKE {priv_objeto [,priv_objeto] ...|ALL [PRIVILEGES]}
     ON [usuario.] objeto
     FROM {usuario | rol | PUBLIC} [,{usuario | rol | PUBLIC}]...;
    

    Rolak lehentasun kopuru bat dira. CREATE ROL aginduarekin sortzen dira rolak

    Rolei baimenak eman

    [aldatu | aldatu iturburu kodea]

    Rolak sortuak ditugunean baimenak eman behar dizkiogu, GRANT aginduarekin egiten dugu. Erabiltzaile bati baimenak emateko hurrengo agindua idatziko dugu: GRANT ACCESO TO “erabiltzailearen izena ” .

    Rolen baimenen limiteak

    [aldatu | aldatu iturburu kodea]

    Rolak egiten direnean askotan ez dira baimen guztiak ematen, orduan limite horiek gauza asko egitera murrizten gaitu.

    Rolei baimenak kentzea

    [aldatu | aldatu iturburu kodea]

    Rolak sortzerakoan baimenak ematen dira, baimen hauek kentzea posiblea da eta hurrengo agindu hau erabiltzen da: REVOKE.

    Rolak kentzea

    [aldatu | aldatu iturburu kodea]

    Rolak ere kendu daitezke eta honetarako DROP ROLE ”rolaren izena” agindua erabiltzen dugu.

    Rolen informazioa datuen hiztegietan

    [aldatu | aldatu iturburu kodea]

    Hurrengo ikuspegiak erabili ditzakegu rolei emandako baimenak zeintzuk diren ikusi ahal izateko: ROLE_SYS_PRIVS, ROLE_TAB_PRIVS, ROLE_ROLE_PRIVS, SESSION_ROLES, USER_ROLE_PRIVS.

    Datu basearen errekurtsoen limiteen multzoak dira profilak. Profilak sortzen ez baditugu lehenetsitako profilak erabiltzen ditugu. Profilak sortzeko hurrengo agindua erabiliko dugu: CREATE PROFILE.

    Profilak erabili ahal izateko administratzaileak hurrengo agindua exekutatu behar du: ALTER SYSTEM SET RESOURCE_LIMIT=TRUE; (FLASE izango balitz profilen erabilpena bertan behera gelditu litzateke).

    Agindu desberdinak erabil ditzakegu profilen informazioa ezagutu ahal izateko. Profilen limiteei buruz informazioa jakiteko DBA_PROFILES agindua erabiliko dugu. Profilak ezabatzeko hurrengo agindua erabiliko dugu: DROP PROFILE “profilaren_izena”.

    Tablespace-ren Kudeaketa

    [aldatu | aldatu iturburu kodea]

    Tablespace bat biltegiratzeko unitate logiko bat da, maila fisikoan diskoaren fitxategi bat edo gehiago dira. Gomendagarria da ez nahastea aplikazio ezberdineko datuak tablespace berean. Oracle instalatzean hurrengo tablespace-ak sortzen dira: SYSTEM, USERS, TEMP edo UNDOTBS1.

    Tablespacearen sorrera:

    [aldatu | aldatu iturburu kodea]

    Tablespace bat sortzeko CREATE TABLESPACE agindua erabiltzen da. Agindu honek ahalbidetzen du taulen espaziora fitxategi bat edo gehiago esleitzea eta baliorik gabeko espazioa (space) ezartzea.

     CREATE [UNDO] TABLESAPCE tablespace_izena 
    DATAFILE ‘fitxategiizena’ [SIZE osoa [K|M] [REUSE]
    [AUTOEXTEND {OFF|ON klausulak}] [, ‘‘fitxategiizena’ [SIZE osoa [K|M] [REUSE]
    [AUTOEXTEND {OFF|ON klausulak}] ] . . . [DEFAULT STORAGE (INITIAL tamaina NEXT tamaina MINEXTENTS tamaina MAXEXTENTS tamaina PCTINCREASE balioa ) ] [ONLINE | OFFLINE] [PERMANENT | TEMPORARY] [EXTENT MANAGEMENT {DECTIONARY | LOCAL {AUTOALLOCATE | UNIFORM [SIZE tamaina[K|M]}}];

    Atalen azalpena:
    1.UNDO : “aldaketak desegin” motako tablespace bat sortzen dela ezartzen du, hau da, Rollback bat. Ez badago ‘desegin’ motako tablespace bat, UNDO aukerarekin sortuko da bat eta Oracle-k automatikoki esleitzen dio instantzia “desegin” tablespacez moduan.
    2.DATAFILE: tablespace-a osatzen duen edo duten fitxategia edo fitxategiak zehaztuko ditu.
    3.SIZE: tablespace-ren tamaina adierazten duen zenbaki osoa da. Kilobytetan edo Megabytetan agertu daiteke. K ipiniz 1.024 bider zenbaki osoaz biderkatzen da, M ipiniz 1.048.576 bider zenbaki osoaz biderkatzen da.
    4.REUSE: fitxategia existitzen bada berrerabiltzen du, existitzen ez da sortuko du.
    5.DEFAULT STORAGE: tablespace-an sortzen diren objektu guztien lehenespenezko parametroak zehaztuko ditu.
    6.INITIAL: lehenengo luzapenaren tamaina (bytetan) definituko du.
    7.NEXT: bigarren luzapenaren tamainari dagokio. Objektuari esleituko den hurrengo luzapenaren gutxieneko tamaina ezartzen du.
    8.MINEXTENTS: segmentua sortzen denean esleitzen den luzapen-kopurua da. Gutxienekoa eta lehenespenezkoa 1 izango da.
    9.MAXEXTENTS: segmentu batek gehienez eduki ditzakeen luzapenen kopurua. Gutxienekoa izango da eta lehenespenezko gehienezkoa, berriz, datuen blokearen tamainaren araberakoa izango da.
    10.PCTINCREASE: Luzapenaren tamainak haztean erabiliko duen ehunekoa. Gainerako luzapenen tamaina (3, 4.a...) ondorengo formula hau erabilita kalkulatuko dugu:

     NEXT = NEXT + (PCTINCREASE*NEXT)/100
    


    11.ONLINE: beraren eraginez, tablespace-a, sortu eta berehala, erabilgarri egongo da.
    12.OFFLINE: beraren eraginez, tablespace-a, sortu eta berehala, ez da erabilgarri egongo.
    13.PERMANENT: tablespace-a objektu iraunkorrak gordetzeko erabil daitekeela zehaztuko du.
    14.TEMPORARY: tablespace-a aldi baterako objektuak gordetzeko baino ez dela erabiliko zehaztuko du.
    15. AUTOEXTEND: Tablespace-tan dauden datu-fitxategien hazkuntza automatikoa aktibatu edo desaktibatzeko. Tablespace bat betetzen bada, aukera hau erabil dezakegu fitxategiaren tamaina hazteko. Desaktibatzeko AUTOEXTEND OFF erabiltzen da. Aktibatzeko honako formatua erabiltzen da:

     AUTOEXTEND ON NEXT osoa {K|M} 
     MAXSIZE { UNLIMITED | osoa {K|M} }
    
    • NEXT osoa: emandako diskoan fitxategiarentzat alokatuko den espazioaren (space) hazkuntza da, Kilobytetan edo Megabytetan ematen da.
    • MAXSIZE : Fitxategiaren luzapenera diskoan alokatzen den espazio maximoa da.
    • UNLIMITED: Alokatutako diskoan ez dagoela espazio (space) limiterik.
    • EXTENT MANGEMENT: Tablespace-ak daukan luzapenen kudeaketa ezartzen du.

    Aldi-baterako Tablespace-ak

    [aldatu | aldatu iturburu kodea]

    Nahiz eta Aldi-baterako Tablespace-aren sorkuntza CREATE TABLESPACE aginduarekin egin daiteke, gomendagarria da hurrengo komandoa erabiltzea:

     CREATE TEMPORARY TABLESAPCE tablespace_izena
     TEMPFILE ‘fitxategiizena’ [SIZE osoa [K|M] [REUSE] 
     [AUTOEXTEND {OFF|ON klausulak}]
     [, ‘‘fitxategiizena’ [SIZE osoa [K|M] [REUSE]
     [AUTOEXTEND {OFF|ON klausulak}] ] . . .
     [MAXSIZE { UNLIMITED | osoa { K | M } } ]
     [EXTENT MANAGEMENT LOCAL UNIFORM [SIZE osoa { K | M } ]];
    

    TEMPFILE fitxategia ez da beharrezkoa DB_CREATE_FILE_DEST parametroa definituta badago. Parametro honetan Oracle-k 100 MBko aldi-baterako fitxategia sortzen du.

    SIZE motako luzapenak SORT_AREA_SIZE parametroaren multiploak izango dira. Aldi-baterako segmentua ezarritako tamainaren blokeak jasango ditu.

    Adibidez:

     CREATE TEMPORARY TABLESPACE TEMPEJER TEMPFILE
    ‘ C:\ORACLE\ PRODUCT\10.1.0\ORADATA\ORCL\TEMP_EJERCCI.DBF ’ SIZE 10M;
    

    Tablespaceri buruzko informazioa duten Ikuspegiak (view)

    [aldatu | aldatu iturburu kodea]

    Tablespaceei buruzko informazio lortzeko ikuspegi ezberdinak daude:

    • DBA_DATA_FILES: Tablespaceak erabilitako fitxategien buruzko informazioa erakusten du. Espazioa bytetan definituta dago. Eduki dezakeen tamaina maximoa MAXBYTES izango da. Kontsulta egiteko SYS ematen dituen lehentasunak behar dira.
    • USER_FREE_SPACE: Erabiltzaileak erabili dezakeen luzapen askeak erakusten ditu. Ez dira ondoz-ondoko blokeetan egon behar. Ikuspegi honetako zutabeak izango dira:
      • FILE_ID: Fitxategiaren identifikazio zenbakia
      • BYTES: Aske dauden byte kopurua
      • BLOCK_ID: Lehenengo bloke askearen identifikazioa
      • BLOCKS: Bloke askeen kopurua.
      • RELATIVE_FNO: Lehengo bloke luzapenaren fitxategiak daukan zenbaki erlatiboa.
    • DBA_FREE_SPACE: Tablespace guztietan aske dauden luzapenak erakusten ditu.
    • DBA_TABLESPACES: Tablespace guztien deskribapenak erakusten ditu. Hurrengo agindua erabiltzen da:
     SQL> SELECT TABLESPACE_NAME, CONTENTS FROM DBA_TABLESPACES;
    
    • DBA_TS_QUOTAS: Tablespace bakoitzean erabiltze bakoitzak erabilitako byte kopuruak erakusten ditu. Kontsulta egiteko SYS ematen dituen lehentasunak behar dira. Ikuspegiaren zutabeak honakoak dira: BYTES, MAX_BYTES, BLOCKS, MAX_BLOCKS.

    Tablespaceen aldaketak:

    [aldatu | aldatu iturburu kodea]

    Tablespaceak behin sortuak, aldatu ahal dira. Aldaketa hau egiteko ALTER TABLESPACE agindua erabiltzen da. Aginduaren formatua hurrengoa da:

     ALTER TABLESPACE tablespace_izena
     {
     [ADD DATAFILE  ‘fitxategi_izena’ [SIZE osoa [K|M] ] [ REUSE ]
     [ AUTOEXTEND ON .. | OFF ]
     [, ‘‘fitxategiizena’ [SIZE osoa [K|M] [REUSE]
     [ AUTOEXTEND ON . . | OFF ] ] . .]
     [ RENAME DATAFILE ‘fitxategia’ [ , ‘fitxategia’ ] . . .
     TO ‘fitxategia’ [ , ‘fitxategia’ ] ]
     [DEFAULT STORAGE biltegiratze_klausulak ]
     [ONLINE | OFFLINE]
     };
    

    Atalen azalpena:

    • tablespace_izena: aldatu nahi dugun tablespace izena da.
    • ADD_DATAFILE: Gehitzen dizkio tablespace-ri fitxategi bat edo gehiago.
    • RENAME DATAFILE: Tablespace-ean existitzen den fitxategi baten izena aldatzen du. Aldaketa hau sistema eragilerik egiten da. Beraz, tablespacea desaktibatuta (offline) egon behar da.
    • DEFAULT DATAFILE: Tablespace batean sortzen diren elementuen lehenetsiko balioak dira.
    • ONLINE: Taulak aktibatzen ditu.
    • OFFLINE: Taulak desaktibatzen ditu.

    Tablespaceak Ezabatu:

    [aldatu | aldatu iturburu kodea]

    Erabiltzen ez dugun tablespace bat ezabatzeko DROP TABLESPACE agindua erabiltzen dugu. Aginduaren formatua hurrengoa da:

     DROP TABLESPACE tablespace_izena
     [INCLUDING CONTENTS [AND DATAFILES] [CASCADE CONSTRAINTS] ];
    

    Atalen azalpena:

    • tablespace_izena: ezabatuko den tablespace izena da.
    • INCLUDING CONTENTS aukerak ahalbidetzen du datuak dauzkaten tablespaceak ezabatu. Aukera hau ez balego, hutsik dauden tablespaceak bakarrik ezabatuko lirateke.
    • ADD DATAFILES: erlaziorik daukaten fitxategiak ezabatzen ditu.
    • CASCADE CONSTRAINT: Tablespacearekin erlazionatuak dauden murrizketak ezabatzeko.

    Adibidea:

     DROP TABLESPACE txikia INCLUDING CONTENTS AND DATAFILES;
    

    Gomendagarria da tablespacea OFFLINE moduan ipintzea ezabatu baino lehen.

    Biltegiratze parametroak:

    [aldatu | aldatu iturburu kodea]

    Biltegiratzeko parametroa DEFAULT STORAGE da normalean, hala ere, ‘eskuz’ definitu ditzakegu behar ditugun biltegiratze parametroak. CREATE TABLE agindua hurrengoa izango da:

     CREATE TABLE taularen_izena
     (
     Zutabe1 	Datu_mota	 [NOT NULL], 
     Zutabe2 	Datu_mota	[NOT NULL],
     [taularen murrizketak]......................
     )
     STORAGE
     (
     INITIAL	tamaina
     NEXT	        tamaina
     MINEXTENTS	tamaina
     MAXEXTENTS	tamaina
     PCTINCREASE	balioa
     )
     [ TABLESPACE tablespacearen izena];
    

    Tablespace baten deskonexioa :

    [aldatu | aldatu iturburu kodea]

    Datu basea irekita badago edozein tablespace deskonektatu ahal da, SYSTEM, Rollback edo aldi baterako segmentuak dauzkaten tablespaceak izan ezik. Erabiltzaile bat, deskonektatuta dagoen tablespace batera sartzen saiatzen bada erroreko mezu bat agertuko da. Tablespace baten deskonexioa egiteko hurrengo agindua erabiltzen da:

     ALTER TABLESPACE tablespace_izena { ONLINE | OFFLINE [NORMAL | TEMPORARY | IMMEDIATE ] };
    
    • OFFILE: Tablespacea desaktibatzen du eta bere segmentuei sarrera debekatzen du.
    • NORMAL: Tablespacearen fitxategien SGA garbitzen du.
    • TEMPORARY: Oraclek checkpoint bat exekutatzen du.
    • IMMEDIATE: Ez du checkpoint bat exekutatzen.

    Beste Objektuak

    [aldatu | aldatu iturburu kodea]

    Sekuentzia bat Datu-Basearen objektu bat da, bere funtzioa zenbaki osoa bakarrak (unique) sortzea da.Erabilgarria da klabe primarioen balioak sortzeko. Aginduaren formatua hurrengoa da:

     CREATE SEQUENCE sekuentziaren_izena
     [INCREMENT BY osoa]
     [START WITH osoa]
     [MAXVALUE osoa |NOMAXVALUE]
     [MINVALUE osoa |NOMINVALUE]
     [CYCLE|NOCYCLE]
     [ORDER|NOORDER]
     [CACHE osoa |NOCACHE];
    

    Atalen azalpena:

    • INCREMENT BY osoa: Sekuentziaren gehikuntza. Lehenetsiko balioa 1 izango da. Negatiboa bada beherapena gertatuko da.
    • START WITH osoa: Sekuentziaren hasierako balioa
    • MAXVALUE osoa: Sekuentziak lortuko duen balio maximoa.
    • NOMAXVALUE: Balio maximoa 1027 izango da gehikuntza sekuentzia baterako edo –1 beherapen sekuentzia baterako.
    • MINVALUE osoa: Sekuentziak lortuko duen balio minimoa.
    • NOMINVALUE: Balio minimoa 1 izango da gehikuntza sekuentzia baterako edo -1026 beherapen sekuentzia baterako
    • CYCLE | NOCYCLE: CYCLE sekuentziak berriro martxen jartzen da maximora edo minimoa ailegatzerakoan, NOCYCLE ez.
    • ORDER | NOORDER: ORDER segurtasun neurria da, sekuentziaren zenbakien ordena ziurtatzen du, baina NOORDER aldiz ez.
    • CACHE | NOCACHE: Datuak memorian gorde ahal diren ala ez definitzen du.

    Adibidea:

     CREATE SEQUENCE KODEAK START WITH 1 INCREMENT BY 1 MAXVALUE 99;
    

    1. Sekuentziaren datuetara sartzeko SEKUENTZIAREN_IZENA.CURVAL edo SEKUENTZIAREN_IZENA.NEXTVAL erabiltzen da.

    Adibidea:

     INSERT INTO FRUTAS VALUES (KODEAK.NETVAL, ‘NARANJAS’);
    

    2. Sekuentzia datu basetik ezabatzeko:

    Adibidea:

     DROP SEQUENCE KODEAK;
    

    Taula bateko lerrora iristeko bidea emango digun zuhaitz-egitura da aurkibidea. Funtsean, bi eratakoak izango dira aurkibideak: erabiltzaileak definitzen dituenak eta taulen lehen mailako gakoen gainean Oracle-k sortzen dituenak.

    Lehen mailako gakoen gainean sortzen diren aurkibideak murrizketak ere badira (constraints) eta, horrela, aurkibidea erabiltzaileak ala sistemak sortua izan den jakin nahi badugu, aurkibidea ez ezik murrizketa ere baden egiaztatu beharko dugu.

    Aurkibide bat, murrizketen aurkibide-taulan barik (user_constraints), hiztegiaren aurkibideen taulan (user_indexes) ageri bada, erabiltzaileak sortutako aurkibidea izango da. Aurkibidea sortzeko, hurrengo agindua erabiltzen da.

     CREATE INDEX izen_aurkibidea
     ON izen_taula(izen_zutabea [ASC | DESC], [, izen_zutabea[ASC | DESC]]...)
     [TABLESPACE izen_tablespace]
     [STORAGE storage_clause]
     [beste_klausulak]
    

    Atalen azalpena:

    • izen_taula: indexatuko den taula da.
    • Colum: indexatzen diren zutabeak
    • ASC | DESC: Indizea gorakorra edo beherakorra definitzen du.

    Adibidea:

     CREATE INDEX INIDICEEMPLE ON EMPLE (EMP_NO);
    

    Aurkibideak ezabatzeko, DROP INDEX agindua erabiltzen da.

    Adibidea:

     DROP INDEX INDICEEMPLE;
    

    Datu-baseen loturak (LINK):

    [aldatu | aldatu iturburu kodea]

    Datu basearen loturak, ahalbidetzen dio Oracle aplikazioari datu-baseen arteko komunikazioa. Honen bidez, Oraclek bi Datu-Baseak konektatzen ditu elkarrekin.Oro har urrutiko datu baseetan kontsultak egiteko erabiltzen dira loturak.

     CREATE [PUBLIC] DATABASE LINK lotura_izena
     CONNECT TO erabiltzailea IDENTIFIED BY pasahitza
     USING ‘konexio_katea’;
    

    Atalen azalpena,

    • PUBLIC: Datu-base lotura publikoa sortzen da.
    • konexio_katea: Urrutian konektatzeko erabiltzen den konexioaren katea da.
    • erabiltzailea/pasahitza: Urrutian (remote) dagoen datu-basearen erabiltzailea eta pasahitza da.

    urrutiko datu baseetan konektatzeko: TAULA_IZENA@LOTURA_IZENA

    Adibidea:

     CREATE DATABASE LIINK NIRE_LOTURA CONNECT TO MAJESUS IDENTIFIED BY RAMOS USING ‘DAI’;
    
     SELECT * FROM EMPLE@NIRE_LOTURA;
    


    Loturak ezabatzeko, DROP DATABASE LINK agindua erabiltzen da. Formatua:

     DROP [PUBLIC] DATABASE LINK lotura_izena
    

    Adibidea:

     DROP DATABASE LINK NIRE_LOTURA;
    

    Segurtasun kopiak

    [aldatu | aldatu iturburu kodea]

    Datu base kudeatzaile baten eginkizunik garrantzitsuenetariko bat, datuak beti erabilgarri edukitzea da, datu basea zaintzea egon daitezkeen erroreengandik eta erabilgarri egotea egitea ahal bezain laster. Horregatik datu base kudeatzailea segurtasun kopiak egin behar dute erregularki. Oso garrantzitsuak dira datu baseak errekuperatzeko.

    Segurtasun Kopia Logikoak

    [aldatu | aldatu iturburu kodea]

    Kopia logikoak, datu basearen datuak irakurtzea eta kanpora ateratzea baliatuko dira, esportazio fitxategi bat sortzen, zeinek Oracleren IMPORT aginduarekin errekupera daitekeena. Erabiltzaileak, taulak eta datu batera kanporatu daiteke.

    Segurtasun Kopia Fisikoak

    [aldatu | aldatu iturburu kodea]

    Kopia hauek, datu-baseak osatzen dituzten fitxategiak kopiatzean datza. Fitxategien sistemetako segurtasun kopiak ere deituta. Oracle-k segurtasun kopia fisikoen bi modu jasatzen ditu: lerroz kanpokoa edo lerroan.

    Lerroz Kanpoko Segurtasun Kopiak

    [aldatu | aldatu iturburu kodea]

    Datu Basea era normalean deskonektatu denean sortzen da, eta ez edozein akatsengatik, baizik eta datu-basea honetako komando batetik itxi egin denean: SHUTDOWN, SHUTDOWN INMEDIATE edo SHUTDOWN TRANSACCTIONAL.

    Lerroetako Segurtasun Kopiak

    [aldatu | aldatu iturburu kodea]

    Datu-Basea irekita dagoenean egitan dira, horretarako datu-basea ARCHIVELOG moduan egon behar da, REDO Log-ak artxibatzeko eta egindako transakzio guztien erregistroak sortzeko.

    Kanpo estekak

    [aldatu | aldatu iturburu kodea]