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
Det här avsnittet beskriver hur du återställer en säkerhetskopia av transaktionsloggar i SQL Server med hjälp av SQL Server Management Studio eller Transact-SQL.
i det här avsnittet
Innan du börjar:
Så här återställer du en säkerhetskopia av transaktionsloggen med hjälp av:
Innan du börjar
Förutsättningar
Säkerhetskopior måste återställas i den ordning de skapades. Innan du kan återställa en viss säkerhetskopia av transaktionsloggen måste du först återställa följande tidigare säkerhetskopior utan att återställa ogenomförda transaktioner, dvs. MED NORECOVERY:
Den fullständiga databassäkerhetskopian och den senaste differentiella säkerhetskopian, om någon, som gjordes före den specifika säkerhetskopieringen av transaktionsloggen. Innan den senaste fullständiga eller differentiella databassäkerhetskopian skapades måste databasen ha använt den fullständiga återställningsmodellen eller den massloggade återställningsmodellen.
Alla säkerhetskopior av transaktionsloggar som görs efter den fullständiga databassäkerhetskopian eller differentiell säkerhetskopiering (om du återställer en) och före den specifika säkerhetskopieringen av transaktionsloggen. Loggsäkerhetskopior måste tillämpas i sekvensen där de skapades, utan några luckor i loggkedjan.
Mer information om säkerhetskopieringar av transaktionsloggar finns i Säkerhetskopieringar av transaktionsloggar (SQL Server) och Använd säkerhetskopiering av transaktionsloggar (SQL Server).
Säkerhet
Behörigheter
ÅTERSTÄLLNINGsbehörigheter ges till roller där medlemskapsinformation alltid är lättillgänglig för servern. Eftersom fast databasrollmedlemskap endast kan kontrolleras när databasen är tillgänglig och oskadad, vilket inte alltid är fallet när RESTORE körs, har medlemmar i db_owner fast databasroll inte RESTORE-behörighet.
Använda SQL Server Management Studio
Varning
Den normala processen för en återställning är att välja loggsäkerhetskopior i dialogrutan Återställ databas tillsammans med data och differentiella säkerhetskopior.
Så här återställer du en säkerhetskopia av transaktionsloggen
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.
Expandera Databaseroch välj antingen en användardatabas eller expandera systemdatabaser och välj en systemdatabas, beroende på databasen.
Högerklicka på databasen, peka på Uppgifter, peka på Återställ, och klicka sedan på Transaktionslogg, vilket öppnar dialogrutan Återställ transaktionslogg.
Not
Om Transaktionsloggen är gråmarkerad kan du behöva återställa en fullständig eller differentiell säkerhetskopia först. Använd dialogrutan Database backup.
På sidan Allmänt går du till listrutan Database och väljer namnet på en databas. Endast databaser i återställningstillstånd visas.
Om du vill ange källan och platsen för de säkerhetskopieringsuppsättningar som ska återställas klickar du på något av följande alternativ:
Från tidigare säkerhetskopior av databas
Välj den databas som ska återställas från listrutan. Listan innehåller endast databaser som har säkerhetskopierats enligt msdb säkerhetskopieringshistorik.
Från fil eller band
Klicka på knappen bläddra (...) för att öppna dialogrutan Välj säkerhetskopieringsenheter. I rutan Säkerhetskopieringsmediatyp väljer du någon av de angivna enhetstyperna. Om du vill välja en eller flera enheter för rutan Säkerhetskopieringsmedia klickar du på Lägg till.
När du har lagt till de enheter som du vill använda i listrutan Säkerhetskopieringsmedia klickar du på OK för att återgå till sidan Allmänt.
I Välj säkerhetskopieringar av transaktionsloggen för att återställa rutnät väljer du de säkerhetskopior som ska återställas. Det här rutnätet visar de säkerhetskopior av transaktionsloggen som är tillgängliga för den valda databasen. En loggsäkerhetskopia är endast tillgänglig om dess First LSN större än databasens senaste LSN-. Loggsäkerhetskopior visas i ordningen för de loggsekvensnummer (LSN) som de innehåller, och de måste återställas i den här ordningen.
I följande tabell visas kolumnrubrikerna i rutnätet och deras värden beskrivs.
Rubrik Värde Återställ Markerade kryssrutor anger vilka säkerhetskopieringsuppsättningar som ska återställas. Namn Namnet på säkerhetskopieringsuppsättningen. Komponent Säkerhetskopierad komponent: Database, Fileeller <tom> (för transaktionsloggar). Databas Namnet på databasen som ingår i säkerhetskopieringsåtgärden. startdatum Datum och tid när säkerhetskopieringen påbörjades, som visas i den regionala inställningen för klienten. Avslutsdatum Datum och tid när säkerhetskopieringen har slutförts, vilket visas i den regionala inställningen för klienten. första LSN- Loggsekvensnummer för den första transaktionen i säkerhetskopieringsuppsättningen. Tomt utrymme för filsäkerhetskopior. senaste LSN- Loggsekvensnummer för den senaste transaktionen i säkerhetskopieringsuppsättningen. Tomt för filsäkerhetskopior. Kontrollpunkt LSN Loggsekvensnummer för den senaste kontrollpunkten när säkerhetskopieringen skapades. fullständiga LSN- Loggsekvensnummer för den senaste fullständiga databassäkerhetskopian. Server Namnet på databasmotorinstansen som utförde säkerhetskopieringsåtgärden. användarnamn Namnet på den användare som utförde säkerhetskopieringen. Storlek Storleken på säkerhetskopieringen i byte. position Position för den säkerhetskopiering som angetts i volymen. förfallodatum Datum och tid då säkerhetskopieringsuppsättningen upphör att gälla. Välj något av följande:
tidpunkt
Behåll antingen standardvärdet (Senaste möjliga) eller välj ett visst datum och en viss tid genom att klicka på bläddringsknappen, som öppnar dialogrutan Punkten i Tid Återställning.
Markerad transaktion
Återställ databasen till en tidigare markerad transaktion. Om du väljer det här alternativet startas dialogrutan Välj markerad transaktion, som visar ett rutnät som visar de markerade transaktionerna som är tillgängliga i de valda säkerhetskopiorna i transaktionsloggen.
Som standardinställning är återställningen upp till, men exklusive, den markerade transaktionen. Om du vill återställa den markerade transaktionen väljer du också Inkludera markerad transaktion.
I följande tabell visas kolumnrubrikerna i rutnätet och deras värden beskrivs.
Rubrik Värde <tom> Visar en kryssruta för att markera märket. transaktionsmärke Namnet på den markerade transaktionen som angavs av användaren när transaktionen begicks. Datum Datum och tid för transaktionen när den genomfördes. Transaktionsdatum och tid visas enligt msdbgmarkhistory tabell, inte i klientdatorns datum och tid. Beskrivning Beskrivning av markerad transaktion som angavs av användaren när transaktionen bekräftades (om någon). LSN Loggsekvensnummer för den markerade transaktionen. Databas Namnet på databasen där den markerade transaktionen bekräftades. användarnamn Namnet på databasanvändaren som genomförde den markerade transaktionen.
Om du vill visa eller välja avancerade alternativ klickar du på Alternativ i fönstret Välj en sida.
I avsnittet Återställningsalternativ är alternativen:
Bevara replikeringsinställningarna (WITH KEEP_REPLICATION)
Bevarar replikeringsinställningarna när du återställer en publicerad databas till en annan server än den server där databasen skapades.
Det här alternativet är endast tillgängligt med Lämna databasen redo för användning genom att återställa de ogenomförda transaktionerna... alternativet (beskrivs senare), vilket motsvarar att återställa en säkerhetskopia med alternativet RECOVERY.
Att kontrollera det här alternativet motsvarar att använda alternativet KEEP_REPLICATION i en Transact-SQLRESTORE--instruktion.
Fråga innan du återställer varje säkerhetskopia
Innan du återställer varje säkerhetskopieringsuppsättning (efter den första) visas dialogrutan Fortsätt med återställning, där du uppmanas att ange om du vill fortsätta återställningssekvensen. I den här dialogrutan visas namnet på nästa medieuppsättning (om tillgängligt), namnet på säkerhetskopieringsuppsättningen och beskrivningen av säkerhetskopieringsuppsättningen.
Det här alternativet är särskilt användbart när du måste byta band för olika medieuppsättningar. Du kan till exempel använda den när servern bara har en bandenhet. Vänta tills du är redo att fortsätta innan du klickar på OK.
Om du klickar på Nej lämnas databasen i återställningsläget. När det är praktiskt kan du fortsätta återställningssekvensen efter den senaste återställningen som slutfördes. Om nästa säkerhetskopiering är en data- eller differentiell säkerhetskopia använder du uppgiften Återställ databas igen. Om nästa säkerhetskopia är en loggsäkerhetskopia använder du uppgiften Återställ transaktionsloggen.
Begränsa åtkomsten till den återställde databasen (WITH RESTRICTED_USER)
Gör den återställda databasen endast tillgänglig för medlemmar i db_owner, dbcreatoreller sysadmin.
Att kontrollera det här alternativet är synonymt med att använda alternativet RESTRICTED_USER i en Transact-SQL-RESTORE--instruktion.
För Återställningstillstånd alternativ anger du databasens tillstånd efter återställningsåtgärden.
Låt databasen vara redo för användning genom att återställa ogenomförda transaktioner. Det går inte att återställa ytterligare transaktionsloggar. (ÅTERSTÄLL MED ÅTERHÄMTNING)
Återställer databasen. Det här alternativet motsvarar alternativet RECOVERY i en Transact-SQL-RESTORE--instruktion.
Välj endast det här alternativet om du inte har några loggfiler som du vill återställa.
Lämna databasen inte i drift och återställ inte ogenomförda transaktioner. Ytterligare transaktionsloggar kan återställas. (ÅTERSTÄLL MED NORECOVERY)
Lämnar databasen oåterställd i tillståndet ÅTERSTÄLLA. Det här alternativet motsvarar att använda alternativet NORECOVERY i en Transact-SQL-RESTORE--instruktion.
När du väljer det här alternativet är alternativet Bevara replikeringsinställningar inte tillgängligt.
Viktig
Välj alltid det här alternativet för en spegling eller sekundär databas.
Lämna databasen i skrivskyddat läge. Ångra ogenomförda transaktioner, men spara ångra-åtgärderna i en fil så att återställningseffekter kan ångras. (ÅTERSTÄLL MED STANDBY)
Lämnar databasen i vänteläge. Det här alternativet motsvarar att använda alternativet STANDBY i en Transact-SQL-RESTORE--instruktion.
Om du väljer det här alternativet måste du ange en väntelägesfil.
Du kan också ange ett namn på väntelägesfilen i textrutan väntelägesfil. Det här alternativet krävs om du lämnar databasen i skrivskyddat läge. Du kan bläddra efter väntelägesfilen eller skriva dess sökvägsnamn i textrutan.
Använda Transact-SQL
Viktig
Vi rekommenderar att du alltid uttryckligen anger antingen WITH NORECOVERY eller WITH RECOVERY i varje RESTORE-instruktion för att eliminera tvetydighet. Detta är särskilt viktigt när du skriver skript.
Så här återställer du en säkerhetskopia av transaktionsloggen
Kör instruktionen RESTORE LOG för att tillämpa säkerhetskopieringen av transaktionsloggen och ange:
Namnet på databasen som transaktionsloggen ska tillämpas på.
Den säkerhetskopieringsenhet där säkerhetskopieringen av transaktionsloggen återställs från.
NORECOVERY-satsen.
Den grundläggande syntaxen för den här instruktionen är följande:
ÅTERSTÄLL LOGGEN database_name FRÅN <backup_device> MED NORECOVERY.
Där database_name är namnet på databasen och <backup_device>är namnet på den enhet som innehåller loggsäkerhetskopian som återställs.
Upprepa steg 1 för varje säkerhetskopiering av transaktionsloggen som du måste tillämpa.
När du har återställt den senaste säkerhetskopian i återställningssekvensen använder du någon av följande instruktioner för att återställa databasen:
Återställ databasen som en del av den senaste RESTORE LOG-instruktionen.
RESTORE LOG <database_name> FROM <backup_device> WITH RECOVERY; GOVänta med att återställa databasen med hjälp av en separat RESTORE DATABASE-instruktion:
RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY; RESTORE DATABASE <database_name> WITH RECOVERY; GOOm du väntar på att återställa databasen kan du kontrollera att du har återställt alla nödvändiga loggsäkerhetskopior. Den här metoden rekommenderas ofta när du utför en återställning vid en specifik tidpunkt.
Viktig
Om du skapar en speglingsdatabas utelämnar du återställningssteget. En speglingsdatabas måste förbli i återställningstillståndet.
Exempel (Transact-SQL)
Som standard använder AdventureWorks2022-databasen den enkla återställningsmodellen. Följande exempel kräver att databasen ändras så att den använder den fullständiga återställningsmodellen enligt följande:
ALTER DATABASE AdventureWorks2022 SET RECOVERY FULL;
A. Tillämpa en säkerhetskopiering av en enda transaktionslogg
Följande exempel börjar med att återställa AdventureWorks2022-databasen med hjälp av en fullständig databassäkerhetskopia som finns på en säkerhetskopieringsenhet med namnet AdventureWorks2022_1. Exemplet använder sedan den första säkerhetskopieringen av transaktionsloggen som finns på en säkerhetskopieringsenhet med namnet AdventureWorks2022_log. Slutligen återställer exemplet databasen.
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. Tillämpa flera säkerhetskopior av transaktionsloggar
Följande exempel börjar med att återställa AdventureWorks2022-databasen med hjälp av en fullständig databassäkerhetskopia som finns på en säkerhetskopieringsenhet med namnet AdventureWorks2022_1. Exemplet gäller sedan, en i taget, de tre första säkerhetskopieringarna av transaktionsloggen som finns på en säkerhetskopieringsenhet med namnet AdventureWorks2022_log. Slutligen återställer exemplet databasen.
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
Relaterade uppgifter
Återställa en databas till felpunkten under den fullständiga återställningsmodellen (Transact-SQL)
Återställa en SQL Server-databas till en viss tidpunkt (fullständig återhämtningsmodell)
Återställa en databas till en markerad transaktion (SQL Server Management Studio)
Se även
RESTORE (Transact-SQL)
Tillämpa säkerhetskopieringar av transaktionsloggar (SQL Server)