==== 5. ORACLE alapok===== **5.1 ORACLE komponensek** Az Oracle – objektumrelációs adatbáziskezelő rendszer.\\ Az utolsó években a relációs ABKR-ek fejlődése oda vezetett, hogy a modern ABKR nem csak relációkat képesek kezelni, hanem objektumokat is. Ez alapján létrejöttek az úgy nevezet** ORDBMS (Object-Relation DataBase Management System) objektumrelációs adatbázis-kezelő rendszerek**, melyek támogatják nem csak a relációs eszközöket (kulcs, ...), hanem az objektumorientált eszközöket (módszerek, ... ) is. Az Oracle Szervereken alapuló lehetséges architektúrák a következők: * Host alapú * Kliens/szerver * Elosztott feldolgozás * Webes feldolgozás Oracle8i Server opciói:\\ * Oracle Advanced Security * Oracle Advanced Replication * Oracle Parallel Server * Oracle Visual Information Retrieval * Oracle Advanced Networking * Oracle interMedia * Oracle Spatial * Oracle ConText * WebServer * OLAP Az Oracle9i két nagy integrált komponenst tartalmaz:// Oracle9i Application Server, Oracle9i Database (ABKR),// amelyek az Oracle8i volt komponenseit integrálják. Az Oracle honlapján megtalálható az Oracle9i //Developer Suite,// amely a következő komponenseket tartalmaz: * SQL*Plus * Designer * Forms Developer * Report Developer * JDeveloper (Java programozási eszközök), és más komponenseket. Az Oracle9i Database az Adatbázis Szerver magját alkotja, amely négy változatban alkalmazható: * Enterprise Edition (nagy rendszerek létrehozására); * Standard Edition (közepes vállalati AB Serverének létrehozására); * Personal Edition (egy felhasználó részére); * Oracle9i Lite (alkalmazások mobil telefonokban, …). Fejlesztési eszközök: * Oracle Forms * Oracle Reports (jelentéskészítő) * SQL*Loader * Oracle Designer * Personal Oracle8i Az alkalmazások létrehozása szempontjából lényeges, hogy az Oracle-ban a fejlesztők alkalmazhatnak: * procedurális konstrukciókat (PL/SQL); * tárolt eljárásokat; * AB-triggereket; * csomagokat. Az Internet-technológiák az Oracle-ban a// Java// és// XML// nyelvek alapján fejleszthetők. **5.2 Távoli AB** **Távoli AB** – egy távoli számítógépen tárolt AB, amely az adatbázis-kapcsoló által érhető el. Távoli számítógép – a hálózatban minden olyan számítógép, amely nem gazda-számítógép.\\ **Pillanatfelvétel** – egy távoli AB részének lokális másolása. A másolat frissítése automatikusan (meghatározott időintervallumban) vagy parancsok által történik.\\ Az **adatbázis-kapcsoló** – olyan objektum, amely a helyi AB-ban tárolódik, és egy távoli AB azonosítására szolgál, tartalmazza ahhoz a kommunikációs útvonalat és opcionálisan tartalmazza a felhasználó nevét és jelszavát. Az AB-kapcsoló létrehozása a **CREATE DATABASE LINK** parancs által az //SQL*Net// komponensben történik: CREATE DATABASE LINK AB_kapcsoló_név [CONNECT TO] felhasználó IDENTIFIED BY jelszó … USING ;** A CONNECT TO opció – távoli kapcsolót hoz létre.\\ A távoli táblák elérése hasonlít a helyi táblák eléréséhez. A távoli tábla neve után meg kell adni a kapcsoló nevét is. **Példa.**\\ CREATE DATABASE LINK debrecen CONNECT TO USER felh_1 IDENTIFIED BY ...; SELECT * FROM diak@debrecen; CREATE DATABASE LINK example_backup CONNECT TO example IDENTIFIED BY USING ‘example_database’; UPDATE students@ example_backup SET szak = ‘Zene’ WHERE id = 10005; **AB-kapcsoló törlése:** DROP DATABASE LINK AB_kapcsoló_név Hivatkozás a helyi táblára: //[séma.] tábla// \\ és hivatkozás a távoli táblára: //[séma.] tábla @AB_kapcsoló// Az AB globális nevének megadása // AB_név.Domain_név.// Például, Sales.us.acme.com, \\ ahol a Sales – az AB neve, a us.acme.com – a domain neve. **5.3 Az Oracle adatbázis architektúrája** **Alapvető fogalmak**\\ **Adatszótár** – táblák és nézetek olyan együttese, amelynek a tulajdonosa a SYS és a SYSTEM nevű AB adminisztrátor. Az adatszótár alapvető információt tartalmaz az ABKR-ről és minden felhasználójáról. Ezeket a táblákat az Oracle automatikusan kezeli. Az adatszótár leggyakrabban használt nézetei: * ALL_CATALOG – a felhasználó számára elérhető táblák, nézetek, szinonimák, szekvenciák * ALL_INDEXES – a felhasználó számára elérhető indexek * ALL_IND_COLUMNS – a felhasználó számára elérhető táblákra épített indexek oszlopai * ALL_OBJECTS – a felhasználó számára elérhető objektumok * ALL_SEQUENCES – a felhasználó számára elérhető szekvenciák * ALL_SYNONIMS – a felhasználó számára elérhető szinonimák * ALL_TABLES – a felhasználó számára elérhető relációs táblák * USERS_CATALOG – a felhasználó saját táblái, nézetei, szinonimái és szekvenciái * USERS_TABLES – a felhasználó saját táblák leírása * USERS_TRIGGERS – a felhasználó triggereinek leírása **Elosztott AB** – adatbázisok olyan együttese, amelyeket külön-külön lehet kezelni, és ez által az információt megosztani.\\ **Elosztott feldolgozás** – több processzoron történik úgy, hogy egy közös eredményt kapjunk.\\ **Elosztott lekérdezés** – egy hálózat több csomópontjában elhelyezett AB-ban keresi az adatokat.\\ **Előre görgetés (visszagörgetés)** – amikor egy AB egy ROOLBACK parancs által visszakerül a tranzakció kezdeti állapotba. \\ **Ellenőrzési pont** – olyan pont, ahol a módosított blokkok az AB-ba íródnak. Egy ellenőrzési pont bekövetkezik, ha a változásnapló-állomány blokkok írásaink száma egyenlő lesz a LOG_CHECKPOINT_INTERVAL értékkel, vagy ha betelik egy on-line változásnapló-állomány.\\ **Erőforrás** – egy olyan logikai AB objektum, amit zárolni lehet. A felhasználó sorokat és táblákat, mint erőforrást tud zárolni. \\ **Gyorsító tár** – olyan ideiglenes terület, ahol a felhasználók által éppen feldolgozott vagy módosított adatbázisadatok helyezkednek el. \\ **Partíciónált tábla** – olyan tábla, amelynek a sorait kisebb azonos szerkezetű táblákba helyezhetjük. \\ **Lokális (helyi) adatbázis** – AB, amely a saját gépünken helyezkedik el.\\ **Adatbázis (tárolt) objektumok** – olyan elemek, amelyeket létrehozhatunk és tárolhatunk az AB-ban. Ezek lehetnek: * Táblák * Nézetek * Szinonimák * Indexek * Szekvenciák * Klaszterek * Oszlopok * Triggerek * Jogosultságok (privilégiumok) * Felhasználó-definiált adattípusok * Adatszótár * Szerepkörök * Távoli adatbázisok * Pillanatfelvételek * Versenyhelyzet (több felhasználó esetén). **Egyedi folyamat** –az adatbázis-műveletek módja, amikor csak egyetlen felhasználó fér hozzá az AB-hoz.\\ **Puffer (az AB-ban)** – a felhasználók által éppen feldolgozott és módosított adatbázis-blokkok ideiglenes tárolási helye. \\ **Példány** – az erőforrások összegzése, ami az Oracle futásához és az AB eléréséhez szükséges.\\ **SGA (Rendszer globális területe)** – egy megosztott terület a fő memóriában, amelyben az Oracle működik a futása alatt.\\ **Vezérlőállomány** – adminisztrációs fájl, amely az AB rendszer indításához és futtatásához szükséges. A vezérlőállomány az adatbázishoz, és nem a példányhoz tartozik.\\ **Init.ora –** fájl, amely az AB rendszer paramétereit tartalmazza.\\ **Szótár gyorsító-tár** – egyike az SGA által tartalmazott adatszótár-információkat tartalmazó gyorsító-táraknak. Növeli a teljesítményt, mivel ezekre az adatokra gyakran van szükség.\\ **PGA (program globális területe)** – tartalmazza az aktuális folyamat adatait és a vezérlési információt. **Felhasználói és rendszer-adatok**. Az AB-hoz tartozó adatfájlokban tárolódnak: * A rendszer-adatok * felhasználói adatok. **Rendszer-adatok** azok az adatok, amelyekre az AB-nak a felhasználói adatok kezeléséhez és az AB működéséhez szüksége van.\\ A rendszer-adatok típusai: * Táblainformáció (a tábla mezőiről és adatok típusairól) * Területinformáció (az AB fizikai terület méretei) * Információ a felhasználókról (a felhasználó neve, jelszava, privilégiumai) * Információ az adatfájlokról (az z adatfájlokról számáról, helyéről, utolsó használat idejéről). **Változásnapló**. A műveletek szekvenciális naplója, amely akkor használható, ha az AB tartalmát nem kell a lemezen felülírni. A változásnaplóra úgy tekinthetünk, mint egy tranzakciónaplóra.\\ **On-line változásnapló.** Az a változásnapló, amely még nem került archiválásra. Minden AB-ban kell, hogy legyen legalább két on-line változásnapló. Szükség esetén, az AB előző állapotát a változásnapló alapján vissza lehet állítani. \\ **Archiválás**. Az on-line változásnaplók adatainak megőrzése. Ezek az adatok a visszaállításhoz szükségesek. Puffer a változásnaplóban – a felhasználók által éppen feldolgozott és módosított változásnapló-blokkok ideiglenes tárolási helye. \\ **On-line mentés** – az adatok archiválása az AB működése közben. Ebben az esetben nem szükséges lecsatolni az AB-t.\\ **Off-line változásnapló** – az a változásnapló, amelyet az ARCHIVELOG módban használják, és ez azt is jelenti, hogy ez a naplóállomány archiválva van. \\ **Visszagörgetés** – a tranzakció változásainak figyelmen kívül hagyása. Az **ALTER DATABASE …ARCHIVELOG …** és **ALTER DATABASE …NOARCHIVELOG**\\ parancsok a változásnapló-állományok alkalmazásának módját határozza meg. A parancsokban a teljes vagy részleges visszaállíthatóságát lehet megadni: * ARCHIVELOG <üzemmód> – teljes visszaállíthatóság, * NOARCHIVELOG – részleges visszaállíthatóság. **5.4. Oracle-folyamatok**\\ Az Oracle olyan programokat tartalmaz, melyek Oracle-folyamatokat valósítanak meg.\\ **Kliens** – összefoglaló neve azon felhasználóknak, alkalmazásoknak, számítógépeknek, amelyek szolgáltatást, adatokat vagy feldolgozást igényelnek egy másik alkalmazástól vagy számítógéptől. \\ Fontosabb kliens (felhasználói) folyamatok: * SQL*Plus, * Oracle Forms, * Oracle Reports. A **szerver (kiszolgáló)** folyamatok fogadják a kliensfolyamatok igényeit, és az igényeknek megfelelőjen kapcsolatot létesítenek az adatbázissal.\\ Az **AB-t működtető folyamatok**\\ Háttérfolyamatok végrehajtják és koordinálják az AB konkurens felhasználói folyamatokat. Az alap háttérfolyamatok: * ARCH (archiváló) * DBWR-folyamat – adatbázisíró, a megváltozott adatblokkok adatfájlba írását végzi * LGWR (naplóíró) * PMON-folyamat – folyamatvezérlő, ez a folyamat egy felhasználó hibája esetén végzi az adatbázis visszaállítását. Felszabadítja a felhasználó által lekötött erőforrásokat, és visszagörgeti a félbeszakadt tranzakciót. * SMON-folyamat (System MONitor Process) – rendszervezérlő, egy háttérfolyamat, amely visszaállítást és a nem használt ideiglenes szegmensek törlését végzi. Indításkor elvégzi a visszaállítást és a szükséges beállításokat. **Memóriastruktúrák** \\ Az Oracle-rendszer kétféle memóriastruktúrát használ: \\ * SGA (System Global Area) - a rendszer globális területe;\\ * PGA (Program Global Area) – a program globális területe. A SGA(Rendszer globális területe) – egy megosztott terület a RAM memóriában, amelyben az Oracle működik a futása alatt. \\ A PGA (program globális területe) az aktuális folyamat adatait és a vezérlési információt tartalmazza. \\ A SGA szolgál a felhasználói és háttérfolyamatok közötti kommunikációra is. A folyamatok működése alatt mindig létezik egy SGA és több PGA. A SGA komponensei:\\ * adatpuffer-gyorsítótár * szótár-gyorsítótár * változásnapló-puffer * SQL-terület. A SGA méretét az //init.ora// paraméterei határozzák meg. Az init.ora – egy vezérlő fájl, az AB rendszer paraméter-fájla, amely olyan beállításokat és fájlneveket tartalmaz, amelyeket a CREATE DATABASE, STARUP, SHUTDOWN parancsok használnak. **Adatpuffer-gyorsítótár** – tartalmazza a legutoljára használt adatbázisadatok blokkjait. Ahhoz, hogy egy felhasználói folyamat “lásson” egy adatot, annak be kell kerülni az adatpuffer-gyorsítótárba.\\ **Szótár-gyorsítótár** – egyike az SGA által tartalmazott adatszótár-információkat tartalmazó gyorsító-táraknak. Növeli a teljesítményt, mivel ezekre az adatokra gyakran van szükség.\\ **SHARED SQL POOL** – az SGA olyan területe, amely tartalmazza a szótár gyorsítótárát, és az elemzett SQL parancsok megosztott területét. A méretét az init.ora fájl **SHARE_POOL_SIZE** paramétere határozza meg. **Szegmensek**\\ **Szegmens** egy tábla, index vagy klaszter által lefoglalt tároló terület meghatározására szolgál. \\ **Ideiglenes szegmens** – egy táblaterület azon része, amely SQL parancsok közbenső eredményeinek tárolására szolgál. Például, nagyméretű táblák rendezésére alkalmazza az Oracle.\\ **Visszagörgető szegmens** – egy olyan tároló terület egy táblaterületen belül, amely olyan tranzakció-információkat tartalmaz, amelyek segítségével egy visszagörgetésnél biztosítható az adatok integritása és olvasási konzisztencia. \\ **Késleltetett visszaállító szegmens** – olyan bejegyzéseket tartalmaz, amely nem alkalmazható a táblaterületre, mivel az off-line állapotban van. A bejegyzések csak azután lesznek alkalmazva, ha a táblaterület on-line állapotba kerül. **Táblaterületek (TABLESPACE)**\\ Egy adatbázis egy vagy több táblaterületből és mindegyik táblaterület egy vagy több adatfájllából épül fel. Táblaterület – azon fájlok összessége, amelyekben az Oracle adatok tárolódnak. Egy AB az alapértelmezett SYSTEM táblaterületet és a felhasználó által létrehozott táblaterületeket használhat.\\ A táblaterület az adatállományok csoportosításának eszköze, és egy vagy több adatfájl együttese. **Példa.** Egy tábla létrehozásakor a táblaterületet is lehet megadni:\\ CREATE TABLE custmer (first_name VARCAHAR2(15), ….) TABLESPACE users; Az Oracle-ban alkalmazott táblaterületek: * System táblaterület (az AB rendszer táblái. Ezek a System01.dbf és más állományok) * Temp táblaterület - ideiglenes táblák; * Tools táblaterület - eszközök (Oracle Report); * Felhasználói táblaterületek; * Adat és index táblaterületek; * Visszagörgető táblaterület (ROOLBACK, v. RBS). Az Adatbázisrendszerre úgy lehet tekinteni, mint egy példány és egy adatbázis együttesére.\\ A felhasználók fájlai a USERS táblaterületben kapnak helyet. \\ A táblaterületek alkalmazása lehetőséget arra ad, hogy: * a felhasználói adatokat elkülönítjük az adatszótártól; * egy alkalmazás adatait elkülönítjük egy másik alkalmazás adataitól; * különböző táblaterületek állományait különböző lemezeken tárolhatjuk; * egy táblaterületet lehessen nem aktív állapotba helyezni, és utána a többi táblaterületekkel folytatni a munkát; * egy táblaterületben a visszaállítási műveletet úgy lehessen végrehajtani, hogy a többi táblaterületek elérhetők legyenek a felhasználók számára. Egy új táblaterület létrehozására a **CREATE TABLESPACE** parancsot alkalmazunk. Ha nem adjuk meg azt a katalógust, melyben akarjuk elhelyezni a táblaterület, akkor a helye az alapértelmezés alapján lesz meghatározva. **Példa.** CREATE TABLESPACE NewTSpace DATAFILE ‘d:\NewTSpace1.dbf’ SIZE 1M DEFAULT STORAGE ( INITIAL 50K NEXT 50K MINEXTENT 2 MAXEXTENT 50 PCTINCREASE 0) OFFLINE; A létrehozott táblaterület egy fájlban van elhelyezve, melynek a mérete 1Mb, és a létrehozása után nem lesz aktív állapotban. **Állományok hozzáadása a táblaterülethez** \\ Ezt a műveletet az ALTER TABLESPACE SQL paranccsal kell végrehajtani:\\ ALTER TABLESPACE NewTSpace ADD DATAFILE ‘d:\NewTSpace2.dbf’ SIZE 3M; Az AB adminisztrátor követheti a táblaterületek állapotát, és a hozzá tartozó objektumokat a következő paranccsal: SELECT tablespace_name, status FROM dba_tablespases ORDER BY tablespace_name; Ha a felhasználó a MANAGE TABLESPACE privilégiummal rendelkezik, akkor aktivizálhatja a táblaterületet: ALTER TABLESPACE táblaterület_név ONLINE; A táblaterület aktív állapotának megszüntetése: ALTER TABLESPACE táblaterület_név OFFLINE; A fájlokat és táblaterületeket lehet átnevezni. Például, ALTER TABLESPACE NewTSpace RENAME DATAFILE ‘NewTSpace1’ TO ‘OldTSpace1’; vagy ALTER DATABASE RENAME DATAFILE ‘File1’, ‘File2’ TO ‘File3’, ‘File4’; Ha a táblaterület off-line állapotban van, és a felhasználó DROP TABLESPACE privilégiummal rendelkezik, akkor a táblaterület törölhető: DROP TABLESPACE NewTSpace; Ha a törlendő táblaterület olyan táblát tartalmaz, amelynek elsődleges kulcsa van, és más tábla az idegen kulcs alapján hivatkozik rá, akkor ezt a megszorítást is lehet törölni a CASCADE CONSTRAINTS paraméter alkalmazásával: \\ DROP TABLESPACE NewTSpace CASCADE CONSTRAINTS; Ez vonatkozik a táblákra is. Például, DROP TABLE Test; és DROP TABLE Test CASCADE CONSTRAINTS;** \\ A táblákat csak a tulajdonosa törölheti, vagy az a felhasználó, aki a DROP ANY TABLE privilégiummal rendelkezik. **Adatbázis adminisztrálása** **Adatbázis létrehozása**\\ Az adatbázis létrehozása – egy olyan folyamat, amelynek során az AB-t a kezdeti felhasználásra kész állapotba kerül. Az AB létrehozásának szükséges feltétele – szerver példányának létezése.\\ **Példány** – azok az erőforrások összegzése, amelyek szükségesek az Oracle futásához és az AB eléréséhez. Ha egy példány el van indítva és egy megnyitott AB hozzá van kapcsolva, akkor az AB-rendszer elérhető a felhasználó számára. Egyidejűleg több példány futhat az Oracle-ban. \\ Egy Oracle-példányhoz következő komponensek tartoznak:\\ * adatbázis * saját SGA * külön kiszolgáló-folyamatok Egy AB létrehozása több lépést igényel:\\ * az inicializálási paraméterek létrehozása; * az új AB adminisztrátor-katalógus létrehozása; * szerver példányának létrehozása; * AB létrehozása (a CREATE DATABASE parancs alkalmazása); * az AB támogatására alkalmazott objektumok létrehozása; * az AB kiszolgáló sémák védelme; * hálózati fájlok létrehozása. Az ORACLE_HOME gyökér-katalógus alapján meghatározhatjuk az elérési utakat a szerver programjaihoz. Az AB létrehozására az //Oracle Database Configuration Assistant// komponensét alkalmazzák. Ez a komponens egy fontos katalógust\\ // ...admin\AB_neve// \\ hoz létre, amely tartalmazza az AB adminisztrátor munkájához szükséges fájlokat. Például, ha az AB neve //test,// akkor az létrehozza a \\ //... \oracle\admin\test\// katalógust, amely a következő katalógusokat tartalmaz:\\ **\bdump;**\\ **\cdump;**\\ **\create;**\\ **\pfile;**\\ **\udump**\\ A //create// katalógusban olyan programok vannak, amelyeket az Oracle az AB objektumainak létrehozására alkalmazza. \\ A //pfile// katalógusban tárolódnak az AB konfigurálásához szükséges fájlok, például, az init.ora. \\ Miután a Database Configuration Assistant létrehozta az AB-t, ajánlatos a létrehozott //CreateDatabase.sql script-et// eltárolni a későbbi lehetséges AB módosításai miatt. Ennek a script-nek a tartalma lehet például: CREATE DATABASE orcl MAXINSTANCES 1 MAXLOGFILES 5 MAXLOGMEMBERS 3 MAXDATAFILES 100 DATAFILE ’E:\|oracle\oradata \ orcl\ system01.dbf’ SIZE 250M; Ha elindítjuk az SQL*plus komponenst, és hozzákapcsolódunk az AB-hoz, akkor az Oracle jelezni fogja, hogy egy üres példányhoz kapcsolódtunk: SQL> CONNECT SYS/change_on_install as SYSDBA Connected to an idle instance. Ez azt jelenti, hogy a szerver már aktív, de az AB még nincs hozzákapcsolva. A következő parancs elindítja az AB-t: SQL> STARTUP NOMOUNT pfile=[, ];\\ Az AB létrehozása után még két SQL-scriptet kell végrehajtani: //catalog.sql// és //catproc.sql.// A //catalog.sql// szerkeszti az AB-szótár nézeteit és szinonimákat, a //catproc.sql// pedig olyan scripteket indít el, amelyek az AB működéséhez szükséges objektumokat hozzák létre. \\ Utána a //pupbld.sql// script által megszerkeszthetjük a profilok tábláit. Ezekre a táblákra akkor lesz szükség, ha szabályokat kellesz létrehozni, amelyek alapján a felhasználók megkapják a megfelelő profiljait.\\ **Hálózati állományok konfigurálása** \\ Ahhoz, hogy a SQL*Net komponens által az adatbázishoz a hálózaton keresztül lehessen hozzá férni, meg kell adni a megfelelő paramétereket a //listener.ora és tnsnames.ors// fájlokban. **Szegmensek**\\ Az AB egyik legfontosabb komponense: a rollback szegmensek (visszagörgető szegmensek).\\ Az AB létrehozása után már létezik egy ilyen szegmens, amely a SYSTEM táblatérhez tartozik. Az Oracle ezt a szegmenset csak azokra a tranzakciókra alkalmazza, amelyek a SYSTEM táblatér objektumokkal hajtódnak végre.\\ Ezért szükség van még olyan ideiglenes rollback szegmensekre, amelyek alkalmazhatók más tranzakciók végrehajtására. A rollback szegmenset a következő paranccsal lehet létrehozni: CREATE ROLLBACK SEGMENT rbs_temp STORAGE (INITIAL 10K NEXT 10K MINEXTENTS 3 MAXNEXTENTS 121) TABLESPACE SYSTEM; A szegmenset aktív állapotba kell hozni a következő paranccsal: ALTER ROLLBACK SEGMENS rbs_temp ONLINE; Ez után létrehozhatjuk a tábla szegmenseket. Minimálisan a következő tábla szegmensekre van szükség: * TEMP – az AB idegleges szegmensek tárolására; * TOOLS – a saját fejlesztéshez szükséges program-eszköz tárolására; * UNDOTBS – a roolback szegmensek tárolása; * USERS – a felhasználók tábla területe (alapértelmezés szerint); * INDEX – a felhasználók indexelt tábla területe. A TEMP és UNDOTBS tartalmazzák az AB működéséhez szükséges objektumait, a TOOLS, USERS, és INDEX – pedig a felhasználók objektumait. ** AB indítása és megállítása**\\ Amíg az AB nincs megnyitva, addig csak az AB adminisztrátor férhet hozzá az AB-hoz a Server Manager alkalmazásával. A Server Manager egy Oracle segédprogram, amelyet az AB adminisztrátor az AB karbantartására használ.\\ Mielőtt egy felhasználó egy példányhoz hozzá tudna férni, az adminisztrátornak bizonyos előkészítő műveleteket kell végrehajtani. Ezeket a műveleteket az ABA három formában alkalmazhatja, ez alapján három állapot lehetséges:\\ * az AB a példányhoz van csatolva, de az AB még nincs megnyitva; * AB a példányhoz van csatolva, és az AB meg van nyitva; * az AB a példányhoz van csatolva, az AB meg van nyitva, és a példány indítása is megtörtént. Az adatbázis csatolása után az elérhetővé válik az adatbázis-adminisztrátor számára.\\ Az adatbázis csatolása és megnyitása után az elérhetővé válik a felhasználó számára is. **Indítás** – az a folyamat, amelynek során működni kezd egy példány, ha előtte megtörtént az AB csatolása és megnyitása. Az indítás után az AB már a felhasználó számára is elérhető lesz. \\ **Kapcsolódás** – olyan művelet, amelyben azonosítjuk magunkat a felhasználói nevünkkel és a jelszavunkkal, és utána beléphetünk az Oracle-rendszerbe.\\ **Leállítás** – egy példány és az adatbázis szétkapcsolása és a példány befejezése.\\ **Lecsatolt adatbázis** – olyan AB, amelyhez nincs csatolt példány, és ezért az nem nyitható meg és nem érhető el a felhasználó számára.\\ **Lezárt adatbázis** – olyan AB, amely össze van kötve egy példánnyal (az AB csatolva van), de nincs megnyitva.\\ A felhasználók csak akkor férhetnek hozzá az AB-hoz, ha már létezik a példány. Az AB tipikus állapota a megnyitott állapot. A szerver példány hozzáférhet azokhoz az adatbázisokhoz, amelyeknek a neve a kontrol-fájlban tárolódnak. A felhasználók ezekhez az AB fájlaihoz a példány által férhetnek hozzá. \\ Az AB megnyitása a STARTUP [záradékok] paranccsal történik, melyben több záradék is alkalmazható. \\ Fontosabb záradékok:\\ * RESTRICT – az AB-t csak az adminisztrátor érheti el; * NOMOUNT – az AB csatolása a példányhoz; * OPEN READ ONLY – az AB csak olvasásra való megnyitása; * OPEN READ WRITE – az AB mint olvasásra, mint írásra való megnyitása; * OPEN RECOVER – az AB visszaállítási célból való megnyitása; * PFILE = fájl_név – a megnyitandó AB neve. A következő parancs végrehajtja az AB csatolását: ALTER DATABASE …MOUNT; Ha az AB már csatolva van, akkor annak a megnyitása a következő ALTER paranccsal valósítható meg: ALTER DATABASE OPEN; **Példák.**\\ A Test nevű AB csatolva lesz a példányhoz (de nem lesz megnyitva); STARUP NOMOUNT PFILE=e:\oracle\admin\Test\pfile\init.ora; Az AB megnyitása – STARUP OPEN PFILE=e:\oracle\admin\Test\pfile\init.ora; vagy STARUP PFILE=e:\oracle\admin\Test\pfile\init.ora; A megnyitott AB-hoz csatlakozhat az a felhasználó, aki a CREATE SESSION privilégiummal rendelkezik.\\ Az AB-t a SHUTDOWN paranccsal lehet leállítani. Mielőtt az Oracle megállítaná az adatbázist, az megvárja, amíg az összes felhasználó kilép a rendszerből, és nem engedélyezi az új felhasználók belépését. Szükség esetén az AB-t hirtelen is lehet leállítani. Erre a SHUTDOWN IMMEDIATE parancsot kell alkalmazni. **Felhasználók adminisztrálása** **Felhasználók létrehozása**\\ A felhasználókat az AB adminisztrátor hozza létre. A felhasználók létrehozása: CREATE USER felhasználó IDENTIFIED BY jelszó [DEFAULT TABLESPACE táblaterület] [PROFILE profil]; CREATE USER felh_1 IDENTIFIED BY en_jelem DEFAULT TABLESPACE diakok; Felhasználók törlése:\ DROP USER felhasználó; DROP USER felhasználó CASCADE; A CASCADE opció esetén nem csak az adott felhasználó lesz törölve, hanem törlődnek „lépcsős” módon a felhasználó sémájához tartozó objektumok is. **A SYS és SYSTEM felhasználók** Egy új adatbázis létrehozásakor az Oracle létrehoz automatikusan a SYS és SYSTEM felhasználókat és felismeri a következő felhasználókat:\\ * SYS * SYSTEM * DBSNMP * SCOTT A SYS és SYSTEM – az AB adminisztrátorok az AB-rendszer installálásakor és inicializálásakor jönnek létre. \\ A SYS az adatszótár-táblák tulajdonosa, a jelszava, pedig change_on_install. \\ A SYSTEM – az adatszótár-táblák létrehozott nézetek tulajdonosa, és a jelszava – manager. Biztonsági okokból ezeket a jelszavakat egyszerre meg kell változtatni. Erre alkalmazhatjuk az ALTER USER IDENTIFIED BY ; parancsot. \\ Például, a SYS jelszavának megváltoztatása: ALTER USER SYS IDENTIFIED BY< új_jelszó>; **Bejelentkezés**\\ A felhasználók a rendszerbe való bejelentkezése (hozzáférés az AB-hoz) a CONNECT parancs által történik, amit legegyszerűbb az SQL*Plus-ból végrehajtani. Bejelentkezés az aktuális (alapértelmezésként megadott) AB-ba: CONNECT felhasználó/jelszó Bejelentkezés egy adatbázis_1 nevű AB-ba: CONNECT felhasználó/jelszó@adatbázis_1 **Profilok**\\ Az erőforrásokat a felhasználók a profil által kapják.\\ **Profilnak** nevezzük azok korlátozások együttesét, amelyet egy felhasználó kaphat. Úgy is lehet fogalmazni, hogy a felhasználó bizonyos kvótát kap.\\ **Kvóta** – egy erőforráskorlát, amely az AB-felhasználók által elértető tárolási területét határolja be.\\ A CREATE PROFIL parancs az AB erőforrásainak felhasználására vonatkozó korlátokat vezet be. A felhasználónak a profilt a CREATE USER vagy az ALTER USER parancsokban lehet megadni. Például, CREATE PROFIL diakok LIMIT SESSION_PER_USER 10 CPU_PER_SESSION UNLIMITED \\ CONNECT_TIME UNLIMITED; A// LIMIT SESSION_PER_USER// – a felhasználó egyidejűleg az SQL bejelentkezési számát korlátozza,\\ //CPU_PER_SESSION// – a felhasználható a CPU-időt korlátozza (UNLIMITED –nem korlátozza), \\ //CONNECT_TIME// – a kapcsolat teljes időtartamát korlátozza.\\ **A profil törlése:**\\ DROP PROFIL diakok; **Kapcsolat leállítása (megszakítása)**\\ Az AB adminisztrátornak joga van a felhasználót lekapcsolja (eltiltani) a rendszerről. Ezt az SQL ALTER SYSTEM paranccsal lehet végrehajtani. Például, ALTER SYSTEM KILL SESSION ‘9, 6021’; 9, 6021 – a session index (sid) és széria (serial#) száma. Ezeket a felhasználóhoz tartozó adatokat a v$session rendszer-táblából lehet lekérdezni: SELECT sid, serial# FROM v$session WHERE username =’Stud’; ^SID^SERIAL#^ |9|6021| |10|3274| ** Zárolás**\\ **Adatdefiníciós zárak** – olyan zárak, amelyeket az Oracle az adatszótárba helyez el az AB objektumok (táblák, nézetek,…) struktúrájának változtatása közben úgy, hogy ezek a változtatások ne befolyásolhassák negatívan az AB adatait. \\ Következő zárak lehetnek:\\ * Szótárműveleti * Szótár-definíciós * Tábladefiníciós **Adatzár** – a parancsok végrehajtása alatt az adatokat zárolódnak automatikusan, vagy a LOCK paranccsal explicit módon a felhasználó is azt létrehozhatja az adatzárt.\\ **Kizáró mód** – olyan zárolási mód egy erőforráson, amely kizár minden más hozzáférést az adott erőforráshoz, csak a zár elhelyezője tudja megváltoztatni az erőforrást. \\ **Kizáró zár** – olyan zár, amely megengedi, hogy más felhasználó lekérdezze az adatot, de azt nem tudja megváltoztatni. Kizáró zár esetén más felhasználó semmilyen zárat nem helyezhet el ugyanarra az adatra. \\ **Megosztott zár** – más felhasználók egyidejűleg ugyanarra az adatra újabb megosztott zárat helyezhetnek el.\\ **Rekordzárolás** – lehetővé teszi azon szituáció elkerülését, hogy egy időben két felhasználó ugyanazt a sort módosítsa. \\ **Sorszintű zárolás** – a zárat nem egy táblára, hanem csak a módosítandó sorra helyezzük. \\ **Konkurencia** – ugyanazon adat több felhasználó általi egyidejű elérését jelenti. Az Oracle olyan szoftvert tartalmaz, melynek az a feladata, hogy minden felhasználó helyes adatokat kapjon és a változtatások megfelelő módon történjenek. \\ **Megosztott módú zárolás** – sorszintű zárolás. Ennél a módnál módosíthatók a sorok és nem az egész tábla kerül zárolásra.\\ **Megosztott zár** – más felhasználónak megengedi az adat lekérdezését, de a módosítását – nem.\\ **Megosztott-módosító zárolás** – más felhasználó számára lehetővé teszi a lekérdezést, és újabb zár elhelyezését.