Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
I en fullständig databasåterställning är målet att återställa hela databasen. Hela databasen är offline under återställningens varaktighet. Innan någon del av databasen kan komma online återställs alla data till en konsekvent punkt där alla delar av databasen är vid samma tidpunkt och det inte finns några icke-obligatoriska transaktioner.
När du har återställt säkerhetskopieringen eller säkerhetskopiorna måste du återställa alla efterföljande säkerhetskopior av transaktionsloggen och sedan återställa databasen under den fullständiga återställningsmodellen. Du kan återställa en databas till en specifik återställningspunkt i någon av dessa loggsäkerhetskopior. Återställningspunkten kan vara ett specifikt datum och en viss tid, en markerad transaktion eller ett loggsekvensnummer (LSN).
När du återställer en databas, särskilt under den fullständiga återställningsmodellen eller den massloggade återställningsmodellen, bör du använda en enda återställningssekvens. En återställningssekvens består av en eller flera återställningsåtgärder som flyttar data genom en eller flera faser av återställningen.
Ej betrodda källor
Vi rekommenderar att du inte kopplar eller återställer databaser från okända eller ej betrodda källor. Dessa databaser kan innehålla skadlig kod som kan köra oavsiktlig Transact-SQL kod eller orsaka fel genom att ändra schemat eller den fysiska databasstrukturen. Innan du använder en databas från en okänd eller obetrodd källa kör du DBCC CHECKDB- på databasen på en icke-produktionsserver. Granska även den användarskrivna koden i databasen, till exempel lagrade procedurer eller annan användardefinierad kod.
Säkerhetskopior från tidigare versioner
Information om stöd för säkerhetskopieringar från tidigare versioner av SQL Server finns i avsnittet "Kompatibilitetssupport" i RESTORE (Transact-SQL).
Återställa en databas till felpunkten
Normalt innebär återställning av en databas till felpunkten följande grundläggande steg:
Säkerhetskopiera den aktiva transaktionsloggen (kallas loggens svans). Detta skapar en säkerhetskopia av slutloggen. Om den aktiva transaktionsloggen inte är tillgänglig går alla transaktioner i den delen av loggen förlorade.
Viktig
Under den massloggade återställningsmodellen kräver säkerhetskopiering av alla loggar som innehåller massloggade åtgärder åtkomst till alla datafiler i databasen. Om datafilerna inte kan nås kan inte transaktionsloggen säkerhetskopieras. I så fall måste du manuellt återställa alla ändringar som har gjorts sedan den senaste loggbackupen.
Mer information finns i Tail-Log Backups (SQL Server).
Återställ den senaste fullständiga databassäkerhetskopian utan att återställa databasen (RESTORE DATABASE database_name FROM backup_device WITH NORECOVERY).
Om det finns differentiella säkerhetskopior, återställ den senaste utan att återföra databasen (RESTORE DATABASE database_name FROM differential_backup_device WITH NORECOVERY).
Om du återställer den senaste differentiella säkerhetskopieringen minskar antalet loggsäkerhetskopior som måste återställas.
Från och med den första säkerhetskopieringen av transaktionsloggen som skapades efter säkerhetskopieringen som du nyss återställde återställer du loggarna i ordning med NORECOVERY.
Återställ databasen (RESTORE DATABASE database_name WITH RECOVERY). Du kan också kombinera det här steget med att återställa den senaste loggbackupen.
Följande bild visar den här återställningssekvensen. När ett fel inträffar (1) skapas en säkerhetskopia i slutloggen (2). Därefter återställs databasen till felpunkten. Detta innebär att återställa en databassäkerhetskopia, en efterföljande differentiell säkerhetskopia och varje loggsäkerhetskopia som görs efter den differentiella säkerhetskopian, inklusive säkerhetskopian av slutloggen.
Notera
När du återställer en databassäkerhetskopia till en annan serverinstans, se Kopiera databaser med säkerhetskopiering och återställning.
Grundläggande Transact-SQL RESTORE-syntax
Den grundläggande RESTORE-Transact-SQL syntaxen för återställningssekvensen i föregående bild är följande:
ÅTERSTÄLL DATABASEN databas FRÅN fullständig databas säkerhetskopia MED NORECOVERY;
ÅTERSTÄLL DATABAS databas FRÅN full_differential_backup MED NORECOVERY;
ÅTERSTÄLL LOGGEN databas FRÅN log_backup MED NORECOVERY.
Upprepa det här återställningsloggsteget för varje ytterligare logg säkerhetskopia.
ÅTERSTÄLL DATABAS DATABAS MED ÅTERHÄMTNING;
Exempel: Återställa till felpunkten (Transact-SQL)
Följande Transact-SQL exempel visar de viktigaste alternativen i en återställningssekvens som återställer databasen till felpunkten. I exemplet skapas en säkerhetskopia av slutloggen av databasen. Därefter återställer exemplet en fullständig databassäkerhetskopia och loggsäkerhetskopia, och sedan återställer den säkerhetskopian av sista loggen. Exemplet återställer databasen i ett separat, sista steg.
Obs.
I det här exemplet används en säkerhetskopia av databaser och loggsäkerhetskopior som skapas i avsnittet "Använda databassäkerhetskopior under den fullständiga återställningsmodellen" i Fullständiga databassäkerhetskopior (SQL Server). Innan databassäkerhetskopieringen var exempeldatabasen AdventureWorks2022
inställd på att använda det fullständiga återställningsläget.
USE master;
--Create tail-log backup.
BACKUP LOG AdventureWorks2022
TO DISK = 'Z:\SQLServerBackups\AdventureWorksFullRM.bak'
WITH NORECOVERY;
GO
--Restore the full database backup (from backup set 1).
RESTORE DATABASE AdventureWorks2022
FROM DISK = 'Z:\SQLServerBackups\AdventureWorksFullRM.bak'
WITH FILE=1,
NORECOVERY;
--Restore the regular log backup (from backup set 2).
RESTORE LOG AdventureWorks2022
FROM DISK = 'Z:\SQLServerBackups\AdventureWorksFullRM.bak'
WITH FILE=2,
NORECOVERY;
--Restore the tail-log backup (from backup set 3).
RESTORE LOG AdventureWorks2022
FROM DISK = 'Z:\SQLServerBackups\AdventureWorksFullRM.bak'
WITH FILE=3,
NORECOVERY;
GO
--recover the database:
RESTORE DATABASE AdventureWorks2022 WITH RECOVERY;
GO
Återställa en databas till en punkt i en loggsäkerhetskopia
Under den fullständiga återställningsmodellen kan en fullständig databasåterställning vanligtvis återställas till en tidpunkt, en markerad transaktion eller ett LSN i en loggsäkerhetskopia. Men under den massloggade återställningsmodellen, om loggsäkerhetskopian innehåller massloggade ändringar, är det inte möjligt att utföra återställning till en specifik tidpunkt.
Exempel på scenarier för återställning vid en viss tidpunkt
I följande exempel förutsätts ett verksamhetskritiskt databassystem där en fullständig databassäkerhetskopia skapas varje dag vid midnatt, en differentiell databassäkerhetskopia skapas varje timme, måndag till lördag och säkerhetskopieringar av transaktionsloggar skapas var 10:e minut under dagen. Om du vill återställa databasen till tillståndet var i klockan 05:19 på onsdagen gör du följande:
Återställ den fullständiga databassäkerhetskopian som skapades vid midnatt mellan måndag och tisdag.
Återställ den differentiella databassäkerhetskopian som skapades klockan 05:00 på onsdagen.
Använd säkerhetskopieringen av transaktionsloggen som skapades klockan 05:10 på onsdagen.
Använd säkerhetskopieringen av transaktionsloggen som skapades 05:20 på onsdagen och ange att återställningsprocessen endast gäller för transaktioner som inträffade före 05:19.
Om databasen måste återställas till sitt tillstånd kl. 03:04 på torsdagen, men den differentiella databassäkerhetskopian som skapades kl. 03:00 på torsdagen inte är tillgänglig, gör följande:
Återställ den databassäkerhetskopia som skapades onsdag vid midnatt.
Återställ den differentiella databassäkerhetskopian som skapades klockan 02.00 på torsdagen.
Tillämpa alla säkerhetskopior av transaktionsloggar som skapats från 02:10 till 03:00 på torsdag.
Tillämpa säkerhetskopieringen av transaktionsloggen som skapades klockan 03:10 på torsdagen och stoppa återställningsprocessen klockan 03:04.
Not
Ett exempel på hur man återställer en SQL Server-databas till en viss tidpunkt finns i Återställa en SQL Server-databas till en viss tidpunkt (Fullständig återställningsmodell).
Relaterade uppgifter
Så här återställer du en fullständig databassäkerhetskopia
Återställa en differentiell databassäkerhetskopia
Så här återställer du en säkerhetskopia av transaktionsloggen
Återställa en säkerhetskopia med hjälp av SQL Server Management Objects (SMO)
Återställa en databas till en punkt i en loggsäkerhetskopia
Återställa en SQL Server-databas till en specifik tidpunkt (fullständig återställningsmodell)
återställning av relaterade databaser som innehåller markerad transaktion
Se även
RESTORE (Transact-SQL)
SÄKERHETSKOPIA (Transact-SQL)
Tillämpa säkerhetskopieringar av transaktionsloggar (SQL Server)
sp_addumpdevice (Transact-SQL)
fullständiga databassäkerhetskopior (SQL Server)
differentiella säkerhetskopieringar (SQL Server)
översikt över säkerhetskopiering (SQL Server)
Översikt över återställning och återhämtning (SQL Server)