Az adatbázisnapló vagy tranzakciónapló konfigurációja is hatással van a teljesítményre. Az adatbázisnapló az adatbázis-kezelő rendszerek alapvető komponense. Az adatbázisban az alkalmazásadatoknak minden módosítása az adatbázisnaplóban mentve van. Ezt az információt használva az adatbázis-kezelő rendszer nyomon követheti, hogy melyik tranzakció melyik módosítást végezte az adatbázison. A ROLLBACK és a RECOVER műveletek az adatbázisnaplót használják, hogy az adatbázist egy bizonyos pontig helyreállítsák.
A normál adatbázisalkalmazás-feldolgozásnál az SQL INSERT-ek, UPDATE-k, DELETE-k módosítják az adatot az adatbázisban. Ahogy ezek a módosítások megtörténnek, a tranzakciónapló nő. Mivel az egyes adatbázis-változások naplózásra kerülnek, az adatbázis-adminisztrátornak a tranzakciónapló méretét monitorozni kell. Az adatok állandóan változnak, ezért az adatbázisnapló állandóan nőni fog.
A tranzakciónapló egy írás előtti napló, ami azt jelenti, hogy a változásokat először naplózni kell, majd az adatbázistáblában csak ezután történhet meg az adat változása. Ha az adatbázis-módosítás sikeresen végbement a naplóban, akkor a tranzakció helyreállítása és így a konzisztencia is garantált.
Az adatbázis-kezelő rendszer ellenőrzési pontot hoz létre, hogy garantálja, hogy minden módosított adatbázislap biztonságban a lemezre íródott. Az adatbázisrendszer ellenőrzési pontjainak a gyakoriságát az adatbázis-adminisztrátor állíthatja be egy konfigurációs paraméter segítségével. Az ellenőrzési pont gyakoriságát általában egy előredefiniált intervallummal vagy a kiírt naplórekordok egy előredefiniált számával lehet megadni.
Az adatbázis-kezelő rendszer a naplóbejegyzések segítségével biztosítja az adatok konzisztenciáját. A tranzakciónaplót akkor használja az adatbázis-kezelő rendszer, ha az adatbázis-kezelő rendszer újraindul, ha a tranzakciót vissza kell görgetni, vagy ha az adatbázist egy előző állapotra vissza kell állítani. Vizsgáljuk meg az egyes eseteket.
Ha az adatbázis-kezelő rendszer újraindul, akkor egy tranzakció-helyreállítási folyamat indul el. Az tranzakció-helyreállítási folyamat alatt az adatbázis-kezelő rendszer ellenőrzi, hogy mely tranzakciókat kell visszagörgetni. Ez akkor történhet meg egy tranzakcióval, ha nem lehet tudni, hogy a módosítások a lemezre kerültek-e. Egy ellenőrzési pont kikényszeríti, hogy minden módosított adatlap a lemezre kerüljön. Ezért az ellenőrzési pont jelenti azt a pontot, ahonnan a helyreállításnak kezdődnie kell. Mivel minden ellenőrzési pont előtti adatlap-módosítás a lemezre került, nincs szükség az ellenőrzési pont „elé” visszagörgetni.
Ha a tranzakciót vissza kell görgetni, akkor az adatbázis-kezelő rendszer minden olyan módosításhoz az adatbázisba másolja a módosítás előtti képet, amely a tranzakció kezdete óta történt. Bővebbet az Adatbázis-helyreállítás című fejezetben olvashatunk.
A helyreállítás alatt az adatbázis-adminisztrátor a tranzakciónaplót használhatja, hogy az adatbázist előregörgesse. Először az adatbázis mentési másolatát állítja helyre, majd a mentés óta történt változások újra végrehajtásához az archivált naplóállományokat görgeti előre. Az előregörgetés alatt az adatbázis-kezelő rendszer az adatbázisba másolja az egyes módosítások hatása „utáni” képeket. A naplózott adat használatával az adatbázis-kezelő rendszer biztosítja, hogy az egyes módosítások ugyanabban a sorrendben legyenek alkalmazva, mint ahogy eredetileg bekövetkeztek.
Az adatbázisnapló konfigurációja összetett feladat lehet. Az adatbázis-kezelő rendszertől függően az adatbázis-adminisztrátornak lehet, hogy több konfigurációs döntést kell hoznia az adatbázisnaplóval kapcsolatban. Ezek a döntések lehetnek például: az olvasási és az írási naplópufferek definiálása, az naplóállományok definiálása vagy a naplóarchiválás beállítása.
Az adatbázisnaplóhoz az írási naplópuffer definiálása optimalizálhatja a naplóíró műveleteket. Az adatbázis-feldolgozás hatékonyabb, ha az adatbázisnapló-rekordok a memóriába kerülnek ahelyett, hogy közvetlenül a lemezre kerülnének. Az adatbázis-kezelő rendszer aszinkron módon tudja a naplórekordokat az írási naplópufferből a fizikai naplóállományba írni. Ha az adatbázis-naplózás ilyen módon van megvalósítva, akkor az adatbázis-feldolgozásnak nem kell várnia a szinkron lemezre történő naplóírásra.
Az adatbázisnaplóhoz olvasási naplópuffer definiálásával optimalizálhatjuk azokat a műveleteket, amelyek az adatbázisnaplót olvassák, mint a ROLLBACK, RECOVER műveletek.
Amikor az adatbázisnaplót konfiguráljuk, jó ötlet duál naplózást beállítani. A duál naplózással az adatbázis-kezelő rendszer a változásokat két szeparált és független naplóállományba fogja naplózni. A duál naplózás megvalósítása egy redundáns napló használatot eredményez, amely naplóhiba esetén lesz hasznos. Egy napló sok okból hibázhat, beleértve az eszközhibát vagy az egyszerű gondatlanságot. Duál naplózás beállításakor legyünk biztosak abban, hogy az egyes naplókat külön eszközökön helyeztük el és külön kezeljük, így minimalizáljuk azon lehetséges naplóhibákat, amelyek mindkét naplóban előfordulnak ugyanabban az időben.
Egy másik konfigurációs kérdés arról dönteni, hogy az adatbázisnapló-állományokat hogyan kezeljük, ha betelnek. A megvalósítás az adatbázis-kezelő rendszertől függ. Néhány adatbázis-kezelő rendszer automatikus naplókimentést (offloading) használ. A naplókimentés archiválási folyamat, ekkor a naplózás egy új aktív naplóba történik és a régi aktív napló tartalma egy archív naplóba mentődik.
Ha az adatbázis-kezelő rendszer automatikus archiválást hajt végre, akkor a teljesítményt azzal növelhetjük, hogy szalag helyett lemezre mentjük az archív naplót. A lemezre való archiválással a napló archiválási folyamat gyorsabban fut és a mentési és helyreállítási folyamatok is gyorsabbak lesznek, mert a naplórekordok lemezen vannak, ami nem csak gyorsabb input/outputot jelent, hanem a szalag csatolására sem kell várni. Az adatbázis-adminisztrátor egy tárolás-kezelő rendszert használhat, hogy automatikusan migrálja az archív naplót a szalagra egy előre meghatározott idő után.
A mentési-helyreállítási stratégia megvalósításához sok esetben az adatbázisnapló mentésére is szükség van. Ekkor a napló archiválását általában periodikusan el kell végezni. Az adatbázis-kezelő rendszer általában egy mentési parancsot biztosít a tranzakciónapló mentésére. Ha az adatbázis-kezelő rendszer befejezi a tranzakciónapló mentését, törli az adott tranzakciónapló-állomány tartalmát. Az adatbázis-kezelő rendszer később ezt az állományt aktív naplóállományként újrahasználja.
Adatbázis-kezelő rendszertől függően bizonyos szituációkat és parancsokat lehet, hogy nem kell naplózni. Az adatbázis-kezelő rendszer kikapcsolhatja a naplózást, hogy elkerülje azt, hogy a gyorsan növekvő tranzakciónapló kifusson a helyből. Például a DDL műveletek és az adatbázis-segédprogramok futását nem szükséges naplózni. Óvakodjunk ezektől a szituációktól és tervezzünk a helyreállítási szükségleteinknek megfelelően.
Néhány nagy művelet alatt, mint a CREATE INDEX, az adatbázis-kezelő rendszer valószínűleg nem fog minden új adatlapot naplózni. Helyette az adatbázis-kezelő rendszer annyi információt fog az adatbázisnaplóba menteni, amennyi meghatározza, hogy egy CREATE INDEX történt, így egy előregörgetés esetén újra létre lehet hozni, egy visszagörgetés esetén pedig lehet törölni.
Továbbá néhány adatbázis-kezelő rendszer adatbázis szinten konfigurációs beállítást biztosít, hogy a naplózást bizonyos típusú feldolgozásoknál ki lehessen kapcsolni. Általában nagy mennyiségű adatváltozás esetén lehet ezt megtenni. A naplózás lelassíthatja ezeket a folyamatokat, ezért ésszerűbb azt kikapcsolni. Ha ezek a műveletek nem lesznek naplózva a tranzakciónaplóba, akkor a műveletek után mentést kell végrehajtani, vagy egy esetleges helyreállítás esetén újra be kell őket tölteni.