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-
In dit artikel wordt beschreven hoe u een SQL Server-database herstelt naar een nieuwe locatie en eventueel de naam van de database in SQL Server wijzigt met behulp van SQL Server Management Studio (SSMS) of Transact-SQL. U kunt een database verplaatsen naar een nieuw mappad of een kopie van een database maken op hetzelfde serverexemplaar of een ander serverexemplaar.
Beperkingen
- De systeembeheerder die een volledige databaseback-up herstelt, moet de enige persoon zijn die momenteel de database gebruikt om te worden hersteld.
Voorwaarden
Wanneer u het volledige of bulksgewijs vastgelegde herstelmodel gebruikt voordat u een database kunt herstellen, moet u een back-up maken van het actieve transactielogboek. Zie Een back-up maken van een transactielogboek voor meer informatie.
Als u een versleutelde database wilt herstellen, moet u toegang hebben tot het certificaat of de asymmetrische sleutel die wordt gebruikt om de database te versleutelen. Zonder dat certificaat of asymmetrische sleutel kunt u de database niet herstellen. U moet het certificaat dat wordt gebruikt voor het versleutelen van de databaseversleutelingssleutel behouden zolang u de back-up nodig hebt. Zie SQL Server-certificaten en asymmetrische sleutels voor meer informatie.
Aanbevelingen
Zie Databases kopiëren met back-up en herstel voor andere overwegingen voor het verplaatsen van een database.
Als u een SQL Server 2005 (9.x) of een hogere database herstelt naar SQL Server, 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
upgrade_optionservereigenschap. Als de upgradeoptie is ingesteld op importeren (upgrade_option = 2) of herbouwen (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 10 keer langer duren. Wanneer de upgradeoptie is ingesteld om te importeren, worden de bijbehorende indexen voor volledige tekst opnieuw opgebouwd als er geen volledige tekstcatalogus beschikbaar is. Als u de instelling van deupgrade_optionservereigenschap wilt wijzigen, gebruikt u sp_fulltext_service.
Veiligheid
Voor beveiligingsdoeleinden raden we u niet aan om databases vanuit onbekende of niet-vertrouwde bronnen te koppelen of te herstellen. Dergelijke databases kunnen schadelijke code bevatten die onbedoelde Transact-SQL code kan uitvoeren of fouten kan veroorzaken door het schema of de structuur van de fysieke database te wijzigen. Voordat u een database van een onbekende of niet-vertrouwde bron gebruikt, voert u DBCC CHECKDB- uit op de database op een niet-productieserver en onderzoekt u ook de code, zoals opgeslagen procedures of andere door de gebruiker gedefinieerde code, in de database.
Machtigingen
Als de database die wordt hersteld niet bestaat, moet de gebruiker machtigingen hebben CREATE DATABASE om deze uit te kunnen voeren RESTORE. Als de database bestaat, RESTORE zijn machtigingen standaard ingesteld op leden van de vaste serverfuncties sysadmin en dbcreator en de eigenaar (dbo) van de database.
RESTORE machtigingen worden verleend 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 deze wordt uitgevoerd, hebben RESTORE leden van de db_owner vaste databaserol geen machtigingen.
Een database herstellen naar een nieuwe locatie en eventueel de naam van de database wijzigen met behulp van SSMS
Maak verbinding met het juiste exemplaar van de SQL Server Database Engine en selecteer vervolgens in Objectverkenner de servernaam om de serverstructuur uit te vouwen.
Klik met de rechtermuisknop op Databases en selecteer Database herstellen.... Het dialoogvenster Database herstellen wordt geopend.
Geef op de pagina Algemeen in de sectie Bron de bron en locatie op van de back-upsets die u wilt herstellen. Selecteer een van de volgende opties:
Database
Selecteer de database die u wilt herstellen in de vervolgkeuzelijst. De lijst bevat alleen databases waarvan een back-up is gemaakt volgens de
msdbback-upgeschiedenis.Notitie
Als de back-up wordt gemaakt op basis van een andere server, beschikt de doelserver niet over de back-upgeschiedenisgegevens voor de opgegeven database. Selecteer in dit geval Apparaat om handmatig het bestand of apparaat op te geven dat moet worden hersteld.
Apparaat
Selecteer de bladerknop (...) om het dialoogvenster Back-upapparaten selecteren te openen . Selecteer in het vak Back-upmediatype een van de vermelde apparaattypen. Als u een of meer apparaten voor het Back-upmedia vak wilt selecteren, selecteert u Toevoegen.
Nadat u de apparaten hebt toegevoegd die u wilt toevoegen aan de lijst Met back-upmedia , selecteert u OK om terug te keren naar de pagina Algemeen .
Selecteer in de lijst Bron: Apparaat: Database de naam van de database die moet worden hersteld.
Notitie
Deze lijst is alleen beschikbaar wanneer het apparaat is geselecteerd. Alleen databases met back-ups op het geselecteerde apparaat zijn beschikbaar.
In de sectie Doel wordt het vak Database automatisch ingevuld met de naam van de database die moet worden hersteld. Als u de naam van de database wilt wijzigen, voert u de nieuwe naam in het vak Database in.
Laat in het vak Herstellen naar de standaardwaarde staan voor de laatste back-up of selecteer Tijdlijn om het dialoogvenster Back-uptijdlijn te openen om handmatig een tijdstip te selecteren om de herstelactie te stoppen. Zie de tijdlijn voor back-ups voor meer informatie over het toewijzen van een specifiek tijdstip.
Selecteer in de Back-upsets om raster te herstellen de back-ups die u wilt herstellen. In dit raster worden de back-ups weergegeven die beschikbaar zijn voor de opgegeven locatie. Standaard wordt een herstelplan voorgesteld. Als u het voorgestelde herstelplan wilt overschrijven, kunt u de selecties in het raster wijzigen. Back-ups die afhankelijk zijn van het herstel van een eerdere back-up, worden automatisch gedeselecteerd wanneer de eerdere back-up wordt gedeselecteerd.
Zie Database herstellen (pagina Algemeen) voor informatie over de kolommen in de back-upsets om het raster te herstellen.
Als u de nieuwe locatie van de databasebestanden wilt opgeven, selecteert u de pagina Bestanden en selecteert u vervolgens Alle bestanden verplaatsen naar map. Geef een nieuwe locatie op voor de map Gegevensbestand en logboekbestandsmap. Voor meer informatie over dit raster, zie Database (bestandenpagina) herstellen.
Pas de opties desgewenst aan op de pagina Opties . Zie Database herstellen (optiespagina)voor meer informatie over deze opties.
Een database herstellen naar een nieuwe locatie en eventueel de naam van de database wijzigen met behulp van T-SQL
U kunt eventueel de logische en fysieke namen van de bestanden in de back-upset bepalen die de volledige databaseback-up bevat die u wilt herstellen. Deze instructie toont de basissyntaxis voor het retourneren van een lijst met de database- en logboekbestanden in de back-upset:
RESTORE FILELISTONLY FROM backup_device WITH FILE = *backup_set_file_numberHier geeft backup_set_file_number de positie van de back-up in de mediaset aan. U kunt de positie van een back-upset verkrijgen met behulp van de instructie RESTORE HEADERONLY. Zie Een back-upset opgevenvoor meer informatie.
Deze instructie ondersteunt ook verschillende
WITHopties. Zie RESTORE FILELISTONLY voor meer informatie.Gebruik de instructie RESTORE DATABASE om de volledige databaseback-up te herstellen. Standaard worden gegevens- en logboekbestanden teruggezet naar hun oorspronkelijke locaties. Als u een database wilt verplaatsen, gebruikt u de
MOVEoptie om elk van de databasebestanden te verplaatsen en om conflicten met bestaande bestanden te voorkomen.
De basissyntaxis Transact-SQL voor het herstellen van de database naar een nieuwe locatie met een nieuwe naam is:
RESTORE DATABASE <new_database_name>
FROM <backup_device> [ , ...n ]
[ WITH
{
[ RECOVERY | NORECOVERY ]
[ , ] [ FILE = { <backup_set_file_number> | @backup_set_file_number } ]
[ , ] MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name' [ , ...n ]
} ]
[ ; ]
Notitie
Wanneer u zich voorbereidt om een database op een andere schijf te verplaatsen, moet u controleren of er voldoende ruimte beschikbaar is en mogelijke conflicten met bestaande bestanden identificeren. Deze verificatie omvat het gebruik van een RESTORE-instructie - VERIFYONLY-instructie waarmee dezelfde MOVE parameters worden opgegeven die u in uw RESTORE DATABASE instructie wilt gebruiken.
In de volgende informatie worden argumenten van deze RESTORE instructie beschreven die betrekking hebben op het herstellen van een database naar een nieuwe locatie. Zie RESTORE-instructies voor meer informatie over deze argumenten.
new_database_name
De nieuwe naam voor de database.
Notitie
Als u de database herstelt naar een ander serverexemplaren, kunt u de oorspronkelijke databasenaam gebruiken in plaats van een nieuwe naam.
backup_device [ , ... n ]
Hiermee geeft u een door komma's gescheiden lijst op van 1 tot 64 back-upapparaten van waaruit de databaseback-up moet worden hersteld. U kunt een fysiek back-upapparaat opgeven of u kunt een bijbehorend logisch back-upapparaat opgeven, als er een is gedefinieerd. Als u een fysiek back-upapparaat wilt opgeven, gebruikt u de DISK of TAPE optie:
{ DISK | TAPE } = physical_backup_device_name
Zie Back-upapparaten voor meer informatie.
{ HERSTEL | NORECOVERY }
Als de database gebruikmaakt van het volledige herstelmodel, moet u mogelijk back-ups van transactielogboeken toepassen nadat u de database hebt hersteld. Geef in dit geval de NORECOVERY optie op.
Gebruik anders de RECOVERY optie. Dit is de standaardinstelling.
FILE = { backup_set_file_number | @backup_set_file_number }
Identificeert de back-upset die moet worden hersteld. Een backup_set_file_number1 geeft bijvoorbeeld de eerste back-upset op het back-upmedium aan en een backup_set_file_number geeft 2 de tweede back-upset aan. U kunt de backup_set_file_number van een back-upset verkrijgen met behulp van de INSTRUCTIE RESTORE - HEADERONLY .
Wanneer deze optie niet is opgegeven, is de standaardinstelling het gebruik van de eerste back-upset op het back-upapparaat.
Zie RESTORE-argumenten (Transact-SQL)voor meer informatie.
VERPLAATS 'logical_file_name_in_backup' NAAR 'operating_system_file_name' [ , ... n ]
Hiermee geeft u op dat de gegevens of het logboekbestand dat is logical_file_name_in_backup opgegeven, moet worden hersteld naar de locatie die is opgegeven door operating_system_file_name. Geef een MOVE instructie op voor elk logisch bestand dat u wilt herstellen van de back-upset naar een nieuwe locatie.
| Optie | Beschrijving |
|---|---|
logical_file_name_in_backup |
Hiermee geeft u de logische naam van een gegevens- of logboekbestand in de back-upset. De naam van een logisch bestand van een gegevens- of logboekbestand in een back-upset komt overeen met de logische naam in de database toen de back-upset werd gemaakt. Opmerking: Als u een lijst met de logische bestanden uit de back-upset wilt ophalen, gebruikt u RESTORE-instructies - FILELISTONLY. |
operating_system_file_name |
Hiermee geeft u een nieuwe locatie voor het bestand opgegeven door logical_file_name_in_backup. Het bestand wordt teruggezet naar deze locatie.U kunt desgewenst operating_system_file_name een nieuwe bestandsnaam opgeven voor het herstelde bestand. Er is een nieuwe naam nodig als u een kopie van een bestaande database op hetzelfde serverexemplaar maakt. |
n |
Een tijdelijke aanduiding die aangeeft dat u aanvullende MOVE instructies kunt opgeven. |
Voorbeeld (Transact-SQL)
In dit voorbeeld wordt een nieuwe database gemaakt met de naam MyAdvWorks door een back-up van de AdventureWorks2022 voorbeelddatabase te herstellen, die twee bestanden bevat: AdventureWorks2022_Data en AdventureWorks2022_Log. Deze database maakt gebruik van het eenvoudige herstelmodel. De AdventureWorks2022 database bestaat al op het serverexemplaren, zodat de bestanden in de back-up moeten worden hersteld naar een nieuwe locatie. De RESTORE FILELISTONLY instructie wordt gebruikt om het aantal en de namen van de bestanden in de database te bepalen die worden hersteld. De database-back-up is de eerste back-upset op het back-up-apparaat.
Notitie
De voorbeelden van het maken van back-ups en het herstellen van het transactielogboek, inclusief herstel naar een bepaald tijdstip, gebruiken de MyAdvWorks_FullRM database die is gemaakt AdventureWorks2022op basis van, net zoals in het volgende MyAdvWorks voorbeeld. De resulterende MyAdvWorks_FullRM database moet echter worden gewijzigd om het volledige herstelmodel te kunnen gebruiken met behulp van de volgende Transact-SQL-instructie: ALTER DATABASE <database_name> SET RECOVERY FULL
USE master;
GO
-- First determine the number and names of the files in the backup.
-- AdventureWorks2022_Backup is the name of the backup device.
RESTORE FILELISTONLY
FROM AdventureWorks2022_Backup;
-- Restore the files for MyAdvWorks.
RESTORE DATABASE MyAdvWorks
FROM AdventureWorks2022_Backup
WITH RECOVERY,
MOVE 'AdventureWorks2022_Data' TO 'D:\MyData\MyAdvWorks_Data.mdf',
MOVE 'AdventureWorks2022_Log' TO 'F:\MyLog\MyAdvWorks_Log.ldf';
GO
Zie Een volledige databaseback-up maken voor een voorbeeld van het maken van een volledige databaseback-up van de AdventureWorks2022 database.
Gerelateerde taken
- Een volledige databaseback-up maken
- Een databaseback-up herstellen met behulp van SSMS
- Een back-up maken van een transactielogboek
- Een back-up van een transactielogboek herstellen (SQL Server)