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 az adatbázis konzisztens állapotba helyezéséhez szüksége lesz erre a naplóra.
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ó architektúrájáról és belső elemeiről az SQL Server tranzakciónapló-architektúrájáról és kezelési útmutatójárólolvashat.
Borravaló
Az ellenőrzőpontok megbízható ismert pontokat hoznak létre, amelyekből a tranzakciónaplók alkalmazása megkezdhető az adatbázis helyreállítása 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ó: Az SQL Server visszaállítás és helyreállítás áttekintése.
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ése (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ó: 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árat az adatoldalak puffergyorsítótárától elkülönítve kezelik, ami 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 fájlok automatikusan kibővíthetők, ha a napló
FILEGROWTH
értékre van beállítva. Ez csökkenti a tranzakciónaplóban a szabad terület elfogyásának lehetőségét, ugyanakkor csökkenti a rendszergazdai 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ó architektúrájáról és belső elemeiről az SQL Server tranzakciónapló-architektúrájáról és kezelési útmutatójárólolvashat.
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ók méretére gyakorolt hatás csökkentése érdekében.
A napló csonkítás törli az inaktív virtuális naplófájlokat (VLF-eket) egy SQL Server-adatbázis logikai tranzakciónaplójából, ezzel helyet biztosítva a logikai naplóban a fizikai tranzakciónapló általi újrahasználathoz. 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 a teljes helyreállítási modellel hoz létre adatbázist, 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ót a cikk későbbi részében, a A napló csonkolását késleltető tényezőktémakör alatt talál.
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. Ne feledje azonban tényezőket, amelyek késleltethetik a napló csonkítá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énybeli többletterhelést jelent 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ó megtelhet, amint azt a cikk korábbi részében említettük.
Fontos
További információ a teljes tranzakciónaplókra való válaszadásról: Teljes tranzakciónapló hibaelhárítása (SQL Server 9002-s hiba).
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 sys.databases katalógusnézetének log_reuse_wait
és log_reuse_wait_desc
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 van egy vagy több újrafelhasználható virtuális naplófájl (VLF) . |
1 |
CHECKPOINT |
Az utolsó naplócsonkítás óta nem történt ellenőrzési pont, vagy a napló feje még nem lépett túl egy virtuális naplófájlon (VLF) (minden helyreállítási modell). Ez a napló csonkolás késleltetésének rutinszerű oka. 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 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 a halasztott állapotból való áthelyezésükről további információt halasztott tranzakciók (SQL Server)című témakörben talál. A hosszú ideig futó tranzakciók tempdb tranzakció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) Információért a tranzakciós replikációról 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 történik (minden helyreállítási modell). Ez a naplók késésének 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 az utolsó ellenőrzőpont óta 1,5 GB-nál nagyobb lesz (beleértve a lemezalapú és a memóriaoptimalizált táblákat is). További információért lásd: ellenőrzőpont-művelet a Memory-Optimized táblákhoz, és a naplózási és ellenőrzőpont-folyamat a In-Memory optimalizált táblákhoz,. |
Minimálisan naplózható műveletek
Minimális naplózás csak azokat az információkat naplózza, amelyek a tranzakció helyreállításához szükségesek időpontra való helyreállítás támogatása nélkül. Ez a cikk a tömegesen naplózott helyreállítási modell (valamint az egyszerű helyreállítási modell alatt) minimálisan naplózott műveleteket azonosítja, kivéve, ha 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 engedélyezve van a tranzakciós replikáció,
BULK INSERT
műveletek teljes naplózása még a tömegesen naplózott helyreállítási modell alatt is történik.SELECT - INTO utasítás műveletek.
Ha engedélyezve van a tranzakciós replikáció,
SELECT INTO
műveletek teljes naplózása még a tömegesen naplózott helyreállítási modell alatt is történik.Nagy értékű adattípusok részleges frissítése az UPDATE utasítás
.WRITE
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
A
WRITETEXT
ésUPDATETEXT
utasítások elavult; ne használja őket új alkalmazásokban.Ha az adatbázis az 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űveletet offline vagy online hajtja végre. 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 DBREINDEX
művelet végrehajtása.Az indexépítési műveletek minimális naplózási eljárást használnak, de egyidejűleg végrehajtott biztonsági mentés késleltetheti őket. 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
A
DBCC DBREINDEX
utasítás elavult; ne használja új alkalmazásokban.DROP INDEX új halom újraépítése (ha van). Egy
DROP INDEX
művelet során az index oldal felszabadítása mindig teljes mértékben naplózva van.
Kapcsolódó tevékenységek
Feladat | Cikk |
---|---|
A tranzakciónapló kezelése |
-
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 - Biztonsági mentést készít a tranzakciónaplóról, amikor az adatbázis sérült (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 (SQL Server) visszaállítása |
Kapcsolódó tartalom
- SQL Server tranzakciónapló-architektúrája és felügyeleti útmutatója
- Tranzakció 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ése (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)