The Transaction Log (SQL Server) (Magyar)

  • 10/23/2019
  • 11 minutes to read
    • M
    • D
    • f
    • M
    • s
    • +8

Applies to: SQL Server (all supported versions)

Every SQL Server database has a transaction log that records all transactions and the database modifications made by each transaction.,

a tranzakciós napló az adatbázis kritikus eleme. Ha rendszerhiba van, akkor szüksége lesz erre a naplóra, hogy az adatbázist következetes állapotba hozza.

a tranzakciós naplóarchitektúrával és a belső oldalakkal kapcsolatos információkért lásd az SQL Server tranzakciós Naplóarchitektúráját és kezelési útmutatóját.

Warning

soha ne törölje vagy mozgassa ezt a naplót, kivéve, ha teljes mértékben megérti ennek következményeit.

Tip

ismert jó pontokat, ahonnan kezdeni alkalmazása tranzakciós naplók során adatbázis hasznosítás által létrehozott ellenőrző pontok., További információkért lásd: Adatbázis ellenőrző pontok (SQL Server).

A tranzakciós napló által támogatott műveletek

a tranzakciós napló a következő műveleteket támogatja:

  • egyéni tranzakció-helyreállítás.
  • az összes hiányos tranzakció helyreállítása az SQL Server indításakor.
  • visszaállított adatbázis, fájl, fájlcsoport vagy oldal gördítése a hiba helyére.
  • tranzakciós replikáció támogatása.
  • támogatja a magas rendelkezésre állás és katasztrófa helyreállítási megoldások: mindig a rendelkezésre álló csoportok, adatbázis tükrözés, valamint a napló szállítás.,

egyedi tranzakció-helyreállítás

Ha egy alkalmazás ROLLBACK nyilatkozatot ad ki, vagy ha az adatbázis-motor hibát észlel, például az ügyféllel való kommunikáció elvesztését, a naplórekordok a hiányos tranzakció által végrehajtott módosítások visszavonására szolgálnak.,

Helyreállítási minden befejezetlen tranzakciók, amikor az SQL Szerver indult

Ha a szerver meghibásodik, az adatbázisok lehet, hogy maradt egy állam, ahol bizonyos módosításokat nem írtam a buffer cache az adatokat, fájlokat lehet, hogy néhány módosítást a befejezetlen tranzakciók az adatokat. Amikor az SQL Server egy példánya elindul, 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 írtak az adatfájlokba, előre kerül., Ezután a tranzakciónaplóban található minden hiányos tranzakciót visszaforgatnak, hogy megbizonyosodjanak arról, hogy az adatbázis integritása megmarad-e. További információkért lásd: visszaállítás és helyreállítás áttekintése (SQL Server).

visszaállított adatbázis, fájl, fájlcsoport vagy oldal gördítése a hiba helyére

az adatbázisfájlokat érintő hardvervesztés vagy lemezhiba után visszaállíthatja az adatbázist a hiba helyére., Először visszaállítja az utolsó teljes adatbázis-mentést, majd az utolsó differenciális adatbázis-mentést, majd visszaállítja a tranzakciónapló biztonsági mentéseinek későbbi sorrendjét a hiba helyére.

az egyes naplóbejegyzések 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. Amikor az utolsó napló biztonsági mentése helyreáll, az adatbázis-motor ezután a naplóinformációkat használja az összes olyan tranzakció visszaállításához, amely ezen a ponton nem volt teljes. További információkért lásd: visszaállítás és helyreállítás áttekintése (SQL Server).,

tranzakciós replikáció támogatása

a Log Reader ügynök figyelemmel kíséri a tranzakciós replikációra konfigurált egyes adatbázisok tranzakciós naplóját, és átmásolja a tranzakciónaplóból a replikációra megjelölt tranzakciókat a terjesztési adatbázisba. További információért lásd, Hogyan működik a tranzakciós replikáció.

Támogató magas rendelkezésre állás, valamint katasztrófa-helyreállítási megoldások

A készenléti-szerver megoldások, Mindig A rendelkezésre állás csoportok, adatbázis tükrözés, valamint a log shipping, erősen támaszkodik a tranzakció napló.,

egy mindig a rendelkezésre álló csoportok forgatókönyv, minden frissítés egy adatbázis, az elsődleges replika, azonnal reprodukálni külön, teljes példányban az adatbázis, a másodlagos replikák. Az elsődleges replika minden naplórekordot azonnal elküldi a másodlagos replikáknak, amely a bejövő naplórekordokat az elérhetőségi csoport adatbázisaira alkalmazza, folyamatosan továbbítva. További információért lásd: mindig a Failover Cluster Instances

naplózási forgatókönyv esetén az elsődleges kiszolgáló az elsődleges adatbázis aktív tranzakciós naplóját egy vagy több célállomásra küldi., Minden másodlagos szerver visszaállítja a naplót a helyi másodlagos adatbázisba. További információ a naplózásról.

egy adatbázis-tükrözési forgatókönyvben az adatbázis, a fő adatbázis minden frissítése azonnal reprodukálódik az adatbázis, a tükör adatbázis külön, teljes példányában. A fő szerverpéldány minden naplórekordot azonnal elküldi a tükörkiszolgáló példánynak, amely a bejövő naplórekordokat a tüköradatbázisra alkalmazza, folyamatosan gördítve előre. További információért lásd: Adatbázis tükrözés.,

tranzakciós napló jellemzői

Az SQL Server adatbázis motor tranzakciós naplójának jellemzői:

  • a tranzakciós napló külön fájlként vagy fájlkészletként kerül végrehajtásra az adatbázisban. A naplózási gyorsítótárat az adatoldalak puffer-gyorsítótárától elkülönítve kezelik, ami egyszerű, gyors és robusztus kódot eredményez az SQL Server adatbázis-motoron belül. További információért lásd: tranzakciós napló fizikai architektúrája.

  • a naplórekordok és oldalak formátuma nem korlátozódik az adatoldalak formátumának követésére.,

  • a tranzakciós napló több fájlban is végrehajtható. A fájlokat úgy lehet definiálni, hogy automatikusan kibővüljenek a FILEGROWTH érték beállításával a naplóhoz. Ez csökkenti annak lehetőségét, hogy a tranzakciós naplóban elfogy a hely, ugyanakkor csökkenti az adminisztratív költségeket. További információért lásd: Alter DATABASE (Transact-SQL) fájl és Filegroup opciók.

  • a naplófájlokon belüli tér újrafelhasználásának mechanizmusa gyors és minimális hatással van a tranzakciós teljesítményre.,

a tranzakciós naplóarchitektúrával és a belső oldalakkal kapcsolatos információkat lásd az SQL Server tranzakciós Naplóarchitektúrájának és kezelési útmutatójában.

tranzakciós napló csonkolás

a Log csonkolás szabadít fel helyet a naplófájlban a tranzakciós napló általi újrafelhasználás céljából. Rendszeresen csonkolnia kell a tranzakciós naplót, hogy ne töltse ki a kijelölt helyet. Számos tényező késleltetheti a napló csonkolását, így a naplóméret ellenőrzése fontos. Egyes műveletek minimálisan naplózhatók, hogy csökkentsék a tranzakciós napló méretére gyakorolt hatásukat.,

a Log truncation törli az inaktív virtuális naplófájlokat (VLFs) az SQL Server adatbázis logikai tranzakciós naplójából, felszabadítva a helyet a logikai naplóban a fizikai tranzakciós napló újbóli felhasználásához. Ha a tranzakciós naplót soha nem csonkolják, akkor végül kitölti a fizikai naplófájlokhoz rendelt összes lemezterületet.

annak elkerülése érdekében, hogy a hely kifogyjon, kivéve, ha a naplózási csonkolás valamilyen okból késik, a csonkolás automatikusan megtörténik a következő események után:

  • az egyszerű helyreállítási modell alatt, ellenőrzőpont után.,
  • a teljes helyreállítási modell vagy ömlesztett 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óbeszámolás után következik be (kivéve, ha ez csak másolat naplóbeszámoló).

további információért lásd: tényezők, amelyek késleltethetik a napló csonkolását, később ebben a témában.

Megjegyzés

a Log csonkolás nem csökkenti a fizikai naplófájl méretét. A fizikai naplófájl fizikai méretének csökkentéséhez zsugorítania kell a naplófájlt. A fizikai naplófájl méretének zsugorításával kapcsolatos információkért lásd: Tranzakciónaplófájl méretének kezelése.,
ne feledje azonban azokat a tényezőket, amelyek késleltethetik a napló csonkolását. Ha egy naplózási zsugorodás után ismét szükség van a tárhelyre,akkor a tranzakciós napló újra növekedni fog, ezzel pedig a log grow műveletek során bevezeti a teljesítményt.

olyan tényezők, amelyek késleltethetik a naplózást

amikor a naplórekordok hosszú ideig aktívak maradnak, a tranzakciós napló csonkolása késik, a tranzakciós napló pedig kitölthető, amint azt korábban említettük ebben a hosszú témában.,

fontos

a teljes tranzakciós naplóra való reagálással kapcsolatos információkért lásd: teljes tranzakciós napló hibaelhárítása (SQL Server Error 9002).

valójában a Napló csonkolása számos okból késleltethető. Ismerje meg, hogy mi akadályozza meg a naplózási csonkolást a sys log_reuse_wait és log_reuse_wait_desc oszlopainak lekérdezésével.adatbázisok katalógus nézet. Az alábbi táblázat az oszlopok értékeit írja le.,

leírás

log_reuse_wait value log_reuse_wait_desc value
0 semmi jelenleg van egy vagy több újrafelhasználható virtuális naplófájl (vlfs).
1 CHECKPOINT az utolsó log csonkolás óta nem történt ellenőrzőpont, vagy a napló vezetője még nem lépett túl a virtuális naplófájlon (VLF). (Minden helyreállítási modell)
Ez egy rutin ok a napló csonkolásának késleltetésére., További információkért lásd: Adatbázis ellenőrző pontok (SQL Server).
2 LOG_BACKUP a tranzakciós napló csonkolása előtt naplózási biztonsági mentésre van szükség. (Csak teljes vagy ömlesztett naplózott helyreállítási modellek)
a következő naplózási biztonsági mentés befejezése után néhány naplótér újrafelhasználhatóvá válhat.
3 ACTIVE_BACKUP_OR_RESTORE adatmentés vagy visszaállítás folyamatban van (minden helyreállítási modell).
Ha egy adatmentés megakadályozza a napló csonkolását, a biztonsági mentési művelet törlése segíthet az azonnali problémában.,
4 ACTIVE_TRANSACTION egy tranzakció aktív (minden helyreállítási modell):
a naplózási biztonsági mentés elején egy régóta futó tranzakció létezhet. Ebben az esetben a hely felszabadításához szükség lehet egy másik naplóbejegyzésre. Vegye figyelembe, hogy a régóta futó tranzakciók megakadályozzák a naplózást az összes helyreállítási modell alatt, beleértve az egyszerű helyreállítási modellt is, amely szerint a tranzakciós naplót általában minden automatikus ellenőrzőponton csonkolják.
a tranzakciót elhalasztják., A halasztott tranzakció valójában egy aktív tranzakció, amelynek visszavonása blokkolva van valamilyen nem elérhető erőforrás miatt. A halasztott tranzakciók okairól, valamint a halasztott állapotból való áthelyezésükről lásd: halasztott tranzakciók (SQL Server).
A régóta futó tranzakciók kitölthetik a tempdb tranzakciós naplóját is. A Tempdb-t implicit módon használják a felhasználói tranzakciók olyan belső objektumokhoz, mint például a munkalapok a válogatáshoz, a munkafájlok a hasheléshez, a kurzortáblák és a sorverzió., Még akkor is, ha a felhasználói tranzakció csak olvasási adatokat tartalmaz (SELECT lekérdezések), belső objektumok hozhatók létre és használhatók a felhasználói tranzakciók során. Ezután a tempdb tranzakciós napló kitölthető.
5 DATABASE_MIRRORING Adatbázis tükrözés szünetel, vagy nagy teljesítményű módban, a tükör adatbázis jelentősen mögött a fő adatbázis. (Csak teljes helyreállítási modell)
További információkért lásd az adatbázis tükrözését (SQL Server).,
6 replikáció tranzakciós replikációk során a publikációkra vonatkozó tranzakciók továbbra sem kerülnek a terjesztési adatbázisba. (Csak teljes helyreállítási modell)
a tranzakciós replikációval kapcsolatos információkért lásd: SQL Server Replikation.
7 DATABASE_SNAPSHOT_CREATION adatbázis pillanatkép jön létre. (Minden helyreállítási modell)
Ez egy rutin, általában rövid, a késleltetett naplócsonkítás oka.
8 LOG_SCAN naplóvizsgálat történik., (Minden helyreállítási modell)
Ez egy rutin, általában rövid, a késleltetett naplócsonkítás oka.
9 rendelkezésre ÁLLÁSY_REPLICA egy rendelkezésre álló csoport másodlagos másolata az adatbázis tranzakciós naplóbejegyzéseit alkalmazza egy megfelelő másodlagos adatbázisra. (Full recovery model)
További információért lásd az Always On Availability Groups (SQL Server) áttekintését.,
10 csak belső használatra
11 csak belső használatra
12 Csak belső használatra
13 OLDEST_PAGE Ha egy adatbázis használatára van beállítva közvetett ellenőrző pontokon, a legidősebb oldal az adatbázis lehet idősebb, mint az ellenőrzőpont napló sorszám (HÁT). 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ő pontokkal kapcsolatos információkért lásd az Adatbázis Ellenőrző pontjait (SQL Server).,
14 OTHER_TRANSIENT ezt az értéket jelenleg nem használjuk.
16 XTP_CHECKPOINT egy memóriában lévő OLTP ellenőrzőpontot kell végrehajtani.A memóriára optimalizált táblázatok esetében egy automatikus ellenőrző pontot veszünk, amikor a tranzakciós naplófájl nagyobb lesz, mint 1.,5 GB-os, mivel az utolsó ellenőrzőpont (tartalmazza mindkét lemezt-alapú memória-optimalizált táblázatok)
további információ a ellenőrző ponton Műveleti Memória-Optimalizált Táblák, valamint a (https://blogs.msdn.microsoft.com/sqlcat/2016/05/20/logging-and-checkpoint-process-for-memory-optimized-tables-2/)

Műveletek is minimálisan bejelentkezett

a Minimális magában foglalja a fakitermelés fakitermelés csak a szükséges információk, hogy visszaszerezze a tranzakció nem támogatja a point-in-time helyreállítás., Ez a téma azonosítja azokat a műveleteket, amelyeket minimálisan naplóznak a tömeges naplózott helyreállítási modell alatt (valamint az egyszerű helyreállítási modell alatt, kivéve, ha biztonsági mentés fut).

Megjegyzés

minimális naplózás nem támogatott memória-optimalizált táblákhoz.

Megjegyzés

a teljes helyreállítási modell alatt az összes ömlesztett művelet teljesen naplózva van. Azonban minimalizálhatja a naplózást egy sor ömlesztett művelethez, ha az adatbázist ömlesztett naplózott helyreállítási modellre váltja át ideiglenesen ömlesztett műveletekhez.,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 volumenű művelet kitöltse a rendelkezésre álló tranzakciós naplót egy ömlesztett tranzakció során. Ha azonban az adatbázis sérült vagy elveszett, amikor a minimális naplózás érvényben van, akkor nem tudja visszaállítani az adatbázist a hiba helyére.

a következő műveletek, amelyek teljes mértékben be vannak jelentkezve a teljes helyreállítási modell alatt, minimálisan naplózva vannak az egyszerű és ömlesztett naplózott helyreállítási modell alatt:

  • tömeges importálási műveletek (BCP, tömeges Beszúrás és beszúrás… Válassza ki)., Ha többet szeretne megtudni arról, hogy a táblázatba történő tömeges Importálás minimálisan bejelentkezett-e, tekintse meg az ömlesztett importálás minimális naplózásának előfeltételeit.

Ha a tranzakciós replikáció engedélyezve van, BULK INSERT a műveletek teljes mértékben naplózva vannak még a tömeges naplózott helyreállítási modell alatt is.

  • válassza a műveletek lehetőséget.

Ha a tranzakciós replikáció engedélyezve van, SELECT INTO a műveletek teljes mértékben naplózva vannak még a tömeges naplózott helyreállítási modell alatt is.,

  • részleges frissítések a nagy értékű adattípusokhoz, a .WRITE záradék a frissítési nyilatkozatban új adatok beillesztésekor vagy csatolásakor. Vegye figyelembe, hogy a meglévő értékek frissítésekor a minimális naplózást nem használják. A nagy értékű adattípusokkal kapcsolatos további információkért lásd: adattípusok (Transact-SQL).

  • WRITETEXT és UPDATETEXT utasítások új adatok szövegbe, ntextbe és kép adattípus oszlopokba történő beillesztésekor vagy csatolásakor. Vegye figyelembe, hogy a meglévő értékek frissítésekor a minimális naplózást nem használják.,

    Warning

    The WRITETEXT and UPDATETEXT a kijelentések elavultak; ne használja őket új alkalmazásokban.

  • Ha az adatbázis egyszerű vagy ömlesztett naplózott helyreállítási modellre van állítva, néhány index DDL művelet minimálisan naplózásra kerül, függetlenül attól, hogy a műveletet offline vagy online hajtják-e végre. A minimálisan naplózott indexműveletek a következők:

    • INDEXMŰVELETEK létrehozása (beleértve az indexelt nézeteket is).

    • ALTER INDEX újjáépíteni vagy DBCC DBREINDEX műveletek.,

      Warning

      a DBCC DBREINDEX utasítás elavult; ne használja új alkalmazásokban.

      Megjegyzés

      Index build műveletek minimális naplózást használnak, de késleltethetők, ha egyidejűleg végrehajtják a biztonsági mentést. Ezt a késleltetést a minimálisan naplózott pufferkészletek oldalainak szinkronizálási követelményei okozzák az egyszerű vagy ömlesztett naplózott helyreállítási modell használatakor.

    • DROP INDEX new heap rebuild (adott esetben). Index oldal deallocation során DROP INDEX művelet mindig teljesen bejelentkezett.,n az Adatbázis Sérült (SQL Server)

    Visszaállítása a Tranzakciós Log (Teljes Helyreállítási Modell)

    • Visszaállítás egy Tranzakciós Log Backup (SQL Server)

    Lásd

    SQL Server Ügyleti Építészet, illetve Kezelési Útmutató
    Control Tranzakció Tartósság
    Előfeltételei Minimális Bejelentkezés Tömeges Importálás
    végezze el az SQL Server Adatbázis
    Visszaállítás, Helyreállítás Áttekintése (SQL Server)
    Adatbázis ellenőrző pontokon (SQL Server)
    megjelenítése vagy Módosítása a Tulajdonságok egy Adatbázis
    Helyreállítási Modellek (SQL Server)
    Tranzakciós Log Mentést (SQL Server)
    sys.,dm_db_log_info (Transact-SQL)
    sys. dm_db_log_space_usage (Transact-SQL)

Leave a Comment