Kommentar
Å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.
Ursprunglig produktversion: SQL Server
Ursprungligt KB-nummer: 224071
Sammanfattning
Den här artikeln hjälper dig att felsöka vanliga problem med säkerhetskopiering och återställning av SQL Server. Dessa problem omfattar långsam säkerhetskopiering eller återställningsprestanda, versionskompatibilitetsfel, Säkerhetskopieringsjobb för AlwaysOn-tillgänglighetsgrupp, mediefel, behörighetsfel, VDI- och VSS-säkerhetskopior från tredje part, fel med ändringsspårning och krypterade databasåterställningar. Artikeln innehåller också ett avsnitt med vanliga frågor och länkar till referensämnen för SQL Server säkerhetskopiering och återställning.
Säkerhetskopierings- och återställningsåtgärder tar lång tid
Säkerhetskopierings- och återställningsåtgärder är I/O-intensiva. Säkerhetskopiering och återställning av dataflöde beror på hur väl det underliggande I/O-undersystemet är optimerat för att hantera I/O-volymen. Om du misstänker att säkerhetskopieringsåtgärder stoppas eller tar för lång tid att slutföra använder du en eller flera av följande metoder för att uppskatta tiden till slutförande eller för att spåra förloppet för en säkerhetskopiering eller återställningsåtgärd:
SQL Server-felloggen innehåller information om tidigare säkerhetskopierings- och återställningsåtgärder. Du kan använda den här informationen för att uppskatta den tid som krävs för att säkerhetskopiera och återställa databasen i dess aktuella tillstånd. Följande är ett exempel på utdata från felloggen:
RESTORE DATABASE successfully processed 315 pages in 0.372 seconds (6.604 MB/sec)I SQL Server 2016 och senare versioner använder du XEvent backup_restore_progress_trace för att spåra förloppet för säkerhetskopierings- och återställningsåtgärder.
percent_completeAnvänd kolumnen i sys.dm_exec_requests för att spåra förloppet för säkerhetskopiering och återställning under flygning.Mät dataflödeshastigheten för säkerhetskopiering och återställning med hjälp av
Device throughput Bytes/secochBackup/Restore throughput/sec-prestandaövervakningsräknarna. Mer information finns i SQL Server, Säkerhetskopiera enhetsobjekt.Använd skriptet estimate_backup_restore för att få en uppskattning av säkerhetskopieringstiderna.
Se Hur det fungerar: Vad gör återställning/säkerhetskopiering?. Det här blogginlägget ger insikter om den aktuella fasen av säkerhetskopierings- eller återställningsåtgärder.
Undersök långsam prestanda vid säkerhetskopiering eller återställning
Kontrollera om du stöter på något av de kända problemen i följande tabell och överväg att tillämpa relevanta korrigeringar eller metodtips.
Kunskapsbaslänk Förklaring och rekommenderade åtgärder Säkerhetskopiera och återställa SQL Server-databaser Omfattar metodtips som kan förbättra prestanda för säkerhetskopiering och återställning. Ge till exempel SE_MANAGE_VOLUME_NAMEbehörighet till det Windows konto som kör SQL Server så att snabb filinitiering kan påskynda datafilåtgärder.Konfigurera antivirusprogram så att det fungerar med SQL Server Antivirusprogram kan innehålla lås på .bakfiler, vilket kan påverka prestanda för säkerhetskopierings- och återställningsåtgärder. Följ riktlinjerna i den här artikeln om du vill undanta säkerhetskopieringsfiler från virusgenomsökningar.En säkerhetskopierings- eller återställningsåtgärd till en nätverksplats är långsam Isolera problemet till nätverket genom att kopiera en fil med liknande storlek till nätverksplatsen från servern som kör SQL Server och kontrollera prestandan. Kontrollera SQL Server felloggen och Windows händelseloggen efter felmeddelanden som pekar på orsaken till problemet.
Om du använder program- eller databasunderhållsplaner från tredje part för att göra samtidiga säkerhetskopieringar bör du överväga att ändra scheman för att minimera konkurrensen på den enhet som säkerhetskopiorna skrivs till.
Kontakta Windows-administratören för att söka efter uppdateringar av inbyggd programvara för maskinvaran.
Fel vid återställning av säkerhetskopior till tidigare SQL Server versioner
Symptoms
Du kan inte återställa en SQL Server säkerhetskopia till en tidigare version av SQL Server än den version som skapade säkerhetskopian. Du kan till exempel inte återställa en säkerhetskopia som gjorts på en SQL Server 2022-instans till en SQL Server 2019-instans. Annars visas följande felmeddelande:
Fel 3169: Databasen säkerhetskopierades på en server som kör version %ls. Den versionen är inte kompatibel med den här servern, som kör versionen %ls. Antingen återställer du databasen på en server som stöder säkerhetskopieringen eller använder en säkerhetskopia som är kompatibel med den här servern.
Lösning
Använd följande metod för att kopiera en databas som finns på en senare version av SQL Server till en tidigare version av SQL Server.
Obs!
Följande procedur förutsätter att du har två SQL Server instanser med namnet SQL_A (högre version) och SQL_B (lägre version).
- Ladda ner och installera den senaste versionen av SQL Server Management Studio (SSMS) på både SQL_A och SQL_B.
- Följ dessa steg på SQL_A:
- Högerklicka på <DinaDatabasuppgifter>>>Generera skript och välj alternativet för att skripta hela databasen och alla databasobjekt.
- På skärmen Ange skriptalternativ väljer du Avancerat och väljer sedan versionen av SQL_B under Allmänt>skript för SQL Server-version. Välj sedan det spara-alternativ som passar dig bäst och fortsätt guiden.
- Använd verktyget masskopieringsprogram (bcp) för att kopiera data från olika tabeller.
- Följ dessa steg på SQL_B:
- Använd skripten som genereras på SQL_A-servern för att skapa databasschemat.
- Inaktivera eventuella begränsningar för främmande nycklar och utlösare på varje tabell. Om tabellen har identitetskolumner aktiverar du identitetsinfogning.
- Använd bcp för att importera data som du exporterade i föregående steg till motsvarande tabeller.
- När dataimporten har slutförts aktiverar du begränsningar för främmande nycklar och utlösare samt inaktiverar IDENTITY_INSERT för var och en av de tabeller som ändrades i steg c.
Den här proceduren fungerar vanligtvis bra för små till medelstora databaser. För större databaser kan problem med minnesbrist uppstå i SSMS och andra verktyg. Överväg att använda služba SSIS (SSIS), replikering eller andra alternativ för att kopiera en databas från en senare version till en tidigare version av SQL Server.
Mer information om hur du genererar skript för databasen finns i Skripta en databas med alternativet Generera skript.
Problem med säkerhetskopieringsjobb i AlwaysOn-tillgänglighetsgrupper
Symptoms
Du stöter på problem som påverkar säkerhetskopieringsjobb eller underhållsplaner i alwayson-tillgänglighetsgruppmiljöer.
Lösning
- Som standard är inställningen för automatisk säkerhetskopiering inställd på Prioritera sekundär. Den här inställningen anger att säkerhetskopieringar sker på en sekundär replik, såvida inte den primära repliken är den enda repliken online. Du kan inte göra differentiella säkerhetskopior av databasen med den här inställningen. Om du vill ändra den här inställningen använder du SSMS på din aktuella primära replik och går till sidan Inställningar för säkerhetskopiering under Egenskaper för din tillgänglighetsgrupp.
- Om du använder en underhållsplan eller schemalagda jobb för att generera säkerhetskopior av dina databaser skapar du jobben för varje tillgänglighetsdatabas på varje serverinstans som är värd för en tillgänglighetsreplik för tillgänglighetsgruppen.
Mer information om säkerhetskopior i en AlwaysOn-miljö finns i följande artiklar:
- Konfigurera säkerhetskopiering på sekundära repliker för en AlwaysOn-tillgänglighetsgrupp
- Flytta över säkerhetskopieringar som stöds till sekundära repliker i en tillgänglighetsgrupp
Mediefel när du återställer en databas från en säkerhetskopia
Symptoms
Felmeddelanden som anger ett filproblem pekar vanligtvis på en skadad säkerhetskopieringsfil. Följande fel är exempel på problem som kan uppstå om en säkerhetskopieringsuppsättning är skadad:
3241: Mediefamiljen på enheten %ls är felaktigt utformad. SQL Server kan inte bearbeta den här mediefamiljen.
3242: Filen på enheten %ls är inte en giltig säkerhetskopieringsuppsättning för Microsoft-bandformat.
3243: Mediefamiljen på enheten %ls skapades med Microsoft Tape Format-version %d.%d. SQL Server har stöd för version %d.%d.
Orsak
Dessa problem kan uppstå på grund av problem som påverkar den underliggande maskinvaran (hårddiskar, nätverkslagring och så vidare) eller på grund av ett virus eller skadlig kod. Granska händelseloggar och maskinvaruloggar för Windows System för rapporterade fel och vidta lämpliga åtgärder (till exempel uppgradera inbyggd programvara eller åtgärda nätverksproblem).
Lösning
- Använd instruktionen RESTORE HEADERONLY för att kontrollera din säkerhetskopia.
- Om du vill minska förekomsten av dessa återställningsfel aktiverar du alternativet Checksum för säkerhetskopiering när du kör en säkerhetskopia för att undvika att säkerhetskopiera en skadad databas. Mer information finns i Möjliga mediafel vid säkerhetskopiering och återställning (SQL Server).
- Du kan också aktivera spårningsflagga 3023 för att aktivera en kontrollsumma när du kör säkerhetskopior med hjälp av säkerhetskopieringsverktyg. Mer information finns i Serverkonfiguration: standard för kontrollsumma för säkerhetskopiering.
- Du kan åtgärda dessa problem genom att leta upp en annan användbar säkerhetskopieringsfil eller skapa en ny säkerhetskopieringsuppsättning. Microsoft erbjuder inga lösningar som kan hjälpa dig att hämta data från en skadad säkerhetskopieringsuppsättning.
- Om en säkerhetskopieringsfil återställs på en server men inte på en annan kan du prova olika sätt att kopiera filen mellan servrarna. Prova till exempel robocopy i stället för en vanlig kopieringsåtgärd. Undersök om filen ändras under kopieringsåtgärden i nätverket eller på mållagringsenheten.
Säkerhetskopieringar misslyckas på grund av behörighetsproblem
Symptoms
När du försöker köra säkerhetskopieringsåtgärder för databaser uppstår något av följande fel.
Scenario 1: När du kör en säkerhetskopia från SQL Server Management Studio misslyckas säkerhetskopieringen och returnerar följande felmeddelande:
Säkerhetskopieringen misslyckades för servern <servernamn>. (Microsoft.SqlServer.SmoExtended)
System.Data.SqlClient.SqlError: Det går inte att öppna säkerhetskopieringsenheten '<device name>'. Operativsystemfel 5(Åtkomst nekas.). (Microsoft.SqlServer.Smo)Scenario 2: Schemalagda säkerhetskopieringar misslyckas och genererar ett felmeddelande som loggas i jobbhistoriken för det misslyckade jobbet, och som liknar följande:
Executed as user: <Owner of the job>. ....2 for 64-bit Copyright (C) 2019 Microsoft. All rights reserved. Started: 5:49:14 PM Progress: 2021-08-16 17:49:15.47 Source: {GUID} Executing query "DECLARE @Guid UNIQUEIDENTIFIER EXECUTE msdb..sp...".: 100% complete End Progress Error: 2021-08-16 17:49:15.74 Code: 0xC002F210 Source: Back Up Database (Full) Execute SQL Task Description: Executing the query "EXECUTE master.dbo.xp_create_subdir N'C:\backups\D..." failed with the following error: "xp_create_subdir() returned error 5, 'Access is denied.'". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
Orsak
Båda scenariona kan inträffa om SQL Server tjänstkontot inte har läs- och skrivbehörighet till mappen som säkerhetskopior skrivs till. Säkerhetskopieringsuttryck kan köras antingen som en del av ett jobbsteg eller manuellt från SQL Server Management Studio. I båda fallen körs de i kontexten för startkontot för SQL Server-tjänsten. Så om tjänstkontot inte har de behörigheter som krävs får du de felmeddelanden som nämndes tidigare.
Lösning
Kontrollera de aktuella behörigheterna för SQL Server tjänstkontot i en mapp genom att gå till fliken Security i mappens egenskaper, välja Avancerad och sedan använda fliken Effective Access. Mer information finns i Backup-enheter.
Säkerhetskopierings- eller återställningsåtgärder från tredje part misslyckas
SQL Server tillhandahåller ett VDI (Virtual Backup Device Interface). Med det här API:et kan oberoende programvaruleverantörer integrera SQL Server i sina produkter för säkerhetskopiering och återställning. Dessa API:er är utformade för att ge tillförlitlighet och prestanda och för att stödja alla funktioner för SQL Server säkerhetskopiering och återställning, inklusive funktioner för ögonblicksbilder och frekvent säkerhetskopiering.
Vanliga felsökningssteg
I alla versioner av SQL Server som stöds skapas och etableras en inloggning med namnet
NT SERVICE\SQLWriterunder installationen. Kontrollera att inloggningen finns i SQL Server och ingår i sysadmin serverrollen på den instans som säkerhetskopieras. Kontrollera också att tjänsten SQL Server VSS Writer har startats och att startkontot är inställt på Local System.Kontrollera att
SqlServerWritervisas när du kör kommandotVSSADMIN LIST WRITERSi en upphöjd kommandotolk på servern som kör SQL Server. Skrivmodulen måste vara tillgänglig och i tillståndet Stable för att VSS-säkerhetskopieringar ska kunna slutföras korrekt.Mer information finns i loggarna från säkerhetskopieringsprogrammet och leverantörens supportwebbplats.
Symtom eller scenario Referens Förstå hur VDI-säkerhetskopiering fungerar How It Works: SQL Server – VSI(VSS) säkerhetskopieringsresurser Hur många databaser som kan säkerhetskopieras samtidigt Hur fungerar det: Hur många databaser kan säkerhetskopieras samtidigt?
Säkerhetskopieringar misslyckas när ändringsspårning är aktiverat
Symptoms
Säkerhetskopieringar kan misslyckas när du aktiverar ändringsspårning i databasen. Du kan se ett fel som liknar följande:
Fel: 3999, Allvarlighetsgrad: 17, Tillstånd: 1.
<Time Stamp> spid spid<>Det gick inte att tömma incheckningstabellen till disken i dbid 8 på grund av fel 2601. Mer information finns i felloggen.
Lösning
Om du stöter på det här problemet på en version av SQL Server som stöds installerar du den senaste kumulativa uppdateringen för din version. Bakgrundskorrigeringar och historiska korrigeringar finns i följande artiklar:
Fel vid återställning av säkerhetskopior av krypterade databaser
Symptoms
Du får problem när du återställer säkerhetskopior av databaser som skyddas av transparent datakryptering (TDE).
Lösning
Information om hur du åtgärdar problemet finns i Ta bort en TDE-skyddad databas till en annan SQL Server.
Vanliga frågor och svar om SQL Server säkerhetskopiering och återställning
Hur kan jag kontrollera statusen för en säkerhetskopieringsåtgärd?
Använd skriptet estimate_backup_restore för att uppskatta säkerhetskopieringstiderna.
Vad ska jag göra om SQL Server växlar över mitt under en säkerhetskopiering?
Starta om återställnings- eller säkerhetskopieringsåtgärden per Starta en avbruten återställningsåtgärd (Transact-SQL).
Kan jag återställa databassäkerhetskopior från äldre versioner på nyare versioner och vice versa?
Du kan inte återställa en SQL Server säkerhetskopia med hjälp av en version av SQL Server tidigare än den version som skapade säkerhetskopian. Mer information finns i Stöd för ÅTERSTÄLLNINGskompatibilitet.
Hur kontrollerar jag mina SQL Server databassäkerhetskopior?
Se procedurerna i RESTORE-instruktioner – VERIFYONLY (Transact-SQL).
Hur hämtar jag säkerhetskopieringshistoriken för databaser i SQL Server?
Se Hämta säkerhetskopieringshistoriken för databaser i SQL Server.
Kan jag återställa 32-bitars säkerhetskopior på 64-bitarsservrar och vice versa?
Ja. Lagringsformatet SQL Server på disk är detsamma i 64-bitars- och 32-bitarsmiljöer. Säkerhetskopierings- och återställningsåtgärder fungerar alltså i 64-bitars- och 32-bitarsmiljöer.
Hur säkerhetskopierar och återställer jag en databas som skyddas av transparent datakryptering (TDE)?
Säkerhetskopiera databasen, databaskrypteringsnyckelns servercertifikat och certifikatets privata nyckel. Återställ säkerhetskopieringen på en annan instans genom att först återställa servercertifikatet (med dess privata nyckel) till master databasen på målinstansen och sedan återställa säkerhetskopian av användardatabasen. Stegvisa anvisningar finns i Ta bort en TDE-skyddad databas till en annan SQL Server.
Fungerar säkerhetskopieringskomprimering på TDE-aktiverade databaser?
Ja. Från och med SQL Server 2016 fungerar säkerhetskopieringskomprimering på TDE-aktiverade databaser när du anger MAXTRANSFERSIZE större än 65536 (64 KB) i instruktionen BACKUP. Utan den inställningen körs säkerhetskopieringen okomprimerad även när du begär komprimering. Mer information finns i Komprimering av säkerhetskopiering.
Hur samverkar VDI- och VSS-säkerhetskopior med Always On-tillgänglighetsgruppens sekundära repliker?
VSS-baserade säkerhetskopior (ögonblicksbilder) som tas via SQL Writer-tjänsten stöds endast mot den primära repliken. På sekundära repliker begär du en fullständig säkerhetskopia med endast kopiering via VDI-klienten, eftersom fullständiga VSS-säkerhetskopior mot en sekundär inte stöds. Mer information finns i Aktiva sekundärfiler: Säkerhetskopiering på sekundära repliker (AlwaysOn-tillgänglighetsgrupper).
Allmänna tips om felsökning
- Bevilja Read och Write behörigheter till SQL Server tjänstkontot i mappen där du skriver säkerhetskopior. Mer information finns i Behörigheter för säkerhetskopiering.
- Kontrollera att mappen där du skriver säkerhetskopior har tillräckligt med utrymme för dina databassäkerhetskopior. Använd den
sp_spaceusedlagrade proceduren för att få en ungefärlig uppskattning av säkerhetskopieringsstorleken för en databas. - Använd den senaste versionen av SSMS för att undvika kända problem som rör konfiguration av jobb- och underhållsplaner.
- Kör en testomgång av dina jobb för att kontrollera att säkerhetskopior skapas som de ska. Lägg till logik för att kontrollera dina säkerhetskopior.
- Om du planerar att flytta systemdatabaser från en server till en annan läser du Flytta systemdatabaser.
- Om du ser tillfälliga säkerhetskopieringsfel kontrollerar du om den senaste uppdateringen för din SQL Server version åtgärdar problemet. Mer information finns i SQL Server versioner och uppdateringar.
- Information om hur du schemalägger och automatiserar säkerhetskopieringar för SQL Server Express-versioner finns i Schedule och automatisera säkerhetskopieringar av SQL Server databaser i SQL Server Express.
Referensavsnitt för SQL Server säkerhetskopiering och återställning
I följande tabell visas avsnitt att granska för specifika säkerhetskopierings- och återställningsuppgifter.
| Article | Beskrivning |
|---|---|
| Säkerhetskopiering (Transact-SQL) | Besvarar grundläggande frågor om säkerhetskopior och innehåller exempel på olika typer av säkerhetskopierings- och återställningsåtgärder. |
| Backup-enheter (SQL Server) | En referensguide för att förstå enheter för säkerhetskopiering, säkerhetskopiering till en nätverksresurs, Azure Blob Storage och relaterade uppgifter. |
| Recovery-modeller (SQL Server) | Beskriver de enkla, fullständiga och massloggade återställningsmodellerna i detalj och förklarar hur återställningsmodellen påverkar säkerhetskopior. |
| Återställning och återställning av systemdatabaser (SQL Server) | Omfattar strategier och överväganden när du arbetar med säkerhetskopierings- och återställningsåtgärder för systemdatabaser. |
| Översikt över säkerhetskopiering och återställning (SQL Server) | Beskriver hur återställningsmodellerna påverkar återställningsåtgärder. Läs den här artikeln om du har frågor om hur återställningsmodellen för en databas påverkar återställningsprocessen. |
| Hantera metadata när du gör en databas tillgänglig på en annan server | Att tänka på när du flyttar en databas eller stöter på problem som påverkar inloggningar, kryptering, replikering, behörigheter och så vidare. |
| säkerhetskopieringar av transaktionsloggar (SQL Server) | Beskriver begrepp om hur du säkerhetskopierar och återställer (tillämpar) transaktionsloggar i återställningsmodellerna Fullständig och Massloggad. Förklarar hur du utför rutinmässiga säkerhetskopieringar av transaktionsloggar för att återställa data. |
| SQL Server-hanterad säkerhetskopiering till Microsoft Azure | Introducerar hanterad säkerhetskopiering och relaterade procedurer. |