Adatbázis visszaállítása hibapontra – Teljes helyreállítás

A következőkre vonatkozik:SQL Server

Ez a témakör bemutatja, hogyan állítható vissza a hibapontra. A témakör csak a teljes vagy tömegesen naplózott helyreállítási modelleket használó adatbázisok esetében releváns.

Helyreállítás a hiba bekövetkezési pontjára

  1. A napló végének biztonsági mentéséhez futtassa a következő egyszerű BACKUP utasítást:

    BACKUP LOG <database_name> TO <backup_device>   
       WITH NORECOVERY, NO_TRUNCATE;  
    
  2. A teljes adatbázis biztonsági mentésének visszaállítása az alábbi alaputasítás RESTORE DATABASE futtatásával:

    RESTORE DATABASE <database_name> FROM <backup_device>   
       WITH NORECOVERY;  
    
  3. Ha szeretné, állítsa vissza a különbségi adatbázis biztonsági mentését az alábbi alaputasítás RESTOREDATABASE futtatásával:

    RESTORE DATABASE <database_name> FROM <backup_device>   
       WITH NORECOVERY;  
    
  4. Alkalmazza az összes tranzakciónaplót, beleértve az 1. lépésben létrehozott naplóvég biztonsági mentését is, a RESTORE LOG utasításban a WITH NORECOVERY megadásával:

    RESTORE LOG <database_name> FROM <backup_device>   
       WITH NORECOVERY;  
    
  5. Az adatbázis helyreállítása az alábbi RESTOREDATABASE utasítás futtatásával:

    RESTORE DATABASE <database_name>   
       WITH RECOVERY;  
    

Példa

A példa futtatása előtt el kell végeznie a következő előkészületeket:

  1. A AdventureWorks2025 adatbázis alapértelmezett helyreállítási modellje az egyszerű helyreállítási modell. Mivel ez a helyreállítási modell nem támogatja a hibapontra való visszaállítást, állítsa be AdventureWorks2025 a teljes helyreállítási modellt a következő ALTER DATABASE utasítás futtatásával:

    USE master;  
    GO  
    ALTER DATABASE AdventureWorks2022 SET RECOVERY FULL;  
    
  2. Hozzon létre egy teljes adatbázist az adatbázisból az alábbi BACKUP utasítással:

    BACKUP DATABASE AdventureWorks2022 TO DISK = 'C:\AdventureWorks2022_Data.bck';  
    
  3. Rutinnapló biztonsági mentésének létrehozása:

    BACKUP LOG AdventureWorks2022 TO DISK = 'C:\AdventureWorks2022_Log.bck';  
    

Az alábbi példa visszaállítja a korábban létrehozott biztonsági másolatokat a AdventureWorks2025 adatbázis tail-log biztonsági mentésének létrehozása után. (Ez a lépés feltételezi, hogy a naplólemez elérhető.)

Először a példa létrehoz egy vég-napló mentést az adatbázisról, amely rögzíti az aktív naplót, és Helyreállítási állapotban hagyja az adatbázist. Ezután a példa visszaállítja az adatbázis biztonsági mentését, alkalmazza a korábban létrehozott rutinnapló-biztonsági mentést, és alkalmazza a tail-log biztonsági mentést. Végül a példa egy külön lépésben helyreállítja az adatbázist.

Jegyzet

Az alapértelmezett viselkedés az adatbázis helyreállítása a végső biztonsági mentést visszaállító utasítás részeként.

/* Example of restoring a to the point of failure */  
-- Step 1: Create a tail-log backup by using WITH NORECOVERY.  
BACKUP LOG AdventureWorks2022  
   TO DISK = 'C:\AdventureWorks2022_Log.bck'  
   WITH NORECOVERY;  
GO  
-- Step 2: Restore the full database backup.  
RESTORE DATABASE AdventureWorks2022  
   FROM DISK = 'C:\AdventureWorks2022_Data.bck'  
   WITH NORECOVERY;  
GO  
-- Step 3: Restore the first transaction log backup.  
RESTORE LOG AdventureWorks2022  
   FROM DISK = 'C:\AdventureWorks2022_Log.bck'  
   WITH NORECOVERY;  
GO  
-- Step 4: Restore the tail-log backup.  
RESTORE LOG AdventureWorks2022  
   FROM  DISK = 'C:\AdventureWorks2022_Log.bck'  
   WITH NORECOVERY;  
GO  
-- Step 5: Recover the database.  
RESTORE DATABASE AdventureWorks2022  
   WITH RECOVERY;  
GO  

Lásd még:

BACKUP (Transact-SQL)
RESTORE (Transact-SQL)