13.2. Az adatbázis-kezelő rendszer telepítése és konfigurálása

Minden adatbázis-kezelő rendszer rendelkezik olyan paraméterekkel, amelyeknek a módosításával az adatbázis-adminisztrátor az adatbázis-környezetet konfigurálni tudja. Adatbázis-kezelő rendszertől függően különböző módon lehet a paramétereket változtatni. Lehet, hogy egy olyan állományt kell módosítani, amelyben a paraméterek nevéhez értékek vannak rendelve, vagy lehet, hogy adatbázis-kezelő rendszer utasításokat kell kiadni, de az is lehet, hogy rendszereljárást kell futtatni a paraméterek módosításához.

Az adatbáziskezelőrendszer-szoftvereket a szállító általában alapértelmezett értékekkel adja, de az alapértelmezett értékek legtöbbször nem elegendőek egy robusztus termelési alkalmazás fejlesztésének támogatásához.

A 13-1-es ábrán az Oracle adatbázis-kezelő rendszernek az inicializációs paraméterállományát láthatjuk. Az Oracle-nek ez az egyik eszköze, hogy a paramétereket módosítsa.

13-1. ábra – Paraméterállomány

13.2.1. A konfigurációk típusai

Az adatbázis-kezelő rendszert már a telepítéskor is lehet konfigurálni, de később is, amikor már átadták működtetésre. Az adatbázis-kezelő rendszertől függően vannak olyan paraméterek, amelyeket dinamikusan lehet változtatni, azaz az adatbázis-kezelő rendszer működtetése közben változnak, és hatásuk azonnal érvénybe lép, vannak olyan paraméterek, amelyeknek a módosítása az adatbázis-kezelő rendszer újraindítását igénylik, és vannak olyan paraméterek, amelyeket a telepítés után nem lehet változtatni.

Ha az adatbázis-környezetünket konfiguráljuk nem érdemes az alapértelmezett értékekkel dolgozni. A legtöbb konfigurációs opció egy előredefiniált értéket kap, ha nem adunk meg értéket. A legnagyobb probléma az alapértelmezett értékekkel, hogy majdnem soha nem lesz a legjobb választás egy adott környezethez. Azonban kellő tapasztalat híjján érdemes alkalmazni őket, mert biztos, hogy nem a lehető legrosszabb értékeket állítjuk be. Mindenképpen jobbak, mitha az adatbázis-adminisztrátor próbálkozásszerűen állítaná be az értékeket.

Legyünk óvatosak azokkal a konfigurációs opciókkal, amelyek megváltoztatják az adatbázis-kezelő rendszer viselkedését. Ha rossz értékre állítjuk a konfigurációs paramétert, az sok bajt okozhat.

13.2.2. Memóriahasználat

A relációs adatbázisok imádják a memóriát. Minél több memóriát biztosítunk az adatbázis-kezelő rendszernek, annál jobb lesz a teljesítménye.

Az adatbázis-kezelő rendszer gyorsítótárakat használ arra, hogy az erőforrásokat minél tovább a memóriában tartsa. Minél tovább marad a memóriában az erőforrás, annál nagyobb az esély arra, hogy a következő erőforráskéréseknek nem lesz szükségük az input/output műveletekre.

Az adatbázis-kezelő rendszer többféle gyorsítót és puffert használ. Különböző adatbázis-kezelő rendszerek puffereinek a célja általában ugyanaz, csak más terminológiával.

Az adatpuffer vagy adatgyorsító az input/output műveletek minimalizálását szolgálják. Ha az aktuális adat az adatbázisból felolvasásra került, akkor újabb kérésnél nem kell még egyszer a lemezről felolvasni. A memóriában lévő adat elérése lényegesen gyorsabb, mint a lemezen lévő adat elérése. Ezért egy relációs adatbázis minden adatának elérése a gyorsítóterületen keresztül megy. Ha egy programnak egy táblából egy sorra van szüksége, az adatbázis-kezelő rendszer a lemezről az adatlapot kinyeri és az adatgyorsítóban tárolja. Alapvetően az adatbázis-kezelő rendszer a gyorsítót átmeneti területként használja. Ha a sor változik, akkor a változás az adatgyorsítóbeli adatlapra kerül. Az adatbázis-kezelő rendszer fogja az adatgyorsítóban található adatlapot visszaírni a lemezre. Ha egy alkalmazásnak szüksége van az adatra, és az olyan adatlapon van, amely már az adatgyorsítóban van, akkor az alkalmazásnak nem kell arra várnia, hogy az adatlapot az adatbázis-kezelő rendszer a lemezről kinyerje, hanem egyszerűen az adatpufferben található adatlapon található adatot használja fel.

Az eljárásgyorsító tárolja az SQL és a programhoz kapcsolódó struktúrákat. Az adatmódosító és lekérdező SQL utasítások előtt az adatbázis-kezelő rendszer az utasítást először optimalizálja. Az optimalizáló folyamat egy elérési utat reprezentáló belső struktúrát hoz létre, amelyet az adatbázis-kezelő rendszer az adat olvasásához használ. Az adatbázis-kezelő rendszer ezeket az elérési utakat az eljárásgyorsítóban tárolja, és újrahasználja őket, amikor ugyanaz a program vagy SQL utasítás újra lefut. Ez az alkalmazásteljesítményt optimalizálja, mert az optimalizáló folyamatnak nem kell mindig lefutnia, amikor ugyanaz az SQL utasítás fut. Az optimalizáció az SQL utasítás első futásánál végrehajtódik és a következő futtatások az elérési utat az eljárásgyorsítóból nyerik ki.

A rendezési gyorsítót az ideiglenes lemezterületek helyett használja az adatbázis-kezelő rendszer. Ebben a memóriabeli gyorsítóban tárolja az adatbázis-kezelő rendszer a közbenső rendezési eredményeket, melyekre olyan relációs adatbázis-műveletnek van szüksége, amelyek rendezést igényelnek, mint GROUP BY, ORDER BY, UNION, és bizonyos típusú összekapcsolások.

Az adatbázis-kezelő rendszer belső struktúragyorsítókat is használhat. A relációs műveletek megvalósításához az adatbázis-kezelő rendszer belső struktúrákat hozhat létre, amelyek a végfelhasználó számára nem feltétlenül láthatók. Az adatbázis-adminisztrátoroknak és néha a programozóknak tudniuk kell ezekről a belső struktúrákról.

Az adatbázis-kezelő rendszer az adatbázisnapló-rekordok memóriában való tárolására a naplógyorsítót különíti el. Az adatbázis-kezelő rendszer kétféle naplógyorsítót valósíthat meg, egyet az írási és egyet az olvasási naplózáshoz. Az adatbázisnaplóban szerepel az adatbázison végrehajtott összes változás rekordja. Az írási naplógyorsítóba az adatbázis-kezelő rendszer az adatbázis módosításaihoz készült naplórekordokat írja. Az adatbázisnapló rekordjai a naplógyorsítóból idővel aszinkron módon a lemezen található aktív adatbázisnapló-állományba kerülnek. A naplóírás ezen módjával az adatbázisnapló nem lesz a rendszer- és az alkalmazásteljesítmény szűk keresztmetszete. Az olvasási naplógyorsítót a ROLLBACK és RECOVER műveletek használják. Egy visszagörgetésnek vagy egy helyreállításnak az adatbázisnapló elérésére van szüksége, hogy az adatbázis-változásokat visszagörgesse vagy újra végrehajtsa. Ha az adatbázisnapló-rekordokra szükség van, akkor azok a memória olvasási naplógyorsítójába kerülnek.

13.2.3. A memória további területei

A következők miatt szükség lehet arra, hogy az adatbázis-kezelő rendszer különböző területeket foglaljon le:

  • Felhasználói kapcsolatok: A konkurens felhasználók adatbázis-kezelő rendszerhez való kapcsolódásának az adatbázis-kezelő rendszer memóriájára van szüksége a kapcsolat fenntartásához és kezeléséhez. Mindez független a kapcsolódás típusától.

  • Eszközök: Az adatbázis által használt eszközöknek az adatbázis-kezelő rendszer által lefoglalt memóriaterület fenntartására és használatára lehet szükségük.

  • Megnyitott adatbázisok: a legtöbb adatbázis-kezelő rendszer egy paramétert biztosít arra, hogy meghatározza azoknak az adatbázisoknak a maximális számát, amelyek egy időben lehetnek nyitva. Minden megnyitott adatbázisnak adatbázis-kezelő rendszer memóriára van szüksége.

  • Megnyitott objektumok: az adatbázis-kezelő rendszer egy paramétert biztosíthat azoknak az objektumoknak a maximális számára, amelyek egy időben lehetnek megnyitva, beleértve a táblákat, indexeket, és más adatbázis-objektumokat. Minden megnyitott adatbázis-objektumnak memóriára van szüksége.

  • Zárak: minden konkurensen fenntartott zárnak memóriára van szüksége. Az adatbázis-kezelő rendszernek kell biztosítania egy olyan paramétert, amely megadja az egy időben fenntartható a konkurens zárak számát.

A 13-2-es ábrán az adatbázis-kezelő rendszerek memóriaterületeit figyelhetjük meg.

13-2. ábra – Memóriaterületek

13.2.4. Mennyi memória elég?

Ez egy nehéz kérdés. Az általános válasz: annyi, hogy a munka el legyen végezve, de ez nem segít az adatbázis-adminisztrátornak.

Minden adatbázis-kezelő rendszer használ memóriát, de különböző dolgokra különböző mennyiségűt. Az adatbázis-kezelő rendszer dokumentációjában keressük meg, hogy az egyes erőforrásoknak mennyi memóriára van szükségük.

A szükségestől egy kicsivel több helyet hagyjunk a nem várt alkalmazói programok, az adatbázis-kezelő rendszer és operációs rendszer frissítések miatt.