Problemen met back-up- en herstelbewerkingen van SQL Server oplossen

Originele productversie: SQL Server
Oorspronkelijk KB-nummer: 224071

Overzicht

Dit artikel helpt u bij het oplossen van veelvoorkomende problemen met back-up- en herstelbewerkingen SQL Server. Deze problemen omvatten trage back-up- of herstelprestaties, versiecompatibiliteitsfouten, Back-uptaken van AlwaysOn-beschikbaarheidsgroep, mediafouten, machtigingenfouten, VDI- en VSS-back-ups van derden, fouten bij het bijhouden van wijzigingen en versleutelde databaseherstel. Het artikel bevat ook een sectie met veelgestelde vragen en koppelingen naar naslagonderwerpen voor SQL Server back-up en herstel.

Back-up- en herstelbewerkingen duren lang

Back-up- en herstelbewerkingen zijn I/O-intensief. De doorvoer van back-ups en 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 back-upbewerkingen zijn gestopt of te lang duren, gebruikt u een of meer van de volgende methoden 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)
    
  • Gebruik in SQL Server 2016 en latere versies de XEvent-backup_restore_progress_trace om de voortgang van back-up- en herstelbewerkingen bij te houden.

  • Gebruik de percent_complete kolom sys.dm_exec_requests om de voortgang van actieve back-up- en herstelbewerkingen bij te houden.

  • Meet de doorvoersnelheid van back-up en herstel met behulp van de prestatiemeteritems Device throughput Bytes/sec en 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.

Trage back-up- of herstelprestaties onderzoeken

  1. Controleer of u een van de bekende problemen in de volgende tabel ondervindt en overweeg de relevante oplossingen of aanbevolen procedures toe te passen.

    Knowledge Base-koppeling Uitleg en aanbevolen acties
    Back-ups maken en herstellen van SQL Server-databases Behandelt aanbevolen procedures voor het verbeteren van back-up- en herstelprestaties. Verleen bijvoorbeeld het recht SE_MANAGE_VOLUME_NAME aan het Windows-account waarop SQL Server wordt uitgevoerd, zodat directe bestandsinitialisatie bewerkingen met gegevensbestanden kan versnellen.
    Antivirussoftware configureren voor gebruik met SQL Server Antivirussoftware kan vergrendelingen van .bak bestanden bevatten, wat van invloed kan zijn op de prestaties van back-up- en herstelbewerkingen. Volg de richtlijnen in dit artikel om back-upbestanden van virusscans uit te sluiten.
    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 en controleer de prestaties.
  2. Controleer het SQL Server foutenlogboek en Windows gebeurtenislogboek op foutberichten die verwijzen naar de oorzaak van het probleem.

  3. Als u software van derden of onderhoudsplannen voor databases gebruikt om gelijktijdige back-ups te maken, overweeg dan de schema’s te wijzigen om de concurrentie om het station waarop de back-ups worden geschreven te minimaliseren.

  4. Neem contact op met uw Windows-beheerder om te controleren op firmware-updates voor uw hardware.

Fouten bij het herstellen van back-ups naar eerdere SQL Server versies

Symptomen

U kunt een SQL Server back-up niet herstellen naar een eerdere versie van SQL Server dan de versie die de back-up heeft gemaakt. U kunt bijvoorbeeld geen back-up herstellen die is gemaakt op een SQL Server exemplaar van 2022 naar een SQL Server exemplaar van 2019. 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.

Resolutie / Besluit

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.

Opmerking

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).

  1. Download en installeer de nieuwste versie van SQL Server Management Studio (SSMS) (Engelstalig) op zowel SQL_A als SQL_B.
  2. Voer in SQL_A de volgende stappen uit:
    1. Klik met de rechtermuisknop op <YourDatabase>>Tasks>Generate Scripts en selecteer de optie om de hele database en alle databaseobjecten te scripten.
    2. Selecteer in het scherm Opties voor scripts instellen de optie Geavanceerd en selecteer vervolgens de versie van SQL_B onder Algemeen>Script voor SQL Server-versie. Selecteer vervolgens de optie opslaan die het beste bij u past en ga verder met de wizard.
    3. Gebruik het programmaprogramma voor bulksgewijs kopiëren (bcp) om gegevens uit verschillende tabellen te kopiëren.
  3. Voer in SQL_B de volgende stappen uit:
    1. Gebruik de scripts die zijn gegenereerd op de SQL_A-server om het databaseschema te maken.
    2. Schakel voor elke tabel eventuele foreign key-beperkingen en triggers uit. Als de tabel identiteitskolommen bevat, schakelt u identiteitsinvoeging in.
    3. Gebruik bcp om de gegevens te importeren die u in de vorige stap in de bijbehorende tabellen hebt geëxporteerd.
    4. 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 zijn gewijzigd 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 database te kopiëren 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-beschikbaarheidsgroepen

Symptomen

U ondervindt problemen die van invloed zijn op back-uptaken of onderhoudsplannen in AlwaysOn-beschikbaarheidsgroepomgevingen.

Resolutie / Besluit

  • De automatische back-upvoorkeur is standaard ingesteld op Voorkeur secundair. Deze instelling geeft aan dat back-ups worden uitgevoerd op een secundaire replica, tenzij de primaire replica de enige replica online is. Met deze instelling kunt u geen differentiële back-ups van uw database maken. 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 de taken voor elke beschikbaarheidsdatabase maken op elk serverexemplaar dat als host fungeert voor een beschikbaarheidsreplica van de beschikbaarheidsgroep.

Zie de volgende artikelen voor meer informatie over back-ups in een AlwaysOn-omgeving:

Mediafouten bij het herstellen van een database vanuit een back-up

Symptomen

Foutberichten die wijzen op een bestandsprobleem verwijzen doorgaans naar een beschadigd back-upbestand. De volgende fouten zijn voorbeelden van problemen die kunnen optreden 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.

Oorzaak

Deze problemen kunnen optreden vanwege problemen die van invloed zijn op de onderliggende hardware (harde schijven, netwerkopslag, enzovoort) of vanwege 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).

Resolutie / Besluit

  • Gebruik de instructie RESTORE HEADERONLY om de back-up te controleren.
  • Om het optreden van deze herstelfouten te verminderen, schakelt u de optie Backup CHECKSUM in wanneer u een back-up uitvoert, om te voorkomen dat er een back-up wordt gemaakt van een beschadigde database. 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 Serverconfiguratie: standaardwaarde voor backupchecksum voor meer informatie.
  • Als u deze problemen wilt oplossen, zoekt u een ander bruikbaar back-upbestand of maakt u een nieuwe back-upset. Microsoft biedt geen oplossingen die u kunnen helpen bij het ophalen van gegevens uit een beschadigde back-upset.
  • 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. Onderzoek of het bestand wordt gewijzigd tijdens de kopieerbewerking op het netwerk of op het doelopslagapparaat.

Back-ups mislukken vanwege problemen met machtigingen

Symptomen

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 server <servernaam>. (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.
    

Oorzaak

Beide scenario's kunnen zich voordoen 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 uitgevoerd in de context van het opstartaccount van de SQL Server-service. Dus als het serviceaccount niet over de benodigde bevoegdheden beschikt, krijgt u de eerder genoteerde foutberichten.

Resolutie / Besluit

Controleer de huidige machtigingen van het SQL Server serviceaccount in een map door naar het tabblad Beveiliging in de eigenschappen van de map te gaan, Geavanceerd te selecteren en vervolgens het tabblad Effectieve toegang te gebruiken. Zie Back-upapparaten voor meer informatie.

Back-up- of herstelbewerkingen van derden mislukken

SQL Server biedt een VDI (Virtual Backup Device Interface). Met deze API kunnen onafhankelijke softwareleveranciers SQL Server integreren in hun producten om back-up- en herstelbewerkingen te ondersteunen. Deze API's zijn ontworpen om betrouwbaarheid en prestaties te bieden, en ter ondersteuning van het volledige scala aan SQL Server back-up- en herstelfunctionaliteit, waaronder momentopnamen en dynamische back-upmogelijkheden.

Algemene stappen voor probleemoplossing

  • In alle ondersteunde versies van SQL Server wordt een aanmelding met de naam NT SERVICE\SQLWriter gemaakt en ingericht tijdens de installatie. Controleer of deze aanmelding bestaat in SQL Server en maakt deel uit van de sysadmin-serverfunctie op het exemplaar waarvan een back-up wordt gemaakt. Controleer ook of de SQL Server VSS Writer-service is gestart en of het opstartaccount is ingesteld op Lokaal systeem.

  • Controleer of SqlServerWriter wordt vermeld wanneer u de opdracht VSSADMIN LIST WRITERS uitvoert vanaf een opdrachtprompt met verhoogde rechten op de server waarop SQL Server draait. De writer moet aanwezig zijn en de status Stable hebben zodat VSS-back-ups succesvol kunnen worden voltooid.

  • Raadpleeg de logboeken van de back-upsoftware en de ondersteuningssite van de leverancier voor meer informatie.

    Symptomen of scenario Verwijzing
    Meer informatie over de werking van VDI-back-ups Hoe het werkt: back-upbronnen van SQL Server - VDI (VSS)
    Van hoeveel databases kan tegelijkertijd een back-up worden gemaakt Hoe werkt het: van hoeveel databases kan gelijktijdig een back-up worden gemaakt?

Back-ups mislukken wanneer wijzigingen bijhouden is ingeschakeld

Symptomen

Back-ups kunnen mislukken wanneer u wijzigingen bijhouden in de database inschakelt. Mogelijk ziet u een fout zoals de volgende:

Fout: 3999, Ernst: 17, Status: 1.
<Time Stamp> spid <spid> Kan de commit-tabel niet naar schijf wegschrijven in dbid 8 vanwege fout 2601. Raadpleeg het foutenlogboek voor meer informatie.

Resolutie / Besluit

Als u dit probleem ondervindt op een ondersteunde versie van SQL Server, installeert u de meest recente cumulatieve update voor uw versie. Zie de volgende artikelen voor achtergrondinformatie en eerdere oplossingen:

Fouten bij het herstellen van back-ups van versleutelde databases

Symptomen

U ondervindt problemen bij het herstellen van back-ups van databases die worden beveiligd door TDE (Transparent Data Encryption).

Resolutie / Besluit

Zie Een met TDE beveiligde database verplaatsen naar een andere SQL Server om het probleem op te lossen.

Veelgestelde vragen over SQL Server back-up en herstel

Hoe kan ik de status van een back-upbewerking controleren?

Gebruik het estimate_backup_restore-script om back-uptijden te schatten.

Wat moet ik doen als SQL Server een failover in het midden van een back-up uitvoert?

Start de herstel- of back-upbewerking opnieuw per Een onderbroken herstelbewerking (Transact-SQL) opnieuw starten.

Kan ik databaseback-ups herstellen van oudere versies op nieuwere versies en omgekeerd?

U kunt een SQL Server back-up niet herstellen met behulp van een versie van SQL Server eerder dan de versie die de back-up heeft gemaakt. Zie de compatibiliteitsondersteuning voor RESTORE voor meer informatie.

Hoe controleer ik mijn SQL Server databaseback-ups?

Zie de procedures zoals beschreven 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 SQL Server opslagindeling op schijf is hetzelfde in 64-bits en 32-bits omgevingen. Back-up- en herstelbewerkingen werken dus in 64-bits en 32-bits omgevingen.

Hoe maak ik een back-up en herstel ik een database die wordt beveiligd door transparent data encryption (TDE)?

Maak een back-up van de database, het servercertificaat van de databaseversleutelingssleutel en de persoonlijke sleutel van het certificaat. Als u de back-up op een ander exemplaar wilt herstellen, herstelt u eerst het servercertificaat (met de persoonlijke sleutel) naar de master database op het doelexemplaren en herstelt u vervolgens de back-up van de gebruikersdatabase. Zie Een met TDE beveiligde database verplaatsen naar een andere SQL Server voor stapsgewijze instructies.

Werkt back-upcompressie op databases met TDE-functionaliteit?

Ja. Vanaf SQL Server 2016 werkt back-upcompressie voor TDE-ingeschakelde databases wanneer u in de MAXTRANSFERSIZE-instructie voor BACKUP een waarde opgeeft die groter is dan 65536 (64 kB). Zonder deze instelling wordt de back-up ongecomprimeerd, zelfs wanneer u compressie aanvraagt. Zie Back-upcompressie voor meer details.

Hoe werken VDI- en VSS-back-ups met secundaire replica's van de AlwaysOn-beschikbaarheidsgroep?

Back-ups op basis van VSS (momentopnamen) die via de SQL Writer-service worden gemaakt, worden alleen ondersteund op basis van de primaire replica. Op secundaire replica's vraagt u via de VDI-client een volledige back-up met de optie Alleen kopiëren op, omdat volledige VSS-back-ups op een secundaire replica niet worden ondersteund. Zie Actieve secundaire databases: Back-up maken op secundaire replica's (AlwaysOn-beschikbaarheidsgroepen) voor meer informatie.

Tips voor algemene probleemoplossing

  • Verleen lees- en schrijfrechten aan het SQL Server-serviceaccount voor de map waarin u back-ups opslaat. Zie Permissions for backup (Machtigingen voor back-ups) voor meer informatie.
  • Controleer of de map waarin u back-ups schrijft voldoende ruimte heeft voor uw databaseback-ups. Gebruik de sp_spaceused opgeslagen procedure om een ruwe schatting te maken van de back-upgrootte voor een database.
  • Gebruik de nieuwste versie van SSMS om bekende problemen met betrekking tot taak- en onderhoudsplanconfiguratie te voorkomen.
  • Voer een testuitvoering van uw taken uit om te controleren of back-ups zijn gemaakt. Voeg logica toe om uw back-ups te controleren.
  • 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 de meest recente update voor uw SQL Server versie het probleem oplost. Zie SQL Server versies en updates voor meer informatie.
  • Als u back-ups wilt plannen en automatiseren voor SQL Server Express-edities, raadpleegt u Back-ups van SQL Server databases plannen en automatiseren in SQL Server Express.

Naslagonderwerpen voor SQL Server back-up en herstel

De volgende tabel bevat onderwerpen voor specifieke back-up- en hersteltaken.

Article Beschrijving
BACKUP (Transact-SQL) Antwoorden op basisvragen over back-ups en biedt voorbeelden van verschillende soorten back-up- en herstelbewerkingen.
Back-upapparaten (SQL Server) Een referentie voor het begrijpen van back-upapparaten, het maken van back-ups naar een netwerkshare, Azure Blob Storage en gerelateerde taken.
Recovery-modellen (SQL Server) Behandelt de eenvoudige, volledige en bulksgewijs vastgelegde herstelmodellen en legt uit hoe het herstelmodel van invloed is op back-ups.
Back-ups maken en herstellen van systeemdatabases (SQL Server) Behandelt strategieën en overwegingen wanneer u aan back-up- en herstelbewerkingen voor systeemdatabases werkt.
Overzicht van terugzetten en herstel (SQL Server) Hierin wordt beschreven hoe de herstelmodellen van invloed zijn op herstelbewerkingen. Lees dit artikel als u vragen hebt over hoe het herstelmodel van een database van invloed is op het herstelproces.
Metagegevens beheren bij het beschikbaar maken van een database op een andere server Overwegingen waarmee u rekening moet houden wanneer u een database verplaatst of problemen ondervindt die van invloed zijn op aanmeldingen, versleuteling, replicatie, machtigingen enzovoort.
back-ups van transactielogboeken (SQL Server) Beschrijft concepten voor het maken van back-ups van transactielogboeken en het herstellen (toepassen) ervan in de herstelmodellen Volledig en Bulk-logged. Hierin wordt uitgelegd hoe u routineback-ups van transactielogboeken kunt maken om gegevens te herstellen.
SQL Server beheerde back-up in Microsoft Azure Introduceert beheerde back-up en de bijbehorende procedures.