Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Minden SQL Server-adatbázis rendelkezik egy tranzakciónaplóval, amely rögzíti az összes tranzakciót és az egyes tranzakciók által végrehajtott adatbázis-módosításokat.
A tranzakciónapló az adatbázis kritikus összetevője. Rendszerhiba esetén szüksége van erre a naplóra, hogy az adatbázis konzisztens állapotba kerüljön.
Figyelmeztetés
Soha ne törölje vagy helyezze át ezt a naplót, hacsak nem ismeri teljes mértékben ennek következményeit.
A tranzakciónapló fizikai és logikai architektúrájáról az SQL Server tranzakciónapló architektúrájában és kezelési útmutatójában talál további információt.
Borravaló
Az ellenőrzőpontok olyan ismert hasznos pontokat hoznak létre, amelyekből megkezdheti a tranzakciónaplók alkalmazását az adatbázis-helyreállítás során. További információ: Adatbázis-ellenőrzőpontok (SQL Server).
A tranzakciónapló által támogatott műveletek
A tranzakciónapló a következő műveleteket támogatja:
- Egyedi tranzakció helyreállítás.
- Az SQL Server indításakor az összes hiányos tranzakció helyreállítása.
- Visszaállított adatbázis, fájl, fájlcsoport vagy lap továbbítása a hibapontig.
- Tranzakciós replikáció támogatása.
- Magas rendelkezésre állású és vészhelyreállítási megoldások támogatása: Always On rendelkezésre állási csoportok, adatbázis-tükrözés és naplószállítás.
Egyedi tranzakciók helyreállítása
Ha egy alkalmazás ROLLBACK utasítást ad ki, vagy ha az adatbázismotor hibát észlel, például az ügyféllel való kommunikáció megszakadását, a rendszer a naplórekordokkal visszaállítja a hiányos tranzakció módosításait.
Az SQL Server indításakor az összes hiányos tranzakció helyreállítása
Ha egy kiszolgáló meghibásodik, előfordulhat, hogy az adatbázisok olyan állapotban maradnak, amelyben bizonyos módosítások soha nem lettek megírva a puffergyorsítótárból az adatfájlokba, és előfordulhat, hogy az adatfájlok nem teljes tranzakciói módosulnak. Az SQL Server egy példányának indításakor az egyes adatbázisok helyreállítását futtatja. A naplóban rögzített minden olyan módosítás, amelyet esetleg nem az adatfájlokba írtak, tovább lesz adva. A tranzakciónaplóban talált összes hiányos tranzakciót a rendszer visszaállítja, hogy az adatbázis sértetlensége megmaradjon. További információ: Visszaállítás és helyreállítás – áttekintés (SQL Server).
Visszaállított adatbázis, fájl, fájlcsoport vagy lap továbbítása a hibapontig
Az adatbázisfájlokat érintő hardverveszteség vagy lemezhiba után visszaállíthatja az adatbázist a meghibásodási pontra. Először visszaállítja az utolsó teljes adatbázis biztonsági mentését és az utolsó különbségi adatbázis biztonsági mentését, majd visszaállítja a tranzakciónaplók biztonsági mentéseinek következő sorozatát a meghibásodási pontra.
Az egyes naplók biztonsági mentésének visszaállításakor az adatbázismotor újra alkalmazza a naplóban rögzített összes módosítást az összes tranzakció továbbításához. Az utolsó napló biztonsági mentésének visszaállításakor az adatbázismotor a naplóadatok használatával visszaállítja az összes olyan tranzakciót, amely még nem fejeződött be az adott időpontban. További információ: Visszaállítás és helyreállítás – áttekintés (SQL Server).
Tranzakciós replikáció támogatása
A Naplóolvasó ügynök figyeli a tranzakciós replikációhoz konfigurált adatbázisok tranzakciónaplóját, és a tranzakciónaplóból a terjesztési adatbázisba másolja a replikációra megjelölt tranzakciókat. További információ: A tranzakciós replikáció működése.
Magas rendelkezésre állású és vészhelyreállítási megoldások támogatása
A készenléti kiszolgálói megoldások, az Always On rendelkezésre állási csoportok, az adatbázis-tükrözés és a naplószállítás nagymértékben támaszkodnak a tranzakciónaplóra.
Az Always On rendelkezésre állási csoportok forgatókönyvében, az elsődleges replikán lévő adatbázis minden frissítését azonnal reprodukálja az adatbázis külön másolata az összes másodlagos replikán. Az elsődleges replika azonnal elküldi az egyes naplórekordokat a másodlagos replikáknak, amelyek a bejövő naplórekordokat a rendelkezésre állási adatbázisokra alkalmazzák, és folyamatosan továbbítják a naplót. További információ: Always On feladatátvevő fürtpéldányok (SQL Server).
Egy naplószállítási helyzetbenaz elsődleges kiszolgáló elküldi az elsődleges adatbázis tranzakciónapló-mentéseit egy vagy több célhelyre. Minden másodlagos kiszolgáló visszaállítja a naplók biztonsági mentéseit a helyi másodlagos adatbázisba. További információt a Napló áttelepítése (SQL Server)témakörben talál.
Egy adatbázistükrözési forgatókönyvbenaz adatbázis minden frissítését, az elsődleges adatbázist, azonnal reprodukálja az adatbázis egy külön, teljes másolatában, a tükrözött adatbázisban. Az egyszerű kiszolgálópéldány azonnal elküldi az egyes naplórekordokat a tükrözött kiszolgálópéldánynak, amely a bejövő naplórekordokat a tükrözött adatbázisra alkalmazza, és folyamatosan gördül előre. További információ: Adatbázis-tükrözés (SQL Server).
Tranzakciónapló jellemzői
Az SQL Server adatbázismotor tranzakciónaplójának jellemzői:
A tranzakciónaplót külön fájlként vagy fájlkészletként implementáljuk az adatbázisban. A naplógyorsítótár kezelése külön történik az adatoldalak puffergyorsítótárától. Ez az elkülönítés egyszerű, gyors és robusztus kódot eredményez az SQL Server adatbázismotoron belül. További információ: Tranzakciónapló fizikai architektúrája.
A naplórekordok és lapok formátuma nem korlátozza az adatlapok formátumának követését.
A tranzakciónapló több fájlban is implementálható. A naplófájl értékének beállításával
FILEGROWTHkonfigurálhatja a fájlok automatikus kibontását. Ez a konfiguráció csökkenti a tranzakciónaplóban a szabad terület elfogyásának lehetőségét, ugyanakkor csökkenti a felügyeleti többletterhelést. További információ: ALTER DATABASE (Transact-SQL) fájl- és fájlcsoportbeállítások.A naplófájlokon belüli tér újbóli felhasználásának mechanizmusa gyors, és minimális hatással van a tranzakció átviteli sebességére.
A tranzakciónapló fizikai és logikai architektúrájáról az SQL Server tranzakciónapló architektúrájában és kezelési útmutatójában talál további információt.
Tranzakciónapló csonkolása
A napló csonkolása helyet szabadít fel a naplófájlban, hogy a tranzakciónapló újra felhasználja. Rendszeresen csonkolnia kell a tranzakciónaplót, hogy ne töltse ki a kiosztott helyet. A naplók csonkolását számos tényező késleltetheti, ezért fontos a naplóméret figyelése. Egyes műveletek minimálisan naplózhatók a tranzakciónapló méretére gyakorolt hatás csökkentése érdekében.
A naplófuttatás törli az inaktív virtuális naplófájlokat (VLF-eket) egy SQL Server-adatbázis logikai tranzakciónaplójából, és helyet szabadít fel a logikai naplóban, hogy a fizikai tranzakciónapló újra felhasználja őket. Ha egy tranzakciónaplót soha nem csonkítják meg, az végül teljesen felhasználja a fizikai naplófájlokhoz lefoglalt lemezterületet.
A szabad terület elfogyásának elkerülése érdekében, hacsak a napló csonkolása valamilyen okból nem késik, a csonkolás automatikusan megtörténik a következő események után:
Az egyszerű helyreállítási modell szerint, egy ellenőrzőpont után.
A teljes helyreállítási modell vagy a tömegesen naplózott helyreállítási modell alatt, ha az előző biztonsági mentés óta ellenőrzőpont történt, a csonkolás a napló biztonsági mentése után történik (kivéve, ha csak másolati napló biztonsági mentése).
Amikor először létrehoz egy adatbázist, amely a teljes helyreállítási modellt használja, a tranzakciónaplót szükség szerint újra felhasználja (az egyszerű helyreállítási modellt használó adatbázishoz hasonlóan), egészen addig, amíg létre nem hoz egy teljes adatbázis-biztonsági másolatot.
További információ: A napló csonkolását késleltető tényezők a cikk későbbi részében.
A napló csonkolása nem csökkenti a fizikai naplófájl méretét. A fizikai naplófájlok fizikai méretének csökkentéséhez csökkentenie kell a naplófájlt. A fizikai naplófájl méretének csökkenéséről további információt a Tranzakciónapló-fájl méretének kezelésecímű témakörben talál. Vegye figyelembe azonban azokat a tényezőket, amelyek késleltethetik a napló csonkolását. Ha a tárterületre a naplók zsugorítása után ismét szükség van, a tranzakciónapló ismét nőni fog, és ezzel teljesítményterhelést okoz a naplónövelési műveletek során.
A napló csonkítását késleltető tényezők
Ha a naplórekordok hosszú ideig aktívak maradnak, a tranzakciónapló csonkolása késik, és a tranzakciónapló kitölthető a cikk korábbi részében leírtak szerint.
Fontos
A teljes tranzakciónaplókra való válaszadásról további információt a teljes tranzakciónapló hibaelhárítása (9002-s SQL Server-hiba) című témakörben talál.
A napló csonkolása különböző okokból késleltethető. Ha szeretné megtudni, hogy mi akadályozza a napló csonkolását, kérdezze le a log_reuse_wait katalógusnézetének log_reuse_wait_desc és oszlopait. Az alábbi táblázat ezeknek az oszlopoknak az értékeit ismerteti.
| log_reuse_wait érték | log_reuse_wait_desc érték | Leírás |
|---|---|---|
0 |
NOTHING |
Jelenleg egy vagy több újrafelhasználható virtuális naplófájl (VLF) található. |
1 |
CHECKPOINT |
Az utolsó naplócsonolás óta nem történt ellenőrzőpont, vagy a napló feje még nem lépte túl a virtuális naplófájlt (VLF). (Minden helyreállítási modell.) Ez a forgatókönyv rutinszerű oka a napló csonkolásának késleltetésének. További információ: Adatbázis-ellenőrzőpontok (SQL Server). |
2 |
LOG_BACKUP |
A tranzakciós napló csonkításához naplófájl biztonsági mentése szükséges. (Csak a teljes vagy tömegesen naplózott helyreállítási modellek.) Ha a következő napló biztonsági mentése befejeződött, előfordulhat, hogy a naplóterület egy része újra felhasználható lesz. |
3 |
ACTIVE_BACKUP_OR_RESTORE |
Az adatok biztonsági mentése vagy visszaállítása folyamatban van. (Minden helyreállítási modell.) Ha egy adat biztonsági mentése megakadályozza a naplók csonkolását, a biztonsági mentési művelet megszakítása segíthet az azonnali probléma megoldásában. |
4 |
ACTIVE_TRANSACTION |
A tranzakció aktív (minden helyreállítási modell): A napló biztonsági mentésekor előfordulhat, hogy hosszú ideig futó tranzakció van. Ebben az esetben a hely felszabadításához szükség lehet egy másik napló biztonsági mentésére. A hosszú ideig futó tranzakciók megakadályozzák a naplók csonkolását az összes helyreállítási modellben, beleértve az egyszerű helyreállítási modellt is, amely alatt a tranzakciónapló általában csonkolt minden automatikus ellenőrzőponton. A tranzakció halasztva van. A halasztott tranzakció olyan aktív tranzakció, amelynek visszaállítását valamilyen nem elérhető erőforrás blokkolta. A halasztott tranzakciók okairól és azok halasztott állapotból való áthelyezéséről további információt a Halasztott tranzakciók (SQL Server) című témakörben talál. A hosszú ideig futó tranzakciók tempdbtranzakciónaplóját is kitölthetik. A felhasználói tranzakciók implicit módon tempdb-t használnak belső objektumokhoz, például a rendezéshez szükséges munkatáblákhoz, a kivonatoláshoz használt munkafájlokhoz, a kurzormunkatáblákhoz, és a sorverziózáshoz. Még ha a felhasználói tranzakció csak olvasási adatokat (SELECT lekérdezéseket) is tartalmaz, belső objektumok hozhatók létre és használhatók a felhasználói tranzakciók alatt. Ezután a tempdb tranzakciónapló kitölthető. |
5 |
DATABASE_MIRRORING |
Az adatbázis-tükrözés szüneteltetve van, vagy nagy teljesítményű módban a tükrözött adatbázis jelentősen az elsődleges adatbázis mögött van. (Csak teljes helyreállítási modell.) További információ: Adatbázis-tükrözés (SQL Server). |
6 |
REPLICATION |
A tranzakciós replikációk során a kiadványok szempontjából releváns tranzakciók továbbra sem lesznek kézbesítve a terjesztési adatbázis számára. (Csak teljes helyreállítási modell.) A tranzakciós replikációval kapcsolatos információkért lásd: SQL Server-replikáció. |
7 |
DATABASE_SNAPSHOT_CREATION |
Létrejön egy adatbázis-pillanatkép. (Minden helyreállítási modell.) Ez a naplók késleltetett csonkolásának rutinszerű és általában rövid oka. |
8 |
LOG_SCAN |
Naplóvizsgálat zajlik. (Minden helyreállítási modell.) Ez a naplók késleltetett csonkolásának rutinszerű és általában rövid oka. |
9 |
AVAILABILITY_REPLICA |
A rendelkezésre állási csoport egy másodlagos replikája az adatbázis tranzakciónapló-rekordjait egy hozzá tartozó másodlagos adatbázisra alkalmazza. (Csak teljes helyreállítási modell.) További információ: Mi az Always On rendelkezésre állási csoport?. |
10 |
- | Csak belső használatra. |
11 |
- | Csak belső használatra. |
12 |
- | Csak belső használatra. |
13 |
OLDEST_PAGE |
Ha egy adatbázis közvetett ellenőrzőpontok használatára van konfigurálva, az adatbázis legrégebbi lapja régebbi lehet, mint az ellenőrzőpont naplósorozat-szám (LSN). Ebben az esetben a legrégebbi oldal késleltetheti a napló csonkolását. (Minden helyreállítási modell.) A közvetett ellenőrzőpontokról további információt Adatbázis-ellenőrzőpontok (SQL Server)című témakörben talál. |
14 |
OTHER_TRANSIENT |
Ez az érték jelenleg nincs használatban. |
16 |
XTP_CHECKPOINT |
Egy In-Memory OLTP ellenőrzőpontot kell végrehajtani. A memóriaoptimalizált táblák esetében automatikus ellenőrzőpont jön létre, amikor a tranzakciónapló-fájl 1,5 GB-nál nagyobb lesz az utolsó ellenőrzőpont óta. (Lemezalapú és memóriaoptimalizált táblákat is tartalmaz.) További információ: A memóriaoptimalizált táblák ellenőrzőpont-művelete , valamint a memóriaoptimalizált táblák naplózási és ellenőrzőpont-folyamata. |
Minimálisan naplózható műveletek
A minimális naplózás csak azokat az információkat naplózhatja, amelyek a tranzakció helyreállításához szükségesek az időponthoz kötött helyreállítás támogatása nélkül. Ez a cikk azonosítja azokat a műveleteket, amelyeket a rendszer minimálisan naplóz a tömegesen naplózott helyreállítási modellben (és az egyszerű helyreállítási modell alatt is, kivéve, ha a biztonsági mentés fut).
A memóriaoptimalizált táblák esetében a minimális naplózás nem támogatott.
A teljes helyreállítási modellalatt a rendszer az összes tömeges műveletet teljes mértékben naplózza. A tömeges műveletek naplózását azonban minimálisra csökkentheti, ha ideiglenesen a tömeges műveletekhez az adatbázist a tömegesen naplózott helyreállítási modellre állítja. A minimális naplózás hatékonyabb, mint a teljes naplózás, és csökkenti annak lehetőségét, hogy egy nagy méretű tömeges művelet kitöltse a rendelkezésre álló tranzakciónapló-területet egy tömeges tranzakció során. Ha azonban az adatbázis megsérül vagy elveszik, ha minimális naplózás van érvényben, akkor az adatbázis nem állítható helyre a hibapontig.
A teljes helyreállítási modellben teljes körűen naplózott alábbi műveleteket a rendszer minimálisan naplózza az egyszerű és tömegesen naplózott helyreállítási modellben:
Tömeges importálási műveletek (bcp, BULK INSERTés INSERT). Ha többet szeretne megtudni a táblákba történő tömeges importálás minimális naplózásának feltételeiről, olvassa el a A tömeges import minimális naplózásának előfeltételeicímű részt.
Ha a tranzakciós replikáció engedélyezve van,
BULK INSERTa műveletek teljes mértékben naplózva lesznek még a tömegesen naplózott helyreállítási modellben is.SELECT - INTO utasítás műveletek.
Ha a tranzakciós replikáció engedélyezve van,
SELECT INTOa műveletek teljes mértékben naplózva lesznek még a tömegesen naplózott helyreállítási modellben is.Nagy értékű adattípusok részleges frissítése az
.WRITEutasítás záradékával új adatok beszúrásakor vagy hozzáfűzésekor. A meglévő értékek frissítésekor a rendszer nem használ minimális naplózást. A nagy értékű adattípusokról további információt Adattípusokcímű témakörben talál.WRITETEXT és UPDATETEXT utasításokat, amikor új adatokat szúr be vagy fűz hozzá a szöveg, ntext, valamint kép adattípus oszlopaihoz. A meglévő értékek frissítésekor a rendszer nem használ minimális naplózást.
Figyelmeztetés
Az
WRITETEXTésUPDATETEXTaz utasítások elavultak. Ne használja őket új alkalmazásokban.Ha az adatbázis egyszerű vagy tömegesen naplózott helyreállítási modellre van állítva, a rendszer minimálisan naplózza az index DDL-műveleteit, függetlenül attól, hogy a művelet offline vagy online állapotban van-e. A minimálisan naplózott indexműveletek a következők:
CREATE INDEX műveletek (beleértve az indexelt nézeteket is).
ALTER INDEX REBUILD vagy
DBCC DBREINDEXművelet végrehajtása.Az index buildelési műveletei minimális naplózást használnak, de előfordulhat, hogy késnek, ha egyidejűleg fut a biztonsági mentés. Ezt a késést a minimálisan naplózott pufferkészletlapok szinkronizálási követelményei okozzák az egyszerű vagy tömegesen naplózott helyreállítási modell használatakor.
Figyelmeztetés
Az
DBCC DBREINDEXutasítás elavult. Ne használja új alkalmazásokban.DROP INDEX új halom újraépítése (ha van). Az indexlap felszabadítása a
DROP INDEXművelet során mindig teljes mértékben naplózva van.
Kapcsolódó tevékenységek
| Feladat | Cikk |
|---|---|
| A tranzakciónapló kezelése |
A tranzakciónapló-fájl méretének kezelése Teljes tranzakciónapló hibaelhárítása (SQL Server 9002-s hiba) |
| A tranzakciónapló biztonsági mentése (csak a teljes helyreállítási modell esetében) |
Tranzakciónapló biztonsági mentése A tranzakciónapló biztonsági mentése az adatbázis sérülése esetén (SQL Server) |
| A tranzakciónapló visszaállítása (csak teljes helyreállítási modell esetén) | Tranzakciónapló biztonsági mentésének visszaállítása (SQL Server) |
Kapcsolódó tartalom
- SQL Server tranzakciónapló-architektúrája és felügyeleti útmutatója
- A tranzakciók tartósságának szabályozása
- Tömeges adatimportálás minimális naplózás előfeltételei
- SQL Server-adatbázisok biztonsági mentése és visszaállítása
- Visszaállítás és helyreállítás – áttekintés (SQL Server)
- adatbázis-ellenőrzőpontok (SQL Server)
- Adatbázis tulajdonságainak megtekintése vagy módosítása
- Helyreállítási modellek (SQL Server)
- tranzakciónapló biztonsági mentései (SQL Server)
- sys.dm_db_log_info (Transact-SQL)
- sys.dm_db_log_space_usage (Transact-SQL)