Problemen met back-up- en herstelbewerkingen van SQL Server oplossen
Dit artikel bevat oplossingen voor veelvoorkomende problemen die u mogelijk ondervindt tijdens back-up- en herstelbewerkingen van Microsoft SQL Server en bevat verwijzingen naar meer informatie over deze bewerkingen.
Oorspronkelijke productversie: SQL Server
Oorspronkelijk KB-nummer: 224071
Back-up- en herstelbewerkingen duren lang
Back-up- en herstelbewerkingen zijn I/O-intensief. De doorvoer voor back-up/herstel is afhankelijk van hoe goed het onderliggende I/O-subsysteem is geoptimaliseerd voor het verwerken van het I/O-volume. Als u vermoedt dat de back-upbewerkingen zijn gestopt of te lang duren, kunt u een of meer van de volgende methoden gebruiken om de tijd voor voltooiing te schatten of om de voortgang van een back-up- of herstelbewerking bij te houden:
Het SQL Server-foutenlogboek bevat informatie over eerdere back-up- en herstelbewerkingen. U kunt deze gegevens gebruiken om een schatting te maken van de tijd die nodig is om een back-up van de database te maken en te herstellen in de huidige status. Hier volgt een voorbeelduitvoer uit het foutenlogboek:
RESTORE DATABASE successfully processed 315 pages in 0.372 seconds (6.604 MB/sec)
In SQL Server 2016 en latere versies kunt u XEvent backup_restore_progress_trace gebruiken om de voortgang van back-up- en herstelbewerkingen bij te houden.
U kunt de
percent_complete
kolom van sys.dm_exec_requests gebruiken om de voortgang van back-up- en herstelbewerkingen tijdens de vlucht bij te houden.U kunt gegevens over back-up- en hersteldoorvoer meten met behulp van de
Device throughput Bytes/sec
prestatiemeteritems.Backup/Restore throughput/sec
Zie SQL Server, Backup Device Object voor meer informatie.Gebruik het estimate_backup_restore-script om een schatting te maken van de back-uptijden.
Raadpleeg hoe het werkt: Wat is herstellen/back-up doen? Dit blogbericht biedt inzicht in de huidige fase van back-up- of herstelbewerkingen.
Zaken om te controleren
Controleer of u een van de bekende problemen ondervindt die worden vermeld in de volgende tabel. Overweeg of u de wijzigingen moet implementeren of de oplossingen en aanbevolen procedures moet toepassen die in de bijbehorende artikelen worden besproken.
Koppeling knowledge base of boeken online Uitleg en aanbevolen acties Back-up- en herstelprestaties optimaliseren in SQL Server Het onderwerp Books Online bevat verschillende aanbevolen procedures die u kunt gebruiken om de prestaties van back-up-/herstelbewerkingen te verbeteren. U kunt bijvoorbeeld de SE_MANAGE_VOLUME_NAME
speciale bevoegdheid toewijzen aan het Windows-account waarop SQL Server wordt uitgevoerd om direct initialisatie van gegevensbestanden mogelijk te maken. Dit kan aanzienlijke prestatieverbeteringen opleveren.2920151 Aanbevolen hotfixes en updates voor failoverclusters op basis van Windows Server 2012 R2
2822241 updatepakket voor Windows 8 en Windows Server 2012: april 2013Huidige systeempakketten kunnen oplossingen bevatten voor bekende problemen op systeemniveau die de prestaties van programma's zoals SQL Server kunnen verminderen. Het installeren van deze updates kan helpen dergelijke problemen te voorkomen. 2878182 FIX: gebruikersmodusprocessen in een toepassing reageren niet op servers met Windows Server 2012 Back-upbewerkingen zijn I/O-intensief en kunnen worden beïnvloed door deze fout. Pas deze oplossing toe om deze problemen te voorkomen. Antivirussoftware configureren voor gebruik met SQL Server Antivirussoftware kan vergrendelingen bevatten voor .bak bestanden. Dit kan van invloed zijn op de prestaties van back-up- en herstelbewerkingen. Volg de richtlijnen in dit artikel om back-upbestanden van virusscans uit te sluiten. 2820470 foutbericht vertraagd wanneer u probeert toegang te krijgen tot een gedeelde map die niet meer bestaat in Windows Hiermee wordt een probleem besproken dat optreedt wanneer u probeert toegang te krijgen tot een gedeelde map die niet meer bestaat in Windows 2012 en nieuwere versies. 967351 Een sterk gefragmenteerd bestand in een NTFS-volume kan niet groter worden dan een bepaalde grootte Hiermee wordt een probleem besproken dat optreedt wanneer een NTFS-bestandssysteem zwaar is gefragmenteerd. 304101 Back-upprogramma mislukt wanneer u een back-up maakt van een groot systeemvolume 2455009 FIX: trage prestaties wanneer u een database herstelt als er veel VLF's in het transactielogboek in SQL Server 2005, in SQL Server 2008 of in SQL Server 2008 R2 staan De aanwezigheid van veel virtuele logboekbestanden kan van invloed zijn op de vereiste tijd om een database te herstellen. Dit geldt met name tijdens de herstelfase van de herstelbewerking. Zie Databasebewerkingen lang duren voor informatie over andere mogelijke problemen die kunnen worden veroorzaakt door de aanwezigheid van veel VLF's , of ze activeren fouten wanneer het transactielogboek talloze virtuele logboekbestanden bevat. Een back-up- of herstelbewerking naar een netwerklocatie is traag Isoleer het probleem naar het netwerk door een bestand met een vergelijkbare grootte te kopiëren naar de netwerklocatie vanaf de server waarop SQL Server wordt uitgevoerd. Controleer de prestaties. Controleer op foutberichten in het SQL Server-foutenlogboek en windows-gebeurtenislogboek voor meer aanwijzingen over de oorzaak van het probleem.
Als u software of databaseonderhoudsplannen van derden gebruikt om gelijktijdige back-ups te maken, kunt u overwegen of u de planningen moet wijzigen om conflicten op het station te minimaliseren waarnaar de back-ups worden geschreven.
Neem contact op met uw Windows-beheerder om te controleren op firmware-updates voor uw hardware.
Problemen die van invloed zijn op databaseherstel tussen verschillende SQL Server-versies
Een SQL Server-back-up kan niet worden hersteld naar een eerdere versie van SQL Server dan de versie waarop de back-up is gemaakt. U kunt bijvoorbeeld geen back-up herstellen die is gemaakt op een SQL Server 2019-exemplaar naar een SQL Server 2017-exemplaar. Anders wordt het volgende foutbericht weergegeven:
Fout 3169: Er is een back-up gemaakt van de database op een server met versie %ls. Deze versie is niet compatibel met deze server, waarop versie %ls wordt uitgevoerd. Herstel de database op een server die de back-up ondersteunt of gebruik een back-up die compatibel is met deze server.
Gebruik de volgende methode om een database te kopiëren die wordt gehost op een latere versie van SQL Server naar een eerdere versie van SQL Server.
Notitie
In de volgende procedure wordt ervan uitgegaan dat u twee SQL Server-exemplaren hebt met de naam SQL_A (hogere versie) en SQL_B (lagere versie).
- Download en installeer de nieuwste versie van SQL Server Management Studio (SSMS) (Engelstalig) op zowel SQL_A als SQL_B.
- Voer in SQL_A de volgende stappen uit:
- Klik met de rechtermuisknop op <YourDatabase>Tasks>Generate Scripts en selecteer de optie om de hele database en alle databaseobjecten te scripten.
- Selecteer Geavanceerd in het scherm Scriptopties instellen en selecteer vervolgens de versie van SQL_B onder Algemeen>script voor SQL Server-versie. Selecteer ook de optie die het beste werkt om de gegenereerde scripts op te slaan. Ga vervolgens verder met de wizard.
- Gebruik het programmaprogramma voor bulksgewijs kopiëren (bcp) om gegevens uit verschillende tabellen te kopiëren.
- Voer in SQL_B de volgende stappen uit:
- Gebruik de scripts die zijn gegenereerd op de SQL_A-server om een databaseschema te maken.
- Schakel voor elke tabel eventuele beperkingen en triggers voor vreemde sleutels uit. Als de tabel identiteitskolommen bevat, schakelt u het invoegen van identiteiten in.
- Gebruik bcp om de gegevens te importeren die u in de vorige stap in de bijbehorende tabellen hebt geëxporteerd.
- Nadat het importeren van gegevens is voltooid, schakelt u beperkingen en triggers voor refererende sleutels in en schakelt u identiteitsinvoeging uit voor elk van de tabellen die worden beïnvloed in stap c.
Deze procedure werkt doorgaans goed voor kleine tot middelgrote databases. Voor grotere databases kunnen problemen met onvoldoende geheugen optreden in SSMS en andere hulpprogramma's. Overweeg het gebruik van SQL Server Integration Services (SSIS), replicatie of andere opties om een kopie van een database te maken van een latere versie naar een eerdere versie van SQL Server.
Zie Script a database by using the Generate Scripts option (Een database scripten met de optie Scripts genereren) voor meer informatie over het genereren van scripts voor uw database.
Problemen met back-uptaken in AlwaysOn-omgevingen
Als u problemen ondervindt die van invloed zijn op back-uptaken of onderhoudsplannen in AlwaysOn-omgevingen, moet u rekening houden met het volgende:
- De automatische back-upvoorkeur is standaard ingesteld op Voorkeur secundair. Hiermee geeft u op dat back-ups moeten worden uitgevoerd op een secundaire replica, behalve als de primaire replica de enige onlinereplica is. U kunt geen differentiële back-ups van uw database maken met behulp van deze instelling. Als u deze instelling wilt wijzigen, gebruikt u SSMS op uw huidige primaire replica en gaat u naar de pagina Back-upvoorkeuren onder Eigenschappen van uw beschikbaarheidsgroep.
- Als u een onderhoudsplan of geplande taken gebruikt om back-ups van uw databases te genereren, moet u ervoor zorgen dat u de taken voor elke beschikbaarheidsdatabase maakt op elk serverexemplaren waarop een beschikbaarheidsreplica voor de beschikbaarheidsgroep wordt gehost.
Zie de volgende onderwerpen voor meer informatie over back-ups in een AlwaysOn-omgeving:
- Configure backups on secondary replicas of an Always On availability group (Back-ups configureren op secundaire replica's van een AlwaysOn-beschikbaarheidsgroep)
- Offload supported backups to secondary replicas of an availability group (Ondersteunde back-ups offloaden naar secundaire replica's van een beschikbaarheidsgroep)
Mediagerelateerde fouten bij het herstellen van een database vanuit een back-up
Als u foutberichten ontvangt die duiden op een bestandsprobleem, is dit symptomatisch voor een beschadigd back-upbestand. Hier volgen enkele voorbeelden van fouten die u kunt krijgen als een back-upset beschadigd is:
-
3241: De mediafamilie op apparaat %ls is onjuist gevormd. SQL Server kan deze mediafamilie niet verwerken.
-
3242: Het bestand op het apparaat %ls is geen geldige back-upset van Microsoft Tape Format.
-
3243: de mediafamilie op apparaat %ls is gemaakt met Microsoft Tape Format versie %d.%d. SQL Server ondersteunt versie %d.%d.
Notitie
U kunt de instructie Restore Header gebruiken om uw back-ups te controleren.
Deze problemen kunnen optreden vanwege problemen die van invloed zijn op de onderliggende hardware (harde schijven, netwerkopslag, enzovoort) of die zijn gerelateerd aan een virus of malware. Controleer de gebeurtenislogboeken en hardwarelogboeken van Het Windows-systeem op gerapporteerde fouten en voer de juiste actie uit (bijvoorbeeld firmware upgraden of netwerkproblemen oplossen).
Als u deze fouten wilt voorkomen, schakelt u de optie Back-upCONTROLESOM in wanneer u een back-up uitvoert om een back-up van een beschadigde database te voorkomen. Zie Mogelijke mediafouten tijdens back-up en herstel (SQL Server) voor meer informatie.
U kunt ook traceringsvlag 3023 inschakelen om een controlesom in te schakelen wanneer u back-ups uitvoert met behulp van back-uphulpprogramma's. Zie De optie CHECKSUM inschakelen als back-upprogramma's de optie niet beschikbaar maken voor meer informatie.
Als u deze problemen wilt oplossen, moet u een ander bruikbaar back-upbestand zoeken of een nieuwe back-upset maken. Microsoft biedt geen oplossingen die u kunnen helpen bij het ophalen van gegevens uit een beschadigde back-upset.
Notitie
Als een back-upbestand op de ene server is hersteld, maar niet op een andere, kunt u het bestand op verschillende manieren kopiëren tussen de servers. Voor bijvoorbeeld robocopy uit in plaats van een normale kopieerbewerking.
Back-ups mislukken vanwege problemen met machtigingen
Wanneer u databaseback-upbewerkingen probeert uit te voeren, treedt een van de volgende fouten op.
Scenario 1: Wanneer u een back-up uitvoert vanuit SQL Server Management Studio, mislukt de back-up en wordt het volgende foutbericht geretourneerd:
Back-up is mislukt voor serverservernaam<>. (Microsoft.SqlServer.SmoExtended)
System.Data.SqlClient.SqlError: Kan het back-upapparaat '<apparaatnaam>' niet openen. Fout 5 van het besturingssysteem (Toegang wordt geweigerd.) (Microsoft.SqlServer.Smo)Scenario 2: Geplande back-ups mislukken en genereren een foutbericht dat is vastgelegd in de taakgeschiedenis van de mislukte taak en die er ongeveer als volgt uitziet:
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.
Een van deze scenario's kan optreden als het SQL Server-serviceaccount geen lees- en schrijfmachtigingen heeft voor de map waarnaar back-ups worden geschreven. Back-upinstructies kunnen worden uitgevoerd als onderdeel van een taakstap of handmatig vanuit SQL Server Management Studio. In beide gevallen worden ze altijd uitgevoerd onder de context van het opstartaccount van de SQL Server-service. Als het serviceaccount niet over de benodigde bevoegdheden beschikt, ontvangt u daarom de foutberichten die eerder zijn genoteerd.
Zie Backup Devices (Back-upapparaten) voor meer informatie.
Notitie
U kunt de huidige machtigingen van het SQL Service-account in een map controleren door naar het tabblad Beveiliging te navigeren in de eigenschappen van de bijbehorende map, de knop Geavanceerd te selecteren en vervolgens het tabblad Effectieve toegang te gebruiken.
Back-up- of herstelbewerkingen die gebruikmaken van back-uptoepassingen van derden mislukken
SQL Server biedt een VDI-hulpprogramma (Virtual Backup Device Interface). Met deze API kunnen onafhankelijke softwareleveranciers SQL Server integreren in hun producten om ondersteuning te bieden voor back-up- en herstelbewerkingen. Deze API's zijn ontworpen om maximale betrouwbaarheid en prestaties te bieden en om het volledige scala aan back-up- en herstelfunctionaliteit van SQL Server te ondersteunen. Dit omvat het volledige scala aan momentopname- en dynamische back-upmogelijkheden.
Algemene stappen voor probleemoplossing
Voor versies die ouder zijn dan SQL Server 2012, moet u ervoor zorgen dat de SQLWriter-service is gestart en dat het opstartaccount is ingesteld op Lokaal systeem. Zorg er ook voor dat de NT AUTHORITY\SYSTEM-aanmelding bestaat in SQL Server en dat deze deel uitmaakt van de Sysadmin-serverrol van het exemplaar waarop back-ups worden uitgevoerd.
Voor SQL Server 2012 en latere versies wordt een nieuwe aanmelding met de naam [NT SERVICE\SQLWriter] gemaakt en tijdens de installatie ingericht als aanmelding. Zorg ervoor dat deze aanmelding bestaat in SQL Server en deel uitmaakt van de Sysadmin-serverfunctie.
Zorg ervoor dat SqlServerWriter wordt vermeld wanneer de
VSSADMIN LIST WRITERS
opdracht wordt uitgevoerd bij een opdrachtprompt op de server waarop SQL Server wordt uitgevoerd. Deze schrijver moet worden vermeld als schrijver en moet de status Stabiel hebben, zodat VSS-back-ups kunnen worden voltooid.Raadpleeg de logboeken van de bijbehorende back-upsoftware en hun ondersteuningssites voor meer informatie.
Symptomen of scenario KB-artikel Back-ups van hoofdlettergevoelige databases mislukken 2987610 FIX: Fout bij het maken van een back-up van een database met hoofdlettergevoelige sortering met behulp van VSS in SQL Server 2012 SP2 Back-ups van derden die worden gemaakt met behulp van VSS Writer, kunnen mislukken en 8229-fouten retourneren. 2987610 FIX: Fout bij het maken van een back-up van een database met hoofdlettergevoelige sortering met behulp van VSS in SQL Server 2012 SP2 Meer informatie over de werking van VDI-back-ups Hoe het werkt: BACK-upbronnen van SQL Server - VDI (VSS) Azure Site Recovery-agent rapporteert een fout ASR-agent of andere VSS-back-up die geen onderdeel is, mislukt voor een server die SQL Server 2008 R2 host
Meer resources
Hoe werkt het: hoeveel databases kunnen tegelijkertijd worden gemaakt?
Overige problemen
Veelgestelde vragen over back-up- en herstelbewerkingen van SQL Server
Hoe kan ik de status van een back-upbewerking controleren?
Gebruik het estimate_backup_restore-script om een schatting te maken van de back-uptijden.
Wat moet ik doen als sql Server een failover uitvoert in het midden van de back-up?
Start de herstel- of back-upbewerking opnieuw per Herstart een onderbroken herstelbewerking (Transact-SQL) opnieuw.
Kan ik databaseback-ups herstellen van oudere programmaversies op nieuwere versies en omgekeerd?
Back-up van SQL Server kan niet worden hersteld met behulp van een versie van SQL Server die later is dan de versie die de back-up heeft gemaakt. Zie Compatibiliteitsondersteuning voor meer informatie.
Hoe kan ik de back-ups van mijn SQL Server-database controleren?
Zie de procedures die zijn gedocumenteerd in RESTORE-instructies - VERIFYONLY (Transact-SQL).
Hoe kan ik de back-upgeschiedenis van databases ophalen in SQL Server?
Zie Hoe u de back-upgeschiedenis van databases in SQL Server kunt ophalen.
Kan ik 32-bits back-ups herstellen op 64-bits servers en omgekeerd?
Ja. De opslagindeling van SQL Server op schijf is hetzelfde in de 64-bits en 32-bits omgevingen. Back-up- en herstelbewerkingen werken daarom in 64-bits en 32-bits omgevingen.
Tips voor algemene probleemoplossing
- Zorg ervoor dat u lees- en schrijfmachtigingen inricht voor het SQL Server-serviceaccount in de map waarnaar de back-ups worden geschreven. Zie Permissions for backup (Machtigingen voor back-ups) voor meer informatie.
- Zorg ervoor dat de map waarnaar de back-ups worden geschreven, voldoende ruimte heeft om uw databaseback-ups weer te geven. U kunt de
sp_spaceused
opgeslagen procedure gebruiken om een ruwe schatting te krijgen van de back-upgrootte voor een specifieke database. - Gebruik altijd de nieuwste versie van SSMS om ervoor te zorgen dat u geen bekende problemen ondervindt die betrekking hebben op de configuratie van taken en onderhoudsplannen.
- Voer een testuitvoering van uw taken uit om ervoor te zorgen dat de back-ups zijn gemaakt. Voeg altijd logica toe om uw back-ups te controleren (Engelstalig).
- Als u van plan bent om systeemdatabases van de ene server naar de andere te verplaatsen, raadpleegt u Systeemdatabases verplaatsen.
- Als u onregelmatige back-upfouten ziet, controleert u of u een probleem ondervindt dat al is opgelost in de nieuwste update voor uw SQL Server-versie. Zie SQL Server-versies en -updates voor meer informatie.
- Zie Back-ups van SQL Server-databases in SQL Server Express plannen en automatiseren als u back-ups voor SQL Express-edities wilt plannen en automatiseren.
Naslagonderwerpen voor back-up- en herstelbewerkingen van SQL Server
Zie de volgende onderwerpen in Books Online voor meer informatie over back-up- en herstelbewerkingen:
Back-up en herstel van SQL Server-databases: in dit onderwerp worden de concepten van de back-up- en herstelbewerkingen voor SQL Server-databases beschreven, vindt u koppelingen naar aanvullende onderwerpen en vindt u gedetailleerde procedures voor het uitvoeren van verschillende back-ups of hersteltaken (zoals het verifiëren van back-ups en het maken van back-ups met behulp van T-SQL of SSMS). Dit is het bovenliggende onderwerp over dit onderwerp in sql Server-documentatie.
De volgende tabel bevat aanvullende onderwerpen die u mogelijk wilt bekijken voor specifieke taken die betrekking hebben op back-up- en herstelbewerkingen.
Verwijzing Beschrijving BACKUP (Transact-SQL) Biedt antwoorden op basisvragen die betrekking hebben op back-ups. Biedt voorbeelden van verschillende soorten back-up- en herstelbewerkingen. Back-upapparaten (SQL Server) Biedt een uitstekende referentie voor inzicht in verschillende back-upapparaten, het maken van back-ups naar een netwerkshare, Azure Blob Storage en gerelateerde taken. Herstelmodellen (SQL Server) Hierin worden de verschillende herstelmodellen beschreven: Simple, Full en Bulk-Logged. Biedt informatie over hoe het herstelmodel van invloed is op back-ups. Back-up en herstel: systeemdatabases (SQL Server) Behandelt strategieën en bespreekt waar u rekening mee moet houden wanneer u aan back-up- en herstelbewerkingen van systeemdatabases werkt. Overzicht van terugzetten en herstellen (SQL Server) Hierin wordt beschreven hoe de herstelmodellen van invloed zijn op herstelbewerkingen. U moet dit controleren als u vragen hebt over hoe het herstelmodel van een database van invloed kan zijn op het herstelproces. Metagegevens beheren bij het beschikbaar maken van een database op een andere server Verschillende overwegingen waarmee u rekening moet houden wanneer een database wordt verplaatst of als u problemen ondervindt die van invloed zijn op aanmeldingen, versleuteling, replicatie, machtigingen enzovoort. Werken met back-ups van transactielogboeken Bevat concepten over het maken van back-ups en het herstellen (toepassen) van transactielogboeken in de volledige en bulksgewijs vastgelegde herstelmodellen. Hierin wordt uitgelegd hoe u routineback-ups van transactielogboeken (logboekback-ups) maakt om gegevens te herstellen. SQL Server Managed Backup in Microsoft Azure Introduceert beheerde back-up en bijbehorende procedures.