Tranzakciónapló biztonsági mentésének visszaállítása (SQL Server)

A következőkre vonatkozik:SQL Server

Ez a témakör azt ismerteti, hogyan állítható vissza egy tranzakciónapló biztonsági mentése az SQL Serveren az SQL Server Management Studio vagy a Transact-SQL használatával.

ebben a témakörben

Mielőtt hozzákezdene

Előfeltételek

  • A biztonsági másolatokat a létrehozásuk sorrendjében kell visszaállítani. Mielőtt visszaállíthat egy adott tranzakciónapló biztonsági mentését, először a korábbi biztonsági mentéseket vissza kell állítania a nem véglegesített tranzakciók visszagörgetése nélkül, tehát a NORECOVERY használatával.

    • Az adatbázis teljes biztonsági mentése és az esetlegesen létező utolsó differenciális biztonsági mentés, amelyet annak a tranzakciónapló biztonsági mentésnek a készítése előtt végeztek. A legutóbbi teljes vagy különbözeti adatbázis biztonsági mentése előtt az adatbázisnak a teljes helyreállítási modellt vagy a tömegesen naplózott helyreállítási modellt kell használnia.

    • Minden tranzakciónapló biztonsági mentése a teljes adatbázis biztonsági mentése vagy a különbségi biztonsági mentés után (ha visszaállít egyet) és az adott tranzakciónapló biztonsági mentése előtt. A naplók biztonsági mentéseit a létrehozásuk sorrendjében kell alkalmazni, a naplóláncban lévő rések nélkül.

      A tranzakciónaplók biztonsági mentéséről további információt Tranzakciónapló biztonsági mentései (SQL Server) és Tranzakciónapló biztonsági mentése (SQL Server)című témakörben talál.

Biztonság

Engedélyek

A VISSZAÁLLÍTÁSi engedélyek olyan szerepkörökhöz lesznek adva, amelyekben a tagsági adatok mindig könnyen elérhetők a kiszolgáló számára. Mivel a rögzített adatbázisszerepkör-tagság csak akkor ellenőrizhető, ha az adatbázis elérhető és sértetlen, ami nem mindig történik meg a VISSZAÁLLÍTÁS végrehajtásakor, a db_owner rögzített adatbázis-szerepkör tagjai nem rendelkeznek VISSZAÁLLÍTÁSi engedélyekkel.

Az SQL Server Management Studio használata

Figyelmeztetés

A visszaállítás szokásos folyamata a napló biztonsági másolatainak kiválasztása a Adatbázis visszaállítása párbeszédpanelen az adatokkal és a különbségi biztonsági mentésekkel együtt.

Tranzakciónapló biztonsági mentésének visszaállítása

  1. Miután csatlakozott a Microsoft SQL Server adatbázismotor megfelelő példányához, az Object Explorerben kattintson a kiszolgáló nevére a kiszolgálófa kibontásához.

  2. Bontsa ki adatbázisok, és az adatbázistól függően válasszon ki egy felhasználói adatbázist, vagy bontsa ki rendszeradatbázisok, és válasszon ki egy rendszeradatbázist.

  3. Kattintson a jobb gombbal az adatbázisra, mutasson a Feladatokparancsra, mutasson a Visszaállításpontra, majd kattintson a Tranzakciónaplóparancsra, amely megnyitja a Tranzakciónapló visszaállítása párbeszédpanelt.

    Jegyzet

    Ha tranzakciónapló szürkén jelenik meg, előfordulhat, hogy először vissza kell állítania egy teljes vagy differenciális biztonsági mentést. Használja az Adatbázis biztonsági mentési párbeszédpanelt.

  4. Az Általános lapon, a Adatbázis listamezőben válassza ki az adatbázis nevét. Csak a visszaállítási állapotú adatbázisok szerepelnek a listában.

  5. A visszaállítani kívánt biztonsági mentési csoportok forrásának és helyének megadásához kattintson az alábbi lehetőségek egyikére:

    • Adatbázis- korábbi biztonsági másolataiból

      Válassza ki a legördülő listából visszaállítani kívánt adatbázist. A lista csak azokat az adatbázisokat tartalmazza, amelyek biztonsági mentése az msdb biztonsági mentési előzményeinek alapján történt.

    • Fájlból vagy szalagról

      Kattintson a böngészés (...) gombra a Biztonsági mentési eszközök kiválasztása párbeszédpanel megnyitásához. A Biztonsági mentés adathordozótípus mezőben válasszon egyet a felsorolt eszköztípusok közül. Ha ki szeretne jelölni egy vagy több eszközt a Adathordozó biztonsági mentése mezőbe, kattintson a Hozzáadásgombra.

      Miután hozzáadta az eszközöket a Adathordozó biztonsági mentése listamezőhöz, kattintson az OK gombra az Általános lapra való visszatéréshez.

  6. A Válassza ki a tranzakciónapló biztonsági másolatait rács visszaállításához, válassza ki a visszaállítani kívánt biztonsági másolatokat. A táblázat a kiválasztott adatbázishoz elérhető tranzakciónapló-biztonsági másolatokat sorolja fel. A napló biztonsági mentése csak akkor érhető el, ha az első LSN nagyobb, mint az adatbázis utolsó LSN. A naplók biztonsági mentései az általuk tartalmazott naplóütemezési számok (LSN) sorrendjében vannak felsorolva, és ebben a sorrendben kell visszaállítani őket.

    Az alábbi táblázat felsorolja a rács oszlopfejléceit, és ismerteti azok értékeit.

    Fejléc Érték
    visszaállítás A kijelölt jelölőnégyzetek jelzik a visszaállítandó biztonsági mentési csoportokat.
    név A biztonsági mentési készlet neve.
    összetevő Biztonsági mentéssel rendelkező összetevő: Adatbázis, Fájlvagy üres hely <> (a tranzakciónaplók számára).
    Adatbázis A biztonsági mentési műveletben részt vevő adatbázis neve.
    kezdési dátum A biztonsági mentési művelet megkezdésének dátuma és időpontja az ügyfél területi beállításában jelenik meg.
    befejezési dátum A biztonsági mentési művelet befejezésének dátuma és időpontja az ügyfél területi beállításában jelenik meg.
    Első LSN A biztonsági mentési készlet első tranzakciójának naplóütemezési száma. Üres a fájlok biztonsági mentéséhez.
    legutóbbi LSN- A biztonsági mentési készlet utolsó tranzakciójának naplóütemezési száma. Üres a fájlok biztonsági mentéséhez.
    Ellenőrzőpont LSN A legutóbbi ellenőrzőpont naplóütemezési száma a biztonsági mentés létrehozásakor.
    teljes LSN A legutóbbi teljes adatbázis biztonsági mentésének naplóütemezési száma.
    Szerver A biztonsági mentési műveletet végrehajtó adatbázismotor-példány neve.
    felhasználónév A biztonsági mentési műveletet végrehajtó felhasználó neve.
    Méret A biztonsági mentési csoport mérete bájtban.
    pozíció A biztonsági mentési készlet helye a kötetben.
    Lejárat A biztonsági mentés készletének lejárati dátuma és időpontja.
  7. Válasszon az alábbiak közül:

    • időpont

      Tartsa meg az alapértelmezett (Legutóbbi lehetséges) beállítást, vagy jelöljön ki egy adott dátumot és időpontot a tallózás gombra kattintva, amely megnyitja a Időponthoz kötött visszaállítás párbeszédpanelt.

    • Megjelölt tranzakció

      Állítsa vissza az adatbázist egy korábban megjelölt tranzakcióra. Ha bejelöli ezt a beállítást, megjelenik a Kijelölt tranzakció kiválasztása párbeszédpanel, amely megjeleníti a kijelölt tranzakciónapló biztonsági mentéseiben elérhető megjelölt tranzakciókat tartalmazó rácsot.

      Alapértelmezés szerint a visszaállítás a megjelölt tranzakcióig tart, de azt nem tartalmazza. A megjelölt tranzakció visszaállításához válassza a Megjelölt tranzakció visszaállításalehetőséget.

      Az alábbi táblázat felsorolja a rács oszlopfejléceit, és ismerteti azok értékeit.

      Fejléc Érték
      <üres> A jelölés kiválasztásához jelölőnégyzetet jelenít meg.
      Tranzakciójelölés A felhasználó által a tranzakció véglegesítésekor megadott megjelölt tranzakció neve.
      Dátum A tranzakció véglegesítése dátuma és időpontja. A tranzakció dátuma és időpontja az msdbgmarkhistory táblában rögzített módon jelenik meg, nem pedig az ügyfélszámítógép dátumában és idejében.
      Leírás A felhasználó által a tranzakció véglegesítésekor megadott megjelölt tranzakció leírása (ha van ilyen).
      LSN- A megjelölt tranzakció naplóütemezési száma.
      Adatbázis Annak az adatbázisnak a neve, amelyben a megjelölt tranzakció véglegesítése megtörtént.
      felhasználónév Annak az adatbázis-felhasználónak a neve, aki a megjelölt tranzakciót véglegesítette.
  8. A speciális beállítások megtekintéséhez vagy kiválasztásához kattintson a Beállítások elemre a Lap kijelölése panelen.

  9. A Visszaállítási beállítások szakaszban a következő lehetőségek közül választhat:

    • A replikációs beállítások megőrzése (A REPLIKÁCIÓ MEGTARTÁSÁVAL)

      Megőrzi a replikációs beállításokat a közzétett adatbázisok azon kiszolgálótól eltérő kiszolgálóra való visszaállításakor, ahol az adatbázis létrejött.

      Ez a beállítás csak a Az adatbázis készenlétben hagyása a nem véglegesített tranzakciók visszagörgetésével lehetőség esetén érhető el (amely később kerül részletezésre), és ez egyenértékű a biztonsági másolat visszaállításával a RECOVERY beállítással.

      Ennek a beállításnak az ellenőrzése egyenértékű a Transact-SQLRESTORE utasítás KEEP_REPLICATION lehetőségével.

    • Kérés az egyes biztonsági mentési visszaállítása előtt

      Az egyes biztonsági mentési csoportok visszaállítása előtt (az első után) ez a beállítás megjelenik a Folytatás a Visszaállítás párbeszédpanelen, amely arra kéri, hogy jelezze, hogy folytatni szeretné-e a visszaállítási sorozatot. Ez a párbeszédpanel megjeleníti a következő médiakészlet nevét (ha van), a biztonsági mentési csoport nevét és a biztonsági mentési csoport leírását.

      Ez a lehetőség különösen akkor hasznos, ha szalagokat kell cserélnie különböző médiakészletekhez. Például használhatja, ha a kiszolgálónak csak egy szalagos eszköze van. Várjon, amíg készen áll a folytatásra, mielőtt OKgombra kattint.

      A Nem gombra kattintva az adatbázis helyreállítási állapotban marad. Az Ön kényelme érdekében folytathatja a visszaállítási sorozatot az utolsó befejezett visszaállítás után. Ha a következő biztonsági mentés egy adat- vagy különbözeti biztonsági mentés, használja ismét a Adatbázis visszaállítása feladatot. Ha a következő biztonsági mentés egy napló biztonsági mentése, használja a Tranzakciónapló visszaállítása feladatot.

    • A visszaállított adatbázishoz való hozzáférés korlátozása (WITH RESTRICTED_USER)

      A visszaállított adatbázist csak a db_owner, dbcreatorvagy sysadmintagjai számára teszi elérhetővé.

      Ennek a beállításnak az ellenőrzése szinonimája a Transact-SQLRESTORE utasítás RESTRICTED_USER lehetőségének használata.

  10. A Helyreállítási állapot beállításainál adja meg az adatbázis állapotát a visszaállítási művelet után.

    • Hagyja használatra készen az adatbázist a nem véglegesített tranzakciók visszaállításával. További tranzakciónaplók nem állíthatók vissza. (VISSZAÁLLÍTÁS HELYREÁLLÍTÁSSAL)

      Helyreállítja az adatbázist. Ez a beállítás egyenértékű a Transact-SQLRESTORE utasítás RECOVERY beállításával.

      Ezt a lehetőséget csak akkor válassza, ha nincs visszaállítani kívánt naplófájlja.

    • Hagyja az adatbázist nem működőként, és ne hozza vissza a nem véglegesített tranzakciókat. További tranzakciónaplók állíthatók vissza. (VISSZAÁLLÍTÁS A NORECOVERY HASZNÁLATÁVAL)

      Az adatbázis helyreállítatlan marad, VISSZAÁLLÍTÁS állapotban. Ez a beállítás egyenértékű a NORECOVERY kapcsolóval a Transact-SQLRESTORE utasításban.

      Ha ezt a beállítást választja, a Replikációs beállítások megőrzése beállítás nem érhető el.

      Fontos

      Tükrözött vagy másodlagos adatbázis esetén mindig válassza ezt a lehetőséget.

    • Hagyja az adatbázist írásvédett módban. Visszavonhatja a nem véglegesített tranzakciókat, de mentse a visszavonási műveleteket egy fájlba, hogy a helyreállítási effektusok visszafejthetők legyenek. (VISSZAÁLLÍTÁS KÉSZENLÉTI ÜZEMMÓDBAN)

      Az adatbázis készenléti állapotban marad. Ez a beállítás egyenértékű a STANDBY kapcsolóval a Transact-SQLRESTORE utasításban.

      Ha ezt a beállítást választja, meg kell adnia egy készenléti fájlt.

  11. Ha szeretné, adjon meg egy készenléti fájlnevet a Készenléti fájl szövegmezőben. Ez a beállítás akkor szükséges, ha írásvédett módban hagyja el az adatbázist. Keresse meg a készenléti fájlt, vagy írja be annak elérési útját a szövegmezőbe.

A Transact-SQL használata

Fontos

Javasoljuk, hogy a kétértelműség kiküszöbölése érdekében mindig explicit módon adja meg a NORECOVERY vagy a WITH RECOVERY utasítást minden VISSZAÁLLÍTÁSi utasításban. Ez különösen fontos szkriptek írásakor.

Tranzakciónapló biztonsági mentésének visszaállítása

  1. Hajtsa végre a RESTORE LOG utasítást a tranzakciónapló biztonsági mentésének alkalmazásához, a következőt megadva:

    • Annak az adatbázisnak a neve, amelyre a tranzakciónaplót alkalmazni fogja.

    • Az a biztonsági mentési eszköz, ahonnan a tranzakciónapló biztonsági mentése vissza lesz állítva.

    • A NORECOVERY záradék.

    Az utasítás alapszintaxisa a következő:

    NAPLÓ HELYREÁLLÍTÁSA adatbázis_név FROM <mentési_eszköz> NORECOVERY opcióval.

    Ahol database_name az adatbázis neve, <backup_device>pedig annak az eszköznek a neve, amely tartalmazza a visszaállított napló biztonsági mentését.

  2. Ismételje meg az 1. lépést minden egyes tranzakciónapló biztonsági mentéséhez, amelyeket alkalmaznia kell.

  3. Miután visszaállította az utolsó biztonsági mentést a visszaállítási sorrendben, az adatbázis helyreállításához használja az alábbi utasítások egyikét:

    • Az adatbázis helyreállítása az utolsó RESTORE LOG utasítás részeként:

      RESTORE LOG <database_name> FROM <backup_device> WITH RECOVERY;  
      GO  
      
    • Várja meg az adatbázis helyreállítását egy külön RESTORE DATABASE utasítással:

      RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY;   
      RESTORE DATABASE <database_name> WITH RECOVERY;  
      GO  
      

      Az adatbázis helyreállítására várva ellenőrizheti, hogy visszaállította-e az összes szükséges napló biztonsági mentését. Ez a módszer gyakran ajánlott időponthoz kötött visszaállítás végrehajtásakor.

    Fontos

    Ha tüköradatbázist hoz létre, hagyja ki a helyreállítási lépést. A tükrözött adatbázisnak VISSZAÁLLÍTÁS állapotban kell maradnia.

Példák (Transact-SQL)

Alapértelmezés szerint a AdventureWorks2025 adatbázis az egyszerű helyreállítási modellt használja. Az alábbi példák megkövetelik az adatbázis módosítását a teljes helyreállítási modell használatához az alábbiak szerint:

ALTER DATABASE AdventureWorks2022 SET RECOVERY FULL;  

A. Egyetlen tranzakciónapló biztonsági mentésének alkalmazása

Az alábbi példa a AdventureWorks2025 adatbázis visszaállításával kezdődik egy teljes adatbázis-biztonsági mentés használatával, amely egy AdventureWorks2022_1nevű biztonsági mentési eszközön található. A példa ezután alkalmazza az első tranzakciónapló biztonsági mentését, amely egy AdventureWorks2022_lognevű biztonsági mentési eszközön található. Végül a példa helyreállítja az adatbázist.

RESTORE DATABASE AdventureWorks2022  
   FROM AdventureWorks2022_1  
   WITH NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 1,  
   NORECOVERY;  
GO  
RESTORE DATABASE AdventureWorks2022  
   WITH RECOVERY;  
GO  

B. Több tranzakciónapló biztonsági mentésének alkalmazása

Az alábbi példa a AdventureWorks2025 adatbázis visszaállításával kezdődik egy teljes adatbázis-biztonsági mentés használatával, amely egy AdventureWorks2022_1nevű biztonsági mentési eszközön található. A példa ezután egyenként alkalmazza az első három tranzakciónapló biztonsági mentését, amelyek egy AdventureWorks2022_lognevű biztonsági mentési eszközön találhatók. Végül a példa helyreállítja az adatbázist.

RESTORE DATABASE AdventureWorks2022  
   FROM AdventureWorks2022_1  
   WITH NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 1,  
   NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 2,  
   NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 3,  
   NORECOVERY;  
GO  
RESTORE DATABASE AdventureWorks2022  
   WITH RECOVERY;  
GO  

Kapcsolódó tevékenységek

Lásd még:

VISSZAÁLLÍTÁS (Transact-SQL)
Tranzakciónapló biztonsági mentéseinek alkalmazása (SQL Server)