Dela via


Säkerhetskopiera transaktionsloggen när databasen är skadad (SQL Server)

gäller för:SQL Server

Det här avsnittet beskriver hur du säkerhetskopierar en transaktionslogg när databasen skadas i SQL Server med hjälp av SQL Server Management Studio eller Transact-SQL.

i det här avsnittet

Innan du börjar

Begränsningar och restriktioner

  • BACKUP-instruktionen tillåts inte i en explicit eller implicit transaktion.

Rekommendationer

  • För en databas som använder antingen den fullständiga eller massloggade återställningsmodellen måste du vanligtvis säkerhetskopiera loggens svans innan du börjar återställa databasen. Du bör också säkerhetskopiera loggens slut för den primära databasen innan du växlar över en konfiguration för loggöverföring. Genom att återställa säkerhetskopian av transaktionsloggen som den sista loggsäkerhetskopian innan databasen återställs, undviks dataförlust efter ett fel. Mer information om säkerhetskopieringar av slutloggar finns i Tail-Log Säkerhetskopior (SQL Server).

Säkerhet

Behörigheter

BEHÖRIGHETER FÖR SÄKERHETSKOPIERINGSDATABAS OCH SÄKERHETSKOPIERINGSLOGG är standard för medlemmar i sysadmin fast serverroll och db_owner och db_backupoperator fasta databasroller.

Ägarskaps- och behörighetsproblem på säkerhetskopieringsenhetens fysiska fil kan störa en säkerhetskopieringsåtgärd. SQL Server måste kunna läsa och skriva till enheten. kontot där SQL Server-tjänsten körs måste ha skrivbehörighet. Men sp_addumpdevice, som lägger till en post för en säkerhetskopieringsenhet i systemtabellerna, kontrollerar inte filåtkomstbehörigheter. Sådana problem på säkerhetskopieringsenhetens fysiska fil kanske inte visas förrän den fysiska resursen används när säkerhetskopieringen eller återställningen görs.

Använda SQL Server Management Studio

Säkerhetskopiera den sista delen av transaktionsloggen

  1. När du har anslutit till lämplig instans av Microsoft SQL Server Database Engine klickar du på servernamnet i Object Explorer för att expandera serverträdet.

  2. Expandera Databaseroch välj antingen en användardatabas eller expandera systemdatabaser och välj en systemdatabas, beroende på databasen.

  3. Högerklicka på databasen, peka på Uppgifteroch klicka sedan på Säkerhetskopiera. Dialogrutan Säkerhetskopiera databas visas.

  4. Kontrollera databasnamnet i listrutan Database. Du kan också välja en annan databas i listan.

  5. Kontrollera att återställningsmodellen antingen är FULL eller BULK_LOGGED.

  6. I listrutan Säkerhetskopieringstyp väljer du Transaktionslogg.

  7. Låt Endast kopieringskopiering avmarkerad.

  8. I säkerhetskopieringsuppsättningen område godkänner du antingen standardnamnet för säkerhetskopieringsuppsättningen som föreslås i textrutan Namn eller anger ett annat namn för säkerhetskopieringsuppsättningen.

  9. I textrutan Beskrivning anger du en beskrivning för säkerhetskopian av slutloggen.

  10. Ange när säkerhetskopieringsuppsättningen ska upphöra att gälla:

    • Om du vill att säkerhetskopieringsuppsättningen ska upphöra att gälla efter ett visst antal dagar klickar du på Efter (standardalternativet) och anger antalet dagar efter att uppsättningen har skapats som uppsättningen upphör att gälla. Det här värdet kan vara mellan 0 och 99999 dagar. värdet 0 dagar innebär att säkerhetskopieringsuppsättningen aldrig upphör att gälla.

      Standardvärdet anges i alternativet Standardlagring av säkerhetskopieringsmedia (i dagar) i dialogrutan Serveregenskaper (databasinställningar sidan). Om du vill komma åt den här dialogrutan högerklickar du på servernamnet i Object Explorer och väljer egenskaper. välj sedan sidan Databasinställningar.

    • Om du vill att säkerhetskopieringsuppsättningen ska upphöra att gälla ett visst datum klickar du på och anger det datum då uppsättningen upphör att gälla.

  11. Välj typ av säkerhetskopieringsmål genom att klicka på Disk eller Band. Om du vill välja sökvägar för upp till 64 diskar eller bandenheter som innehåller en enda medieuppsättning klickar du på Lägg till. De valda sökvägarna visas i listrutan Säkerhetskopiering till.

    Om du vill ta bort ett mål för säkerhetskopiering väljer du det och klickar på Ta bort. Om du vill visa innehållet i ett mål för säkerhetskopiering markerar du det och klickar på Innehåll.

  12. På sidan Alternativ väljer du alternativet Skriv över media genom att klicka på något av följande:

    • Säkerhetskopiera till den befintliga medieuppsättningen

      För det här alternativet klickar du antingen på Lägg till i den befintliga säkerhetskopieringsuppsättningen eller Skriva över alla befintliga säkerhetskopieringsuppsättningar.

      Du kan välja Kontrollera medieuppsättningens namn och säkerhetskopieringsuppsättningens förfallodatum för att få säkerhetskopieringsåtgärden att verifiera det datum och den tid då medieuppsättningen och säkerhetskopieringsuppsättningen upphör att gälla.

      Du kan också ange ett namn i textrutan Mediasetnamn. Om inget namn anges skapas en medieuppsättning med ett tomt namn. Om du anger ett mediauppsättningsnamn kontrolleras mediet (band eller disk) för att se om det faktiska namnet matchar det namn som du anger här.

      Om du lämnar medienamnet tomt och markerar kryssrutan för att kontrollera det mot mediet, kommer det att betraktas som lyckat om medienamnet på mediet också är tomt.

    • Säkerhetskopiera till en ny medieuppsättning och radera alla befintliga säkerhetskopior

      För det här alternativet anger du ett namn i textrutan Nytt medieuppsättningsnamn och kan också beskriva medieuppsättningen i Beskrivning av ny medieuppsättning textruta.

    Mer information om alternativ för medieuppsättningar finns i Media Sets, Media Families och Backup Sets (SQL Server).

  13. I avsnittet Reliability kontrollerar du om du vill:

    • Verifiera säkerhetskopieringen när den är klar.

    • Utför kontrollsumma innan du skriver till media.

    • Fortsätt vid kontrollsummafel

    Information om kontrollsummor, se Möjliga mediefel vid säkerhetskopiering och återställning (SQL Server).

  14. I avsnittet Transaktionslogg ska du kontrollera Säkerhetskopiera loggens svans och låta databasen vara i återställningstillståndet.

    Detta motsvarar att ange följande BACKUP--instruktion:

    BACKUP LOG <database_name> TO <backup_device> WITH NORECOVERY

    Viktig

    Under återställningen visar dialogrutan Återställ databas typen av en bakloggssäkerhetskopiering som Transaktionslogg (Endast kopia).

  15. Om du säkerhetskopierar till en bandenhet (enligt beskrivningen i avsnittet Mål på sidan Allmänt) är alternativet Ta bort bandet efter säkerhetskopiering aktivt. Om du klickar på det här alternativet aktiveras Spola tillbaka bandet innan du tar bort alternativet.

  16. SQL Server 2008 (10.0.x) Enterprise och senare stödjer säkerhetskopieringskomprimering . Som standard beror det på värdet av standardalternativet för säkerhetskopieringskomprimering i serverkonfigurationen om en säkerhetskopia komprimeras. Oavsett den aktuella standardinställningen på servernivå kan du dock komprimera en säkerhetskopia genom att kontrollera Komprimera säkerhetskopiering, och du kan förhindra komprimering genom att kontrollera Komprimera inte säkerhetskopieringen.

    Om du vill visa den aktuella standardkomprimeringsstandarden för säkerhetskopiering

Använda Transact-SQL

Skapa en säkerhetskopia av den aktiva transaktionsloggen

  1. Utför "BACKUP LOG"-instruktionen för att säkerhetskopiera den aktiva transaktionsloggen och specificera:

    • Namnet på databasen som transaktionsloggen som ska säkerhetskopieras tillhör.

    • Den säkerhetskopieringsenhet där säkerhetskopieringen av transaktionsloggen skrivs.

    • Villkoret NO_TRUNCATE.

      Med den här satsen kan den aktiva delen av transaktionsloggen säkerhetskopieras även om databasen är otillgänglig, förutsatt att transaktionsloggfilen är tillgänglig och oskadad.

Exempel (Transact-SQL)

Obs

I det här exemplet används AdventureWorks2022, som använder den enkla återställningsmodellen. För att tillåta loggsäkerhetskopior angavs databasen att använda den fullständiga återställningsmodellen innan en fullständig databassäkerhetskopia gjordes. Mer information finns i Visa eller ändra återställningsmodellen för en databas (SQL Server).

Det här exemplet säkerhetskopierar den aktiva transaktionsloggen när en databas är skadad och otillgänglig, om transaktionsloggen är oskadad och tillgänglig.

BACKUP LOG AdventureWorks2022  
   TO MyAdvWorks_FullRM_log1  
   WITH NO_TRUNCATE;  
GO  

Se även

Återställa en säkerhetskopiering av transaktionslogg (SQL Server)
Återställa en SQL Server-databas till en viss tidpunkt (Fullständig återställningsmodell)
säkerhetskopieringsdatabas (sidan Säkerhetskopieringsalternativ)
Säkerhetskopiera databas (allmän sida)
Tillämpa säkerhetskopieringar av transaktionsloggar (SQL Server)
BACKUP (Transact-SQL)
Filåterställningar (Enkel Återställningsmodell)
Filåterställningar (fullständigt återställningsläge)