Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server-
Dit onderwerp is alleen relevant voor databases die meerdere bestanden of bestandsgroepen bevatten onder het volledige herstelmodel of het bulkladen-herstelmodel.
In een bestandsherstel is het doel een of meer beschadigde bestanden te herstellen zonder de hele database te herstellen. Een scenario voor bestandsherstel bestaat uit één herstelvolgorde waarmee de juiste gegevens worden gekopieerd, doorgestuurd en hersteld
Als de bestandsgroep die wordt hersteld, lezen/schrijven is, moet er een niet-verbroken keten van logboekback-ups worden toegepast nadat de laatste gegevens of differentiële back-up is hersteld. Hierdoor wordt de bestandsgroep doorgestuurd naar de logboekrecords in de huidige actieve logboekrecords in het logboekbestand. Het herstelpunt ligt meestal aan het einde van het logboek, maar niet noodzakelijkerwijs.
Als de bestandsgroep die wordt hersteld alleen-lezen is, is het meestal niet nodig om logboekback-ups toe te passen en worden ze overgeslagen. Als de back-up is gemaakt nadat het bestand het kenmerk Alleen-lezen heeft gekregen, is dat de laatste back-up die moet worden hersteld. Vooruitdraaien stopt op het doelpunt.
De scenario's voor bestandsherstel zijn als volgt:
Offline bestandsherstel
In een offline bestandsherstel, is de database offline terwijl beschadigde bestanden of bestandsgroepen worden hersteld. Aan het einde van de herstelvolgorde is de database online.
Alle edities van SQL Server ondersteunen offline bestandsherstel.
Online bestandsherstel
In een online bestandsherstel, als de database online is tijdens het herstellen, blijft deze online tijdens het herstellen van het bestand. Elke bestandsgroep waarin een bestand wordt hersteld, is echter offline tijdens de herstelbewerking. Nadat alle bestanden in een offline bestandsgroep zijn hersteld, wordt de bestandsgroep automatisch online gebracht.
Zie Edities en ondersteunde functies van SQL Server 2022voor informatie over ondersteuning voor onlinepagina en bestandsherstel. Zie Sql Server-(Online herstellen) voor meer informatie over onlineherstel.
Tip
Als u wilt dat de database offline is voor het herstellen van bestanden, neemt u de database offline voordat u de herstelvolgorde start door de volgende instructie ALTER DATABASE uit te voeren: ALTER DATABASE database_name SET OFFLINE.
Beschadigde bestanden herstellen vanuit bestandsback-ups
Voordat u een of meer beschadigde bestanden herstelt, probeert u een tail-log back-upte maken.
Als het logboek is beschadigd, kan er geen back-up van tail-log worden gemaakt en moet u de hele database herstellen.
Zie Back-ups van transactielogboeken (SQL Server)voor meer informatie over het maken van back-ups van een transactielogboek.
Belangrijk
Voor een offlinebestandsherstel moet u altijd een back-up van tail-log maken voordat het bestand wordt hersteld. Voor een onlinebestandsherstel moet u altijd de back-up van het logboek maken na het herstellen van het bestand. Deze logboekback-up is nodig om toe te staan dat het bestand wordt hersteld naar een status die consistent is met de rest van de database.
Herstel elk beschadigd bestand uit de meest recente back-up van dat bestand.
Herstel de meest recente back-up van differentiële bestanden, indien aanwezig, voor elk hersteld bestand.
Herstel back-ups van transactielogboeken in volgorde, te beginnen met de back-up die de oudste van de herstelde bestanden omvat en eindigt met de back-up van het tail-log dat is gemaakt in stap 1.
U moet de back-ups van het transactielogboek die zijn gemaakt na de bestandsback-ups herstellen om de database consistent te maken. De back-ups van het transactielogboek kunnen snel worden doorgevoerd, omdat alleen de wijzigingen die van toepassing zijn op de herstelde bestanden worden toegepast. Het herstellen van afzonderlijke bestanden kan beter zijn dan het herstellen van de hele database, omdat onbeschadigde bestanden niet worden gekopieerd en vervolgens worden doorgestuurd. De hele keten van logboekback-ups moet echter nog steeds worden gelezen.
Herstel de database.
Notitie
Bestandsback-ups kunnen worden gebruikt om de database te herstellen naar een eerder tijdstip. Hiervoor moet u een volledige set back-ups van bestanden herstellen en vervolgens back-ups van transactielogboeken in volgorde herstellen om een doelpunt te bereiken dat na het einde van de meest recente herstelde bestandsback-up valt. Zie Een SQL Server-database herstellen naar een bepaald tijdstip (volledig herstelmodel)voor meer informatie over herstel naar een bepaald tijdstip.
Transact-SQL herstelvolgorde voor een offlinebestand herstellen (volledig herstelmodel)
Een scenario voor bestandsherstel bestaat uit één herstelvolgorde waarmee de juiste gegevens worden gekopieerd, doorgestuurd en hersteld.
In deze sectie ziet u de essentiële opties voor RESTORE bij het herstellen van bestanden. Syntaxis en details die niet relevant zijn voor dit doel worden weggelaten.
In de volgende voorbeeldvolgorde ziet u een offline herstelbewerking van twee secundaire bestanden, A
en B
, met behulp van WITH NORECOVERY. Vervolgens worden twee logboekback-ups toegepast met NORECOVERY, gevolgd door de tail-log back-up, en deze wordt hersteld met WITH RECOVERY.
Notitie
De volgende voorbeeldherstelvolgorde begint door het bestand offline te halen en vervolgens een back-up van tail-log te maken.
--Take the file offline.
ALTER DATABASE database_name MODIFY FILE SET OFFLINE;
-- Back up the currently active transaction log.
BACKUP LOG database_name
TO <tail_log_backup>
WITH NORECOVERY;
GO
-- Restore the files.
RESTORE DATABASE database_name FILE=name
FROM <file_backup_of_file_A>
WITH NORECOVERY;
RESTORE DATABASE database_name FILE=<name> ......
FROM <file_backup_of_file_B>
WITH NORECOVERY;
-- Restore the log backups.
RESTORE LOG database_name FROM <log_backup>
WITH NORECOVERY;
RESTORE LOG database_name FROM <log_backup>
WITH NORECOVERY;
RESTORE LOG database_name FROM <tail_log_backup>
WITH RECOVERY;
Voorbeelden
voorbeeld: Online herstellen van een Read-Write-bestand (volledig herstelmodel)
voorbeeld: Online herstellen van een Read-Only-bestand (volledig herstelmodel)
voorbeeld: offline herstellen van primaire en een andere bestandsgroep (volledig herstelmodel)
Gerelateerde taken
bestanden en bestandsgroepen herstellen
SqlRestore (SMO)
Zie ook
back-up en herstel: interoperabiliteit en co-existentie (SQL Server)
differentiële back-ups (SQL Server)
volledige back-ups van bestanden (SQL Server)
overzicht van back-up (SQL Server)
Overzicht van herstel en herstel (SQL Server)
RESTORE (Transact-SQL)
databaseherstelbewerkingen voltooien (Simple Recovery Model)
Stapsgewijze Herstelacties (SQL Server)