Delen via


RESTORE-instructies (Transact-SQL)

Hiermee herstelt u back-ups van SQL-databases die zijn gemaakt met behulp van de opdracht BACKUP.

Een product selecteren

Selecteer in de volgende rij de productnaam waarin u geïnteresseerd bent en alleen de informatie van dat product wordt weergegeven.

Zie Transact-SQL syntaxisconventiesvoor meer informatie over de syntaxisconventies.

* SQL Server *  

 

SQL Server

Met deze opdracht kunt u de volgende herstelscenario's uitvoeren:

  • Een volledige database herstellen vanuit een volledige databaseback-up (een volledige herstelbewerking).
  • Een deel van een database herstellen (een gedeeltelijke herstelbewerking).
  • Specifieke bestanden of bestandsgroepen herstellen naar een database (een bestandsherstel).
  • Specifieke pagina's herstellen naar een database (een pagina herstellen).
  • Een transactielogboek herstellen naar een database (een transactielogboek herstellen).
  • Een database terugzetten naar het tijdstip dat is vastgelegd door een momentopname van een database.

Andere middelen

Syntaxis

--To Restore an Entire Database from a Full database backup (a Complete Restore):
RESTORE DATABASE { database_name | @database_name_var }
 [ FROM <backup_device> [ ,...n ] ]
 [ WITH
   {
    [ RECOVERY | NORECOVERY | STANDBY =
        {standby_file_name | @standby_file_name_var }
       ]
   | ,  <general_WITH_options> [ ,...n ]
   | , <replication_WITH_option>
   | , <change_data_capture_WITH_option>
   | , <FILESTREAM_WITH_option>
   | , <service_broker_WITH options>
   | , <point_in_time_WITH_options-RESTORE_DATABASE>
   } [ ,...n ]
 ]
[;]

--To perform the first step of the initial restore sequence of a piecemeal restore:
RESTORE DATABASE { database_name | @database_name_var }
   <files_or_filegroups> [ ,...n ]
 [ FROM <backup_device> [ ,...n ] ]
   WITH
      PARTIAL, NORECOVERY
      [  , <general_WITH_options> [ ,...n ]
       | , <point_in_time_WITH_options-RESTORE_DATABASE>
      ] [ ,...n ]
[;]

--To Restore Specific Files or Filegroups:
RESTORE DATABASE { database_name | @database_name_var }
   <file_or_filegroup> [ ,...n ]
 [ FROM <backup_device> [ ,...n ] ]
   WITH
   {
      [ RECOVERY | NORECOVERY ]
      [ , <general_WITH_options> [ ,...n ] ]
   } [ ,...n ]
[;]

--To Restore Specific Pages:
RESTORE DATABASE { database_name | @database_name_var }
   PAGE = 'file:page [ ,...n ]'
 [ , <file_or_filegroups> ] [ ,...n ]
 [ FROM <backup_device> [ ,...n ] ]
   WITH
       NORECOVERY
      [ , <general_WITH_options> [ ,...n ] ]
[;]

--To Restore a Transaction Log:
RESTORE LOG { database_name | @database_name_var }
 [ <file_or_filegroup_or_pages> [ ,...n ] ]
 [ FROM <backup_device> [ ,...n ] ]
 [ WITH
   {
     [ RECOVERY | NORECOVERY | STANDBY =
        {standby_file_name | @standby_file_name_var }
       ]
    | , <general_WITH_options> [ ,...n ]
    | , <replication_WITH_option>
    | , <point_in_time_WITH_options-RESTORE_LOG>
   } [ ,...n ]
 ]
[;]

--To Revert a Database to a Database Snapshot:
RESTORE DATABASE { database_name | @database_name_var }
FROM DATABASE_SNAPSHOT = database_snapshot_name

<backup_device>::=
{
   { logical_backup_device_name |
      @logical_backup_device_name_var }
 | { DISK
     | TAPE
     | URL
   } = { 'physical_backup_device_name' |
      @physical_backup_device_name_var }
}

<files_or_filegroups>::=
{
   FILE = { logical_file_name_in_backup | @logical_file_name_in_backup_var }
 | FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }
 | READ_WRITE_FILEGROUPS
}

<general_WITH_options> [ ,...n ]::=
--Restore Operation Options
   MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name'
          [ ,...n ]
 | REPLACE
 | RESTART
 | RESTRICTED_USER | CREDENTIAL

--Backup Set Options
 | FILE = { backup_set_file_number | @backup_set_file_number }
 | PASSWORD = { password | @password_variable }
 | [ METADATA_ONLY | SNAPSHOT ] [ DBNAME = { database_name | @database_name_variable } ]

--Media Set Options
 | MEDIANAME = { media_name | @media_name_variable }
 | MEDIAPASSWORD = { mediapassword | @mediapassword_variable }
 | BLOCKSIZE = { blocksize | @blocksize_variable }

--Data Transfer Options
 | BUFFERCOUNT = { buffercount | @buffercount_variable }
 | MAXTRANSFERSIZE = { maxtransfersize | @maxtransfersize_variable }

--Error Management Options
 | { CHECKSUM | NO_CHECKSUM }
 | { STOP_ON_ERROR | CONTINUE_AFTER_ERROR }

--Monitoring Options
 | STATS [ = percentage ]

--Tape Options.
 | { REWIND | NOREWIND }
 | { UNLOAD | NOUNLOAD }

<replication_WITH_option>::=
 | KEEP_REPLICATION

<change_data_capture_WITH_option>::=
 | KEEP_CDC

<FILESTREAM_WITH_option>::=
 | FILESTREAM ( DIRECTORY_NAME = directory_name )

<service_broker_WITH_options>::=
 | ENABLE_BROKER
 | ERROR_BROKER_CONVERSATIONS
 | NEW_BROKER

<point_in_time_WITH_options-RESTORE_DATABASE>::=
 | {
   STOPAT = { 'datetime'| @datetime_var }
 | STOPATMARK = 'lsn:lsn_number'
                 [ AFTER 'datetime']
 | STOPBEFOREMARK = 'lsn:lsn_number'
                 [ AFTER 'datetime']
   }

<point_in_time_WITH_options-RESTORE_LOG>::=
 | {
   STOPAT = { 'datetime'| @datetime_var }
 | STOPATMARK = { 'mark_name' | 'lsn:lsn_number' }
                 [ AFTER 'datetime']
 | STOPBEFOREMARK = { 'mark_name' | 'lsn:lsn_number' }
                 [ AFTER 'datetime']
   }

Arguments

Zie RESTORE-argumenten voor beschrijvingen van de argumenten.

Over herstelscenario's

SQL Server ondersteunt diverse herstelscenario's:

Als online herstellen wordt ondersteund, worden bestandsherstel en paginaherstel automatisch online hersteld en worden secundaire bestandsgroepen na de eerste fase van een stukmeal teruggezet.

Opmerking

Online herstelbewerkingen kunnen uitgestelde transacties omvatten.

Zie Online herstellen voor meer informatie.

Aanvullende overwegingen over HERSTELopties

Stopgezette RESTORE-trefwoorden

De volgende trefwoorden zijn stopgezet in SQL Server 2008 (10.0.x):

Stopgezet trefwoord Vervangen door... Voorbeeld van vervangend trefwoord
LADING RESTORE RESTORE DATABASE
TRANSACTIE logboek RESTORE LOG
DBO_ONLY RESTRICTED_USER RESTORE DATABASE ... WITH RESTRICTED_USER

HERSTELLOGBOEK

RESTORE LOG kan een bestandslijst bevatten om het maken van bestanden tijdens rollforward mogelijk te maken. Dit wordt gebruikt wanneer de logboekback-up logboekrecords bevat die zijn geschreven toen een bestand aan de database werd toegevoegd.

Opmerking

Voor een database die gebruikmaakt van het volledige of bulksgewijs vastgelegde herstelmodel, moet u in de meeste gevallen een back-up van het logboek maken voordat u de database herstelt. Als u een database herstelt zonder eerst een back-up van de staart van het logboek te maken, treedt er een fout op, tenzij de instructie RESTORE DATABASE de COMPONENT WITH REPLACE of THE STOPAT bevat, die een tijd of transactie moet opgeven die is opgetreden na het einde van de gegevensback-up. Zie Tail-Log Back-ups voor meer informatie over back-ups van tail-logboeken.

Vergelijking van HERSTEL en NORECOVERY

Terugdraaien wordt beheerd door de RESTORE-instructie via [ HERSTEL | NORECOVERY ] opties:

  • NORECOVERY geeft aan dat terugdraaien niet plaatsvindt. Hierdoor kan rollforward doorgaan met de volgende instructie in de reeks.

    In dit geval kan de herstelvolgorde andere back-ups herstellen en deze doorsturen.

  • HERSTEL (de standaardinstelling) geeft aan dat terugdraaien moet worden uitgevoerd nadat rollforward is voltooid voor de huidige back-up. Er kunnen geen verdere back-ups worden hersteld. Selecteer deze optie zodra u alle benodigde back-ups hebt hersteld.

    Voor het herstellen van de database moet de volledige set gegevens die worden hersteld (de rollforward-set) consistent zijn met de database. Als de rollforward-set niet ver genoeg is geïmplementeerd om consistent te zijn met de database en RECOVERY is opgegeven, geeft de database-engine een fout op. Zie Herstel- en hersteloverzicht (SQL Server) voor meer informatie over het herstelproces.

Compatibiliteitsondersteuning

Back-ups van masteren msdbmodel die zijn gemaakt met een eerdere versie van SQL Server, kunnen niet worden hersteld door SQL Server.

Opmerking

Er kan geen SQL Server-back-up worden hersteld naar een eerdere versie van SQL Server dan de versie waarop de back-up is gemaakt.

Elke versie van SQL Server maakt gebruik van een ander standaardpad dan eerdere versies. Als u daarom een database wilt herstellen die is gemaakt op de standaardlocatie voor back-ups van eerdere versies, moet u de optie VERPLAATSEN gebruiken. Zie Bestandslocaties voor standaard- en benoemde exemplaren van SQL Server voor informatie over het nieuwe standaardpad.

Nadat u een eerdere versiedatabase naar SQL Server hebt hersteld, wordt de database automatisch bijgewerkt. Normaal gesproken wordt de database onmiddellijk beschikbaar. Als een SQL Server 2005-database (9.x) echter volledige-tekstindexen bevat, importeert, herstelt of herbouwt deze, afhankelijk van de instelling van de eigenschap upgrade_option server. Als de upgradeoptie is ingesteld op importeren (upgrade_option = 2) of opnieuw opbouwen (upgrade_option = 0), zijn de indexen in volledige tekst niet beschikbaar tijdens de upgrade. Afhankelijk van de hoeveelheid gegevens die wordt geïndexeerd, kan het importeren enkele uren duren en kan het opnieuw opbouwen tot tien keer langer duren. Houd er ook rekening mee dat wanneer de upgradeoptie is ingesteld op importeren, de bijbehorende indexen voor volledige tekst opnieuw worden opgebouwd als er geen volledige tekstcatalogus beschikbaar is. Als u de instelling van de eigenschap upgrade_option server wilt wijzigen, gebruikt u sp_fulltext_service.

Wanneer een database voor het eerst aan een nieuw exemplaar van SQL Server is gekoppeld of hersteld, wordt er nog geen kopie van de hoofdsleutel van de database (versleuteld door de servicehoofdsleutel) opgeslagen op de server. U moet de INSTRUCTIE OPEN MASTER KEY gebruiken om de databasehoofdsleutel (DMK) te ontsleutelen. Zodra de DMK is ontsleuteld, kunt u in de toekomst automatische ontsleuteling inschakelen met behulp van de instructie ALTER MASTER KEY REGENERATE om de server in te richten met een kopie van de DMK, versleuteld met de servicehoofdsleutel (SMK). Wanneer een database is bijgewerkt vanaf een eerdere versie, moet de DMK opnieuw worden gegenereerd om het nieuwere AES-algoritme te gebruiken. Zie ALTER MASTER KEY voor meer informatie over het regenereren van de DMK. De tijd die nodig is om de DMK-sleutel opnieuw te genereren om een upgrade naar AES uit te voeren, is afhankelijk van het aantal objecten dat wordt beveiligd door de DMK. Het opnieuw genereren van de DMK-sleutel om een upgrade naar AES uit te voeren, is slechts eenmaal nodig en heeft geen invloed op toekomstige regeneraties als onderdeel van een sleutelrotatiestrategie.

Opmerkingen

Als de opgegeven database tijdens een offline herstelbewerking wordt uitgevoerd, worden de gebruikers na een korte vertraging door RESTORE uitgeschakeld. Voor online herstel van een niet-primaire bestandsgroep kan de database in gebruik blijven, behalve wanneer de bestandsgroep die wordt hersteld, offline wordt gehaald. Alle gegevens in de opgegeven database worden vervangen door de herstelde gegevens.

Herstelbewerkingen op meerdere platforms, zelfs tussen verschillende processortypen, kunnen worden uitgevoerd zolang de sortering van de database wordt ondersteund door het besturingssysteem.

RESTORE kan opnieuw worden gestart na een fout. Daarnaast kunt u RESTORE instrueren om door te gaan ondanks fouten en het herstelt zoveel mogelijk gegevens (zie de CONTINUE_AFTER_ERROR optie).

RESTORE is niet toegestaan in een expliciete of impliciete transactie.

Het herstellen van een beschadigde master database wordt uitgevoerd met behulp van een speciale procedure. Zie Back-up en herstel van systeemdatabases voor meer informatie.

Als u een database herstelt, wordt de plancache gewist voor de database die wordt hersteld. Als u de plancache wist, wordt een hercompilatie van alle volgende uitvoeringsplannen veroorzaakt. Dit kan een plotselinge, tijdelijke afname van de queryprestaties veroorzaken.

Als u een beschikbaarheidsdatabase wilt herstellen, herstelt u eerst de database naar het exemplaar van SQL Server en voegt u de database vervolgens toe aan de beschikbaarheidsgroep.

Geïntegreerde versnelling en offloading voor back-upcompressie en -decompressie

SQL Server 2022 (16.x) introduceert ALGORITHMeen compressie-algoritme voor de bewerking. Zie Backup COMPRESSION voor meer informatie.

Zie Herstelbewerkingen voor meer informatie

Herstellen vanuit URL

URL is de indeling die wordt gebruikt voor het opgeven van de locatie en de bestandsnaam voor Microsoft Azure Blob Storage of S3-compatibele objectopslag. Hoewel Azure Blob Storage een service is, is de implementatie vergelijkbaar met schijf en tape om een consistente en naadloze herstelervaring voor alle apparaten mogelijk te maken.

Interoperabiliteit

Database-instellingen en herstellen

Tijdens een herstelbewerking worden de meeste databaseopties die zijn ingesteld met ALTER DATABASE opnieuw ingesteld op de waarden die van kracht zijn op het moment van het einde van de back-up.

Als u de optie WITH RESTRICTED_USER gebruikt, wordt dit gedrag echter overschreven voor de instelling van de gebruikerstoegangsoptie. Deze instelling wordt altijd ingesteld op basis van een RESTORE-instructie, die de optie WITH RESTRICTED_USER bevat.

Een versleutelde database herstellen

Als u een database wilt herstellen die is versleuteld, moet u toegang hebben tot het certificaat of de asymmetrische sleutel die is gebruikt om de database te versleutelen. Zonder het certificaat of de asymmetrische sleutel kan de database niet worden hersteld. Als gevolg hiervan moet het certificaat dat wordt gebruikt voor het versleutelen van de databaseversleutelingssleutel behouden zolang de back-up nodig is. Zie SQL Server-certificaten en asymmetrische sleutels voor meer informatie.

Een database herstellen die is ingeschakeld voor vardecimale opslag

Back-up en herstel werken correct met de vardecimale opslagindeling. Zie sp_db_vardecimal_storage_format voor meer informatie over de vardecimale opslagindeling.

Volledige-tekstgegevens herstellen

Volledige-tekstgegevens worden samen met andere databasegegevens hersteld tijdens een volledige herstelbewerking. Met behulp van de reguliere RESTORE DATABASE database_name FROM backup_device syntaxis worden de bestanden in volledige tekst hersteld als onderdeel van het herstellen van het databasebestand.

De instructie RESTORE kan ook worden gebruikt om herstelbewerkingen uit te voeren naar alternatieve locaties, differentiële herstelbewerkingen, bestands- en bestandsgroepherstelbewerkingen en differentiële bestands- en bestandsgroepherstelbewerkingen van gegevens in volledige tekst. Daarnaast kan RESTORE alleen volledige tekstbestanden herstellen, evenals met databasegegevens.

Opmerking

Catalogussen met volledige tekst die zijn geïmporteerd uit SQL Server 2005 (9.x) worden nog steeds behandeld als databasebestanden. Hiervoor blijft de procedure sql Server 2005 (9.x) voor het maken van back-ups van volledige-tekstcatalogussen van toepassing, behalve dat het onderbreken en hervatten van de back-upbewerking niet meer nodig is. Zie Back-ups maken en Full-Text catalogi herstellen voor meer informatie.

Herstellen naar SQL Server 2022 en de functie voor automatisch verwijderen

Wanneer u een database herstelt naar SQL Server 2022 (16.x) uit een eerdere versie, wordt u aangeraden deze uit te voeren sp_updatestats op de database, waarbij u de juiste metagegevens instelt voor de functie voor automatisch verwijderen van statistieken. Zie de optie voor automatisch verwijderen van statistieken voor meer informatie.

Big Data-clusters van SQL Server

Voor bepaalde bewerkingen, waaronder het configureren van serverinstellingen (instantieniveau) of het handmatig toevoegen van een database aan een beschikbaarheidsgroep, is een verbinding met het SQL Server-exemplaar vereist. Bewerkingen zoals sp_configure, RESTORE DATABASEof een DDL-opdracht in een database die deel uitmaakt van een beschikbaarheidsgroep, vereisen een verbinding met het SQL Server-exemplaar. Een big data-cluster bevat standaard geen eindpunt dat een verbinding met het exemplaar mogelijk maakt. U moet dit eindpunt handmatig beschikbaar maken.

Zie Verbinding maken met databases op de primaire replica voor instructies.

Metagegevens

SQL Server bevat back-up- en herstelgeschiedenistabellen die de back-up- en herstelactiviteit voor elk serverexemplaren bijhouden. Wanneer een herstelbewerking wordt uitgevoerd, worden de back-upgeschiedenistabellen ook gewijzigd. Zie Back-upgeschiedenis en headerinformatie voor informatie over deze tabellen.

Impact van VERVANGEN-optie

REPLACE moet zelden en pas na zorgvuldige overweging worden gebruikt. Herstellen voorkomt normaal gesproken dat een database per ongeluk wordt overschreven met een andere database. Als de database die is opgegeven in een RESTORE-instructie al bestaat op de huidige server en de opgegeven GUID van de databasefamilie verschilt van de GUID van de databasefamilie die is vastgelegd in de back-upset, wordt de database niet hersteld. Dit is een belangrijke bescherming.

De optie REPLACE overschrijft verschillende belangrijke veiligheidscontroles die normaal worden hersteld. De genegeerde controles zijn als volgt:

  • Herstellen via een bestaande database met een back-up van een andere database.

    Met de optie VERVANGEN kunt u met herstellen een bestaande database overschrijven met elke database die zich in de back-upset bevindt, zelfs als de opgegeven databasenaam verschilt van de databasenaam die is vastgelegd in de back-upset. Dit kan leiden tot het per ongeluk overschrijven van een database door een andere database.

  • Herstellen via een database met behulp van het volledige of bulksgewijs vastgelegde herstelmodel waarbij er geen back-up van tail-log is gemaakt en de STOPAT optie niet wordt gebruikt.

    Met de optie REPLACE kunt u vastgelegde werkzaamheden kwijtraken, omdat er geen back-up is gemaakt van het logboek dat het meest recent is geschreven.

  • Bestaande bestanden overschrijven.

    Een fout kan bijvoorbeeld het overschrijven van bestanden van het verkeerde type toestaan, zoals .xls bestanden of die worden gebruikt door een andere database die niet online is. Willekeurig gegevensverlies is mogelijk als bestaande bestanden worden overschreven, hoewel de herstelde database is voltooid.

Een herstelbewerking opnieuw uitvoeren

Het ongedaan maken van de effecten van een herstelbewerking is niet mogelijk; U kunt echter de effecten van het kopiëren en rollforward van de gegevens ontzegen door per bestand te beginnen. Als u opnieuw wilt beginnen, herstelt u het gewenste bestand en voert u rollforward opnieuw uit. Als u bijvoorbeeld per ongeluk te veel logboekback-ups hebt hersteld en het beoogde stoppunt hebt overschreden, moet u de reeks opnieuw starten.

Een herstelvolgorde kan worden afgebroken en opnieuw worden gestart door de volledige inhoud van de betrokken bestanden te herstellen.

Een database herstellen naar een momentopname van een database

Een databasebewerking herstellen (opgegeven met behulp van de optie DATABASE_SNAPSHOT) neemt een volledige brondatabase terug in de tijd door deze terug te zetten naar het tijdstip van een momentopname van een database, dat wil gezegd, waarbij de brondatabase wordt overschreven met gegevens vanaf het tijdstip dat in de opgegeven momentopname van de database wordt bewaard. Alleen de momentopname waarnaar u terugdraait, kan momenteel bestaan. Met de herstelbewerking wordt vervolgens het logboek opnieuw opgebouwd (u kunt daarom niet later een herstelde database terugdraaien naar het punt van de gebruikersfout).

Gegevensverlies is beperkt tot updates van de database sinds het maken van de momentopname. De metagegevens van een teruggedraaide database zijn hetzelfde als de metagegevens op het moment van het maken van een momentopname. Als u echter terug gaat naar een momentopname, worden alle volledige tekstcatalogussen weggezakt.

Herstellen vanuit een momentopname van een database is niet bedoeld voor mediaherstel. In tegenstelling tot een normale back-upset is de momentopname van de database een onvolledige kopie van de databasebestanden. Als de database of de momentopname van de database beschadigd is, is het terugzetten van een momentopname waarschijnlijk onmogelijk. Bovendien, zelfs indien mogelijk, terugdraaien in het geval van beschadiging is het onwaarschijnlijk dat het probleem wordt opgelost.

Beperkingen voor het terugdraaien

Herstellen wordt niet ondersteund onder de volgende voorwaarden:

  • De brondatabase bevat alleen-lezen of gecomprimeerde bestandsgroepen.
  • Bestanden zijn offline die online waren toen de momentopname werd gemaakt.
  • Er bestaat momenteel meer dan één momentopname van de database.

Zie Een database terugzetten naar een momentopname van een database voor meer informatie.

Security

Een back-upbewerking kan eventueel wachtwoorden opgeven voor een mediaset, een back-upset of beide. Wanneer een wachtwoord is gedefinieerd voor een mediaset of back-upset, moet u het juiste wachtwoord of de juiste wachtwoorden opgeven in de instructie RESTORE. Deze wachtwoorden voorkomen niet-geautoriseerde herstelbewerkingen en niet-geautoriseerde toevoegbewerkingen van back-upsets aan media met behulp van SQL Server-hulpprogramma's. Met een wachtwoord beveiligde media kunnen echter worden overschreven door de optie FORMAT van de BACKUP-instructie.

Belangrijk

De beveiliging die door dit wachtwoord wordt geboden, is zwak. Het is bedoeld om een onjuiste herstelbewerking te voorkomen met behulp van SQL Server-hulpprogramma's door geautoriseerde of niet-geautoriseerde gebruikers. Het voorkomt niet dat de back-upgegevens op een andere wijze worden gelezen of dat het wachtwoord wordt vervangen. Deze functie wordt verwijderd in een toekomstige versie van SQL Server. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie. De aanbevolen procedure voor het beveiligen van back-ups is het opslaan van back-uptapes op een veilige locatie of een back-up maken van schijfbestanden die worden beveiligd door adequate toegangsbeheerlijsten (ACL's). De ACL's moeten worden ingesteld in de hoofdmap van de map waarin back-ups worden gemaakt.

Permissions

Als de database die wordt hersteld niet bestaat, moet de gebruiker machtigingen hebben CREATE DATABASE om RESTORE uit te voeren. Als de database bestaat, worden de machtigingen VOOR HERSTELLEN standaard ingesteld op leden van de sysadmin en dbcreator vaste serverfuncties en de eigenaar (dbo) van de database (voor de FROM DATABASE_SNAPSHOT optie bestaat de database altijd).

HERSTELmachtigingen worden gegeven aan rollen waarin lidmaatschapsgegevens altijd direct beschikbaar zijn voor de server. Omdat lidmaatschap van een vaste databaserol alleen kan worden gecontroleerd wanneer de database toegankelijk en onbeschadigd is, wat niet altijd het geval is wanneer RESTORE wordt uitgevoerd, hebben leden van de db_owner vaste databaserol geen MACHTIGINGEN VOOR HERSTELLEN.

Voorbeelden

In alle voorbeelden wordt ervan uitgegaan dat er een volledige databaseback-up is uitgevoerd.

De voorbeelden van RESTORE zijn onder andere:

Opmerking

Zie voor aanvullende voorbeelden de instructies voor herstellen die worden vermeld in overzicht van herstellen en herstellen.

Eén. Een volledige database herstellen

In het volgende voorbeeld wordt een volledige databaseback-up hersteld van het AdventureWorksBackups logische back-upapparaat. Zie Back-upapparaten voor een voorbeeld van het maken van dit apparaat.

RESTORE DATABASE AdventureWorks2022
  FROM AdventureWorks2022Backups;

Opmerking

Voor een database die gebruikmaakt van het volledige of bulksgewijs vastgelegde herstelmodel, vereist SQL Server in de meeste gevallen een back-up van het logboek voordat u de database herstelt. Zie Tail-Log Back-ups voor meer informatie.

[Top van voorbeelden]

B. Volledige en differentiële databaseback-ups herstellen

In het volgende voorbeeld wordt een volledige databaseback-up hersteld, gevolgd door een differentiële back-up van het Z:\SQLServerBackups\AdventureWorks2022.bak back-upapparaat, dat beide back-ups bevat. De volledige databaseback-up die moet worden hersteld, is de zesde back-upset op het apparaat (FILE = 6) en de differentiële databaseback-up is de negende back-up die is ingesteld op het apparaat (FILE = 9). Zodra de differentiële back-up is hersteld, wordt de database hersteld.

RESTORE DATABASE AdventureWorks2022
    FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2022.bak'
    WITH FILE = 6,
      NORECOVERY;
RESTORE DATABASE AdventureWorks2022
    FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2022.bak'
    WITH FILE = 9,
      RECOVERY;

[Top van voorbeelden]

C. Een database herstellen met de syntaxis RESTART

In het volgende voorbeeld wordt de RESTART optie gebruikt om een RESTORE bewerking die wordt onderbroken door een serverstroomstoring opnieuw op te starten.

-- This database RESTORE halted prematurely due to power failure.
RESTORE DATABASE AdventureWorks2022
    FROM AdventureWorksBackups;
-- Here is the RESTORE RESTART operation.
RESTORE DATABASE AdventureWorks2022
    FROM AdventureWorksBackups WITH RESTART;

[Top van voorbeelden]

D. Een database herstellen en bestanden verplaatsen

In het volgende voorbeeld wordt een volledige database en transactielogboek hersteld en wordt de herstelde database verplaatst naar de C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data map.

RESTORE DATABASE AdventureWorks2022
    FROM AdventureWorksBackups
    WITH NORECOVERY,
      MOVE 'AdventureWorks2022_Data' TO
'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\NewAdvWorks.mdf',
      MOVE 'AdventureWorks2022_Log'
TO 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\NewAdvWorks.ldf';
RESTORE LOG AdventureWorks2022
    FROM AdventureWorksBackups
    WITH RECOVERY;

[Top van voorbeelden]

E. Een database kopiëren met BEHULP van BACKUP en RESTORE

In het volgende voorbeeld worden zowel de als RESTORE de BACKUP instructies gebruikt om een kopie van de AdventureWorks2022 database te maken. De MOVE instructie zorgt ervoor dat de gegevens en het logboekbestand worden hersteld naar de opgegeven locaties. De RESTORE FILELISTONLY instructie wordt gebruikt om het aantal en de namen van de bestanden in de database te bepalen die worden hersteld. De nieuwe kopie van de database heeft de naam TestDB. Zie RESTORE FILELISTONLY voor meer informatie.

BACKUP DATABASE AdventureWorks2022
    TO AdventureWorksBackups ;

RESTORE FILELISTONLY
    FROM AdventureWorksBackups ;

RESTORE DATABASE TestDB
    FROM AdventureWorksBackups
    WITH MOVE 'AdventureWorks2022_Data' TO 'C:\MySQLServer\testdb.mdf',
    MOVE 'AdventureWorks2022_Log' TO 'C:\MySQLServer\testdb.ldf';
GO

[Top van voorbeelden]

F. Herstellen naar een bepaald tijdstip met BEHULP van STOPAT

In het volgende voorbeeld wordt de status van 12:00 AM een database hersteld vanaf aan April 15, 2020 en wordt een herstelbewerking met meerdere logboekback-ups weergegeven. Op het back-upapparaat AdventureWorksBackupsis de volledige databaseback-up die moet worden hersteld de derde back-upset op het apparaat (FILE = 3), de eerste logboekback-up de vierde back-upset (FILE = 4) en de tweede logboekback-up is de vijfde back-upset (FILE = 5).

RESTORE DATABASE AdventureWorks2022
    FROM AdventureWorksBackups
    WITH FILE = 3, NORECOVERY;

RESTORE LOG AdventureWorks2022
    FROM AdventureWorksBackups
    WITH FILE = 4, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';

RESTORE LOG AdventureWorks2022
    FROM AdventureWorksBackups
    WITH FILE = 5, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';
RESTORE DATABASE AdventureWorks2022 WITH RECOVERY;

[Top van voorbeelden]

G. Het transactielogboek herstellen naar een markering

In het volgende voorbeeld wordt het transactielogboek hersteld naar de markering in de gemarkeerde transactie met de naam ListPriceUpdate.

USE AdventureWorks2022;
GO
BEGIN TRANSACTION ListPriceUpdate
    WITH MARK 'UPDATE Product list prices';
GO

UPDATE Production.Product
    SET ListPrice = ListPrice * 1.10
    WHERE ProductNumber LIKE 'BK-%';
GO

COMMIT TRANSACTION ListPriceUpdate;
GO

-- Time passes. Regular database
-- and log backups are taken.
-- An error occurs in the database.
USE master;
GO

RESTORE DATABASE AdventureWorks2022
FROM AdventureWorksBackups
WITH FILE = 3, NORECOVERY;
GO

RESTORE LOG AdventureWorks2022
  FROM AdventureWorksBackups
    WITH FILE = 4,
    RECOVERY,
    STOPATMARK = 'UPDATE Product list prices';

[Top van voorbeelden]

H. Herstellen met tapesyntaxis

In het volgende voorbeeld wordt een volledige databaseback-up hersteld vanaf een TAPE back-upapparaat.

RESTORE DATABASE AdventureWorks2022
    FROM TAPE = '\\.\tape0';

[Top van voorbeelden]

I. Herstellen met behulp van de syntaxis VAN FILE en FILEGROUP

In het volgende voorbeeld wordt een database met de naam MyDatabase twee bestanden, één secundaire bestandsgroep en één transactielogboek hersteld. De database maakt gebruik van het volledige herstelmodel.

De databaseback-up is de negende back-upset in de mediaset op een logisch back-upapparaat met de naam MyDatabaseBackups. Vervolgens worden drie logboekback-ups, die zich in de volgende drie back-upsets (, en ) op het MyDatabaseBackups apparaat bevinden, hersteld met behulp van WITH NORECOVERY.121110 Nadat de laatste logboekback-up is hersteld, NORECOVERYwordt de database hersteld.

Opmerking

Herstel wordt uitgevoerd als een afzonderlijke stap om de mogelijkheid te verminderen dat u te vroeg herstelt, voordat alle logboekback-ups zijn hersteld. Zie Herstel- en hersteloverzicht (SQL Server) voor meer informatie over het herstelproces.

RESTORE DATABASEU ziet dat er twee typen FILE opties zijn. De FILE opties voorafgaand aan de naam van het back-upapparaat geven de namen van de logische bestandsnamen op van de databasebestanden die moeten worden hersteld vanuit de back-upset, FILE = 'MyDatabase_data_1'bijvoorbeeld. Deze back-upset is niet de eerste databaseback-up in de mediaset; daarom wordt de positie ervan in de mediaset aangegeven met behulp van de FILE optie in de WITH component. FILE = 9

RESTORE DATABASE MyDatabase
    FILE = 'MyDatabase_data_1',
    FILE = 'MyDatabase_data_2',
    FILEGROUP = 'new_customers'
    FROM MyDatabaseBackups
    WITH
      FILE = 9,
      NORECOVERY;
GO
-- Restore the log backups
RESTORE LOG MyDatabase
    FROM MyDatabaseBackups
    WITH FILE = 10,
      NORECOVERY;
GO
RESTORE LOG MyDatabase
    FROM MyDatabaseBackups
    WITH FILE = 11,
      NORECOVERY;
GO
RESTORE LOG MyDatabase
    FROM MyDatabaseBackups
    WITH FILE = 12,
      NORECOVERY;
GO
--Recover the database
RESTORE DATABASE MyDatabase WITH RECOVERY;
GO

[Top van voorbeelden]

J. Een momentopname van een database herstellen

In het volgende voorbeeld wordt een database teruggezet naar een momentopname van een database. In het voorbeeld wordt ervan uitgegaan dat er momenteel slechts één momentopname bestaat in de database. Zie Een momentopname van een database maken voor een voorbeeld van hoe u deze momentopname van de database maakt.

Opmerking

Als u een momentopname terugdraait, worden alle volledige tekstcatalogussen weggezakt.

USE master;
RESTORE DATABASE AdventureWorks2022 FROM DATABASE_SNAPSHOT = 'AdventureWorks_dbss1800';
GO

Zie Een database terugzetten naar een momentopname van een database voor meer informatie.

[Top van voorbeelden]

K. Herstellen vanuit de Microsoft Azure Blob-opslag

De drie onderstaande voorbeelden omvatten het gebruik van de Microsoft Azure-opslagservice. De naam van het opslagaccount is mystorageaccount. De container voor gegevensbestanden wordt aangeroepen myfirstcontainer. De container voor back-upbestanden wordt aangeroepen mysecondcontainer. Er is een opgeslagen toegangsbeleid gemaakt met lees-, schrijf-, verwijder- en lijstrechten voor elke container. SQL Server-referenties zijn gemaakt met Shared Access Signatures die zijn gekoppeld aan het opgeslagen toegangsbeleid. Zie SQL Server Backup and Restore with Microsoft Azure Blob Storage (BACK-up en herstel met Microsoft Azure Blob Storage) voor informatie over back-up en herstel van SQL Server met Microsoft Azure Blob Storage.

K1. Een volledige databaseback-up herstellen vanuit de Microsoft Azure-opslagservice
Een volledige back-up van Sales de database, die zich bevindt opmysecondcontainer, wordt hersteld naar myfirstcontainer. Sales bestaat momenteel niet op de server.

RESTORE DATABASE Sales
  FROM URL = 'https://mystorageaccount.blob.core.windows.net/mysecondcontainer/Sales.bak'
  WITH MOVE 'Sales_Data1' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_Data1.mdf',
  MOVE 'Sales_log' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_log.ldf',
  STATS = 10;

K2. Een volledige databaseback-up herstellen van de Microsoft Azure-opslagservice naar lokale opslag Een volledige back-up van Sales de database, die zich bevindt opmysecondcontainer, wordt hersteld naar de lokale opslag. Sales bestaat momenteel niet op de server.

RESTORE DATABASE Sales
  FROM URL = 'https://mystorageaccount.blob.core.windows.net/mysecondcontainer/Sales.bak'
  WITH MOVE 'Sales_Data1' to 'H:\DATA\Sales_Data1.mdf',
  MOVE 'Sales_log' to 'O:\LOG\Sales_log.ldf',
  STATS = 10;

K3. Een volledige databaseback-up herstellen van lokale opslag naar de Microsoft Azure-opslagservice

RESTORE DATABASE Sales
  FROM DISK = 'E:\BAK\Sales.bak'
  WITH MOVE 'Sales_Data1' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_Data1.mdf',
  MOVE 'Sales_log' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_log.ldf',
  STATS = 10;

L. Herstellen vanuit back-up van momentopname

Geïntroduceerd in SQL Server 2022 (16.x). Zie Een back-up van een Transact-SQL momentopname maken voor meer informatie.

L1. Een volledige back-up herstellen

RESTORE DATABASE Sales
  FROM DISK = 'D:\MSSQL\Backup\SalesSnapshotFull.bkm'
  WITH METADATA_ONLY;

L2. Een back-up herstellen en een transactielogboek toepassen

RESTORE DATABASE Sales
  FROM DISK = 'D:\MSSQL\Backup\SalesSnapshotFull.bkm'
  WITH METADATA_ONLY,
  NORECOVERY;

RESTORE LOG Sales
  FROM DISK = 'D:\MSSQL\Backup\SalesLog.trn'
  WITH RECOVERY;

L3. Herstellen vanuit een back-up van een momentopname en database- en logboekbestanden op een nieuwe locatie plaatsen

RESTORE DATABASE Sales
FROM DISK = 'D:\MSSQL\Backup\SalesSnapshotFull.bkm'
WITH METADATA_ONLY,
    MOVE Sales_Data TO 'D:\MSSQL\Sales.mdf',
    MOVE Sales_Log TO 'D:\MSSQL\Sales_log.ldf';

[Top van voorbeelden]

Volgende stappen

* SQL Managed Instance *

 

Azure SQL Managed Instance (een beheerde database-instantie van Azure)

Met deze opdracht kunt u een volledige database herstellen vanuit een volledige databaseback-up (een volledige herstelbewerking) vanuit een Azure Blob Storage-account.

Zie voor andere ondersteunde RESTORE-opdrachten:

Belangrijk

Als u automatische back-ups van SQL Managed Instance wilt herstellen, raadpleegt u SQL Database Restore.

Syntaxis

--To Restore an Entire Database from a Full database backup (a Complete Restore):
RESTORE DATABASE { database_name | @database_name_var }
 FROM URL = { 'physical_device_name' | @physical_device_name_var } [ ,...n ]
[;]

Arguments

DATABASE

Hiermee geeft u de doeldatabase.

VAN URL

Hiermee geeft u een of meer back-upapparaten op die worden geplaatst op URL's die worden gebruikt voor de herstelbewerking. De URL-indeling wordt gebruikt voor het herstellen van back-ups van de Microsoft Azure-opslagservice.

Belangrijk

Als u wilt herstellen vanaf meerdere apparaten wanneer u de URL herstelt, moet u SAS-tokens (Shared Access Signature) gebruiken. Zie SQL Server Backup to URL en Vereenvoudig het maken van SQL-referenties met SAS-tokens (Shared Access Signature) in Azure Storage met PowerShell voor voorbeelden van het maken van een Shared Access Signature-handtekening.

n Is een tijdelijke aanduiding die aangeeft dat maximaal 64 back-upapparaten kunnen worden opgegeven in een door komma's gescheiden lijst.

Opmerkingen

Als vereiste moet u een referentie maken met de naam die overeenkomt met de URL van het blob-opslagaccount en Shared Access Signature als geheim geplaatst. Met de opdracht RESTORE worden referenties opgezoekt met behulp van de BLOB Storage-URL om de informatie te vinden die nodig is om het back-upapparaat te lezen.

DE HERSTELbewerking is asynchroon. De herstelbewerking wordt voortgezet, zelfs als de clientverbinding wordt verbroken. Als de verbinding is verbroken, kunt u sys.dm_operation_status weergave controleren op de status van een herstelbewerking (evenals voor CREATE- en DROP-database).

De volgende databaseopties worden ingesteld/overschreven en kunnen later niet meer worden gewijzigd:

  • NEW_BROKER (als broker niet is ingeschakeld in .bak bestand)
  • ENABLE_BROKER (als broker niet is ingeschakeld in .bak bestand)
  • AUTO_CLOSE=UIT (als een database in .bak bestand AUTO_CLOSE=AAN heeft)
  • HERSTEL VOLLEDIG (als een database in .bak bestand SIMPLE of BULK_LOGGED herstelmodel heeft)
  • Voor geheugen geoptimaliseerde bestandsgroep wordt toegevoegd en XTP genoemd als deze zich niet in het bronbestand .bak bevindt. De naam van een bestaande voor geheugen geoptimaliseerde bestandsgroep wordt gewijzigd in XTP
  • SINGLE_USER en RESTRICTED_USER opties worden geconverteerd naar MULTI_USER

Beperkingen - SQL Managed Instance

Deze beperkingen zijn van toepassing:

  • . BAK-bestanden met meerdere back-upsets kunnen niet worden hersteld.
  • . BAK-bestanden met meerdere logboekbestanden kunnen niet worden hersteld.
  • Herstellen mislukt als .bak FILESTREAM-gegevens bevat.
  • Back-ups met databases met actieve in-memory objecten kunnen niet worden hersteld naar een prestatielaag algemeen gebruik.
  • Back-ups met databases in de modus Alleen-lezen kunnen momenteel niet worden hersteld.

Zie Azure SQL Managed Instance voor meer informatie

Een versleutelde database herstellen

Als u een database wilt herstellen die is versleuteld, moet u toegang hebben tot het certificaat of de asymmetrische sleutel die is gebruikt om de database te versleutelen. Zonder het certificaat of de asymmetrische sleutel kan de database niet worden hersteld. Als gevolg hiervan moet het certificaat dat wordt gebruikt voor het versleutelen van de databaseversleutelingssleutel behouden zolang de back-up nodig is. Zie SQL Server-certificaten en asymmetrische sleutels voor meer informatie.

Permissions

De gebruiker moet machtigingen hebben CREATE DATABASE om RESTORE uit te kunnen voeren.

CREATE LOGIN mylogin WITH PASSWORD = 'Very Strong Pwd123!';
GRANT CREATE ANY DATABASE TO [mylogin];

HERSTELmachtigingen worden gegeven aan rollen waarin lidmaatschapsgegevens altijd direct beschikbaar zijn voor de server. Omdat lidmaatschap van een vaste databaserol alleen kan worden gecontroleerd wanneer de database toegankelijk en onbeschadigd is, wat niet altijd het geval is wanneer RESTORE wordt uitgevoerd, hebben leden van de db_owner vaste databaserol geen MACHTIGINGEN VOOR HERSTELLEN.

Voorbeelden

In de volgende voorbeelden wordt een back-up van de database alleen vanuit de URL hersteld, inclusief het maken van een referentie.

Eén. Database herstellen vanaf vier back-upapparaten

-- Create credential
CREATE CREDENTIAL [https://mybackups.blob.core.windows.net/wide-world-importers]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
      SECRET = 'sv=2017-11-09&ss=bq&srt=sco&sp=rl&se=2022-06-19T22:41:07Z&st=2018-06-01T14:41:07Z&spr=https&sig=s7wddcf0w%3D';
GO
-- Restore database
RESTORE DATABASE WideWorldImportersStandard
FROM URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/00-WideWorldImporters-Standard.bak',
URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/01-WideWorldImporters-Standard.bak',
URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/02-WideWorldImporters-Standard.bak',
URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/03-WideWorldImporters-Standard.bak'

De volgende fout wordt weergegeven als de database al bestaat: Msg 1801, Level 16, State 1, Line 9 Database 'WideWorldImportersStandard' already exists. Choose a different database name.

B. Database herstellen die is opgegeven via variabele

DECLARE @db_name sysname = 'WideWorldImportersStandard';
DECLARE @url nvarchar(400) = N'https://mybackups.blob.core.windows.net/wide-world-importers/WideWorldImporters-Standard.bak';

RESTORE DATABASE @db_name
FROM URL = @url

C. Voortgang van herstelinstructie bijhouden

SELECT query = a.text, start_time, percent_complete,
    eta = dateadd(second,estimated_completion_time/1000, getdate())
FROM sys.dm_exec_requests r
    CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) a
WHERE r.command = 'RESTORE DATABASE'

Opmerking

In deze weergave worden waarschijnlijk twee herstelaanvragen weergegeven. Een is de oorspronkelijke RESTORE-instructie die door de client wordt verzonden en de andere is de achtergrond RESTORE-instructie die wordt uitgevoerd, zelfs als de clientverbinding mislukt.

* Analyse
PlatformSysteem (PDW) *

 

Analyseplatformsysteem

Hiermee herstelt u een PDW-gebruikersdatabase (Analytics Platform System) van een databaseback-up naar een PDW-apparaat (Analytics Platform System). De database wordt hersteld vanuit een back-up die eerder is gemaakt door de OPDRACHT BACKUP DATABASE van Analytics Platform System (PDW) - Analytics Platform System . Gebruik de back-up- en herstelbewerkingen om een noodherstelplan te maken of om databases van het ene apparaat naar het andere te verplaatsen.

Opmerking

Het herstellen van de master systeemdatabase omvat het herstellen van aanmeldingsgegevens van het apparaat. Als u de master database wilt herstellen, gebruikt u de pagina Basisdatabase herstellen in het hulpprogramma Configuration Manager . Een beheerder met toegang tot het beheerknooppunt kan deze bewerking uitvoeren. Zie Back-up en herstel in de productdocumentatie van Analytics Platform System (PDW)voor meer informatie over pdw-databaseback-ups (Analytics Platform System).

Syntaxis

-- Restore the master database
-- Use the Configuration Manager tool.

Restore a full user database backup.
RESTORE DATABASE database_name
    FROM DISK = '\\UNC_path\full_backup_directory'
[;]

--Restore a full user database backup and then a differential backup.
RESTORE DATABASE database_name
    FROM DISK = '\\UNC_path\differential_backup_directory'
    WITH [ ( ] BASE = '\\UNC_path\full_backup_directory' [ ) ]
[;]

--Restore header information for a full or differential user database backup.
RESTORE HEADERONLY
    FROM DISK = '\\UNC_path\backup_directory'
[;]

Arguments

DATABASE herstellen database_name

Hiermee geeft u een gebruikersdatabase terug naar een database met de naam database_name. De herstelde database kan een andere naam hebben dan de brondatabase waarvan een back-up is gemaakt. database_name kan niet al bestaan als een database op het doelapparaat. Zie 'Object Naming Rules' in de productdocumentatie van het Analytics Platform System (PDW) voor meer informatie over toegestane databasenamen.

Als u een gebruikersdatabase herstelt, herstelt u een volledige databaseback-up en herstelt u desgewenst een differentiële back-up naar het apparaat. Een herstel van een gebruikersdatabase omvat het herstellen van databasegebruikers en databaserollen.

FROM DISK = '\\UNC_path backup_directory\'

Het netwerkpad en de map waaruit PDW (Analytics Platform System) de back-upbestanden herstelt. BIJVOORBEELD: FROM DISK = '\\xxx.xxx.xxx.xxx\backups\2012\Monthly\08.2012.Mybackup'.

backup_directory Hiermee geeft u de naam van een map die de volledige of differentiële back-up bevat. U kunt bijvoorbeeld een RESTORE HEADERONLY-bewerking uitvoeren op een volledige of differentiële back-up.

full_backup_directory Hiermee geeft u de naam van een map die de volledige back-up bevat.

differential_backup_directory Hiermee geeft u de naam van de map die de differentiële back-up bevat.

  • Het pad en de back-upmap moeten al bestaan en moeten worden opgegeven als een volledig gekwalificeerd UNC-pad (Universal Naming Convention).
  • Het pad naar de back-upmap kan geen lokaal pad zijn en kan geen locatie zijn op een van de knooppunten van het PDW-apparaat (Analytics Platform System).
  • De maximale lengte van het UNC-pad en de naam van de back-upmap is 200 tekens.
  • De server of host moet worden opgegeven als EEN IP-adres.

HEADERONLY HERSTELLEN

Hiermee geeft u alleen de headergegevens voor een back-up van de gebruikersdatabase op. De koptekst bevat onder andere de tekstbeschrijving van de back-up en de naam van de back-up. De back-upnaam hoeft niet hetzelfde te zijn als de naam van de map waarin de back-upbestanden worden opgeslagen.

RESULTATEN VAN RESTORE HEADERONLY worden gepatroont na de RESULTATEN VAN DE SQL Server RESTORE RESTORE HEADERONLY. Het resultaat heeft meer dan 50 kolommen, die niet allemaal worden gebruikt door Analytics Platform System (PDW). Zie RESTORE HEADERONLY voor een beschrijving van de kolommen in de RESULTATEN VAN SQL Server RESTORE RESTORE HEADERONLY.

Permissions

Hiervoor is de CREATE ANY DATABASE machtiging vereist.

Vereist een Windows-account met machtigingen voor toegang tot en lees vanuit de back-upmap. U moet ook de Windows-accountnaam en het wachtwoord opslaan in Analytics Platform System (PDW).

Foutafhandeling

De opdracht RESTORE DATABASE resulteert in fouten onder de volgende voorwaarden:

  • De naam van de database die moet worden hersteld, bestaat al op het doelapparaat. U kunt dit voorkomen door een unieke databasenaam te kiezen of de bestaande database te verwijderen voordat u de herstelbewerking uitvoert.
  • Er is een ongeldige set back-upbestanden in de back-upmap.
  • De aanmeldingsmachtigingen zijn niet voldoende om een database te herstellen.
  • Analytics Platform System (PDW) beschikt niet over de juiste machtigingen voor de netwerklocatie waar de back-upbestanden zich bevinden.
  • De netwerklocatie voor de back-upmap bestaat niet of is niet beschikbaar.
  • Er is onvoldoende schijfruimte op de rekenknooppunten of het besturingsknooppunt. PdW (Analytics Platform System) bevestigt niet dat er voldoende schijfruimte aanwezig is op het apparaat voordat de herstelbewerking wordt gestart. Daarom is het mogelijk om een fout met onvoldoende schijfruimte te genereren tijdens het uitvoeren van de INSTRUCTIE RESTORE DATABASE. Wanneer er onvoldoende schijfruimte is, wordt het herstel teruggedraaid door Analytics Platform System (PDW).
  • Het doelapparaat waarop de database wordt hersteld, heeft minder rekenknooppunten dan het bronapparaat waarvan een back-up van de database is gemaakt.
  • Het herstellen van de database wordt geprobeerd vanuit een transactie.

Opmerkingen

Met PDW (Analytics Platform System) wordt het succes van databaseherstel bijgehouden. Voordat u een back-up van een differentiële database herstelt, controleert Analytics Platform System (PDW) of het volledige herstel van de database is voltooid.

Na een herstel heeft de gebruikersdatabase databasecompatibiliteitsniveau 120. Dit geldt voor alle databases, ongeacht het oorspronkelijke compatibiliteitsniveau.

Herstellen naar een apparaat met een groter aantal rekenknooppunten

Voer DBCC SHRINKLOG (Azure Synapse Analytics) uit nadat u een database hebt hersteld van een kleiner naar groter apparaat, omdat herdistributie het transactielogboek vergroot.

Als u een back-up herstelt naar een apparaat met een groter aantal rekenknooppunten, neemt de toegewezen databasegrootte toe in verhouding tot het aantal rekenknooppunten.

Wanneer u bijvoorbeeld een database van 60 GB herstelt van een apparaat met 2 knooppunten (30 GB per knooppunt) naar een apparaat met 6 knooppunten, maakt Analytics Platform System (PDW) een database van 180 GB (6 knooppunten met 30 GB per knooppunt) op het apparaat met 6 knooppunten. Met PDW (Analytics Platform System) wordt de database in eerste instantie hersteld naar 2 knooppunten, zodat deze overeenkomt met de bronconfiguratie. Vervolgens worden de gegevens opnieuw gedistribueerd naar alle 6 knooppunten.

Na de herdistributie bevat elk rekenknooppunt minder werkelijke gegevens en meer vrije ruimte dan elk rekenknooppunt op het kleinere bronapparaat. Gebruik de extra ruimte om meer gegevens toe te voegen aan de database. Als de herstelde database groter is dan u nodig hebt, kunt u ALTER DATABASE - PDW gebruiken om de bestandsgrootten van de database te verkleinen.

Beperkingen en beperkingen

Voor deze beperkingen en beperkingen is het bronapparaat het apparaat van waaruit de databaseback-up is gemaakt en het doelapparaat het apparaat waarop de database wordt hersteld.

  • Als u een database herstelt, worden statistieken niet automatisch opnieuw opgebouwd.
  • Er kan op elk gewenst moment slechts één RESTORE DATABASE- of BACKUP DATABASE-instructie worden uitgevoerd op het apparaat. Als er gelijktijdig meerdere back-up- en herstelinstructies worden verzonden, plaatst het apparaat deze in een wachtrij en verwerkt deze één voor één.
  • U kunt alleen een databaseback-up herstellen naar een PDW-doelapparaat (Analytics Platform System) met hetzelfde aantal of meer rekenknooppunten dan het bronapparaat. Het doelapparaat mag niet minder rekenknooppunten hebben dan het bronapparaat.
  • U kunt geen back-up herstellen die is gemaakt op een apparaat met SQL Server 2012 PDW-hardware naar een apparaat met SQL Server 2008 R2-hardware. Dit geldt zelfs als het apparaat oorspronkelijk is gekocht met de SQL Server 2008 R2 PDW-hardware en nu SQL Server 2012 PDW-software uitvoert.

Vergrendeling

Neemt een exclusieve vergrendeling op het DATABASE-object.

Voorbeelden

Eén. Voorbeelden van eenvoudige HERSTELbewerkingen

In het volgende voorbeeld wordt een volledige back-up naar de SalesInvoices2013 database hersteld. De back-upbestanden worden opgeslagen in de \\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full map. De SalesInvoices2013 database kan niet al bestaan op het doelapparaat of deze opdracht mislukt met een fout.

RESTORE DATABASE SalesInvoices2013
FROM DISK = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full';

B. Een volledige en differentiële back-up herstellen

In het volgende voorbeeld wordt een volledige en vervolgens een differentiële back-up naar de SalesInvoices2013 database hersteld

De volledige back-up van de database wordt hersteld vanuit de volledige back-up die is opgeslagen in de \\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full map. Als het herstellen is voltooid, wordt de differentiële back-up hersteld naar de SalesInvoices2013 database. De differentiële back-up wordt opgeslagen in de \\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Diff map.

RESTORE DATABASE SalesInvoices2013
    FROM DISK = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Diff'
    WITH BASE = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full'
[;]

C. De back-upheader herstellen

In dit voorbeeld worden de headergegevens voor databaseback-up \\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Fullhersteld. De opdracht resulteert in één rij met informatie voor de Invoices2013Full back-up.

RESTORE HEADERONLY
    FROM DISK = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full'
[;]

U kunt de headergegevens gebruiken om de inhoud van een back-up te controleren of om ervoor te zorgen dat het doelherstelapparaat compatibel is met het bronback-upapparaat voordat u de back-up probeert te herstellen.

Volgende stappen