Delen via


Een volledige databaseback-up maken

van toepassing op:SQL Server-

In dit artikel wordt beschreven hoe u een volledige databaseback-up maakt in SQL Server met behulp van SQL Server Management Studio, Transact-SQL of PowerShell.

Zie SQL Server Backup and Restore with Azure Blob Storage and SQL Server Backup to URLvoor meer informatie.

Beperkingen en beperkingen

  • De BACKUP-instructie is niet toegestaan in een expliciete of impliciete transactie.
  • Back-ups die zijn gemaakt door een recentere versie van SQL Server, kunnen niet worden hersteld in eerdere versies van SQL Server.

Zie Overzicht van back-ups (SQL Server) voor een overzicht van en een diepere duik in back-upconcepten en -taken voordat u verder gaat.

Aanbevelingen

  • Naarmate een database groter wordt, duurt het langer om volledige databaseback-ups te voltooien en is er meer opslagruimte nodig. Voor grote databases kunt u overwegen volledige databaseback-ups aan te vullen met een reeks differentiële databaseback-ups.
  • Maak een schatting van de grootte van een volledige databaseback-up met behulp van de sp_spaceused door het systeem opgeslagen procedure.
  • Bij elke geslaagde back-upbewerking wordt standaard een vermelding toegevoegd aan het SQL Server-foutenlogboek en in het gebeurtenislogboek van het systeem. Als u regelmatig een back-up maakt, worden succesberichten snel verzameld, wat resulteert in enorme foutenlogboeken, waardoor het vinden van andere berichten moeilijk is. In dergelijke gevallen kunt u deze back-uplogboekvermeldingen onderdrukken met behulp van traceringsvlag 3226 als geen van uw scripts afhankelijk is van deze vermeldingen. Zie traceringsvlagmen (Transact-SQL)voor meer informatie.

Veiligheid

BETROUWBAARHEID staat ingesteld op UIT op een databaseback-up. Zie ALTER DATABASE SET Options (Transact-SQL)voor informatie over het instellen van TRUSTWORTHY- op AAN.

Vanaf SQL Server 2012 (11.x) zijn de opties PASSWORD en MEDIAPASSWORD niet meer beschikbaar voor het maken van back-ups. U kunt nog steeds back-ups herstellen die zijn gemaakt met wachtwoorden.

Machtigingen

BACKUP DATABASE- en BACKUP LOG-machtigingen zijn standaard ingesteld op leden van de sysadmin vaste serverfunctie en de db_owner en db_backupoperator vaste databaserollen.

Eigendoms- en machtigingsproblemen in het fysieke bestand van het back-upapparaat kunnen een back-upbewerking verstoren. De SQL Server-service moet lezen en schrijven naar het apparaat. Het account waaronder de SQL Server-service wordt uitgevoerd, moet schrijfmachtigingen hebben voor het back-upapparaat. Echter, sp_addumpdevice, waarmee een vermelding voor een back-upapparaat in de systeemtabellen wordt toegevoegd, controleert geen machtigingen voor bestandstoegang. Problemen in het fysieke bestand van het back-upapparaat worden mogelijk pas weergegeven als de back-up wordt gebruikt of als er een herstelpoging is uitgevoerd.

SQL Server Management Studio gebruiken

Notitie

Wanneer u een back-uptaak opgeeft met behulp van SQL Server Management Studio, kunt u het bijbehorende Transact-SQL BACKUP- script genereren door op de knop Script te klikken en een scriptbestemming te selecteren.

  1. Nadat u verbinding hebt gemaakt met het juiste exemplaar van de Microsoft SQL Server Database Engine, vouwt u in Objectverkennerde serverstructuur uit.

  2. Vouw Databasesuit en selecteer een gebruikersdatabase of vouw Systeemdatabases uit en selecteer een systeemdatabase.

  3. Klik met de rechtermuisknop op de database waarvan u een back-up wilt maken, wijs takenaan en selecteer Back-up maken....

  4. In het dialoogvenster Back-up maken van database wordt de geselecteerde database weergegeven in de vervolgkeuzelijst (die u kunt wijzigen in een andere database op de server).

  5. Selecteer in de vervolgkeuzelijst back-uptype een back-uptype. De standaardwaarde is Volledige.

    Belangrijk

    U moet ten minste één volledige databaseback-up uitvoeren voordat u een differentiële of transactielogboekback-up kunt uitvoeren.

  6. Selecteer Databaseonder Back-uponderdeel.

  7. Controleer in de sectie Bestemming de standaardlocatie voor het back-upbestand (in de .. /mssql/data folder).

    U kunt de vervolgkeuzelijst Back-up naar gebruiken om een ander apparaat te selecteren. Selecteer toevoegen om back-upobjecten en of bestemmingen toe te voegen. U kunt de back-up set over meerdere bestanden spreiden voor een snellere back-upsnelheid.

    Als u een back-upbestemming wilt verwijderen, selecteert u deze en selecteert u Verwijderen. Als u de inhoud van een bestaande back-upbestemming wilt weergeven, selecteert u deze en selecteert u Inhoud.

  8. (optioneel) Bekijk de andere beschikbare instellingen onder de pagina's Mediaopties en Back-upopties.

    Zie voor meer informatie over de verschillende back-upopties pagina Algemeen, pagina Mediaoptiesen pagina Opties voor back-up.

  9. Selecteer OK- om de back-up te starten.

  10. Wanneer de back-up is voltooid, selecteert u OK om het dialoogvenster SQL Server Management Studio te sluiten.

Aanvullende informatie

  • Nadat u een volledige databaseback-up hebt gemaakt, kunt u een differentiële databaseback-up maken of een transactielogboekback-up.

  • (optioneel) U kunt het selectievakje back-up met alleen kopiëren inschakelen om een alleen-kopiëren back-up te maken. Een back-up met alleen kopiëren is een SQL Server-back-up die onafhankelijk is van de reeks conventionele SQL Server-back-ups. Zie Copy-Only Back-ups (SQL Server)voor meer informatie. Er is geen back-up met alleen kopiëren beschikbaar voor het differentiële back-uptype.

  • De optie Media overschrijven is uitgeschakeld op de pagina Mediaopties als u een back-up maakt van een URL.

Voorbeelden

Maak voor de volgende voorbeelden een testdatabase met de volgende Transact-SQL code:

USE [master]
GO

CREATE DATABASE [SQLTestDB]
GO

USE [SQLTestDB]
GO
CREATE TABLE SQLTest
   (
      ID INT NOT NULL PRIMARY KEY,
      c1 VARCHAR(100) NOT NULL,
      dt1 DATETIME NOT NULL DEFAULT getdate()
   );
GO

USE [SQLTestDB]
GO

INSERT INTO SQLTest (ID, c1) VALUES (1, 'test1')
INSERT INTO SQLTest (ID, c1) VALUES (2, 'test2')
INSERT INTO SQLTest (ID, c1) VALUES (3, 'test3')
INSERT INTO SQLTest (ID, c1) VALUES (4, 'test4')
INSERT INTO SQLTest (ID, c1) VALUES (5, 'test5')
GO

SELECT * FROM SQLTest
GO

Een. Volledige back-up naar schijf naar standaardlocatie

In dit voorbeeld wordt een back-up gemaakt van de SQLTestDB-database op de schijf op de standaardback-uplocatie.

  1. Nadat u verbinding hebt gemaakt met het juiste exemplaar van de Microsoft SQL Server Database Engine, vouwt u in Objectverkennerde serverstructuur uit.

  2. Vouw Databasesuit, klik met de rechtermuisknop op SQLTestDB, wijs Takenaan en selecteer Back-up....

  3. Selecteer OK-.

  4. Wanneer de back-up is voltooid, selecteert u OK om het dialoogvenster SQL Server Management Studio te sluiten.

SQL-back-up maken

B. Volledige back-up naar een schijf op een niet-standaardlocatie

In dit voorbeeld wordt een back-up gemaakt van de SQLTestDB-database op schijf op een locatie van uw keuze.

  1. Nadat u verbinding hebt gemaakt met het juiste exemplaar van de Microsoft SQL Server Database Engine, vouwt u in Objectverkennerde serverstructuur uit.

  2. Vouw Databasesuit, klik met de rechtermuisknop op SQLTestDB, wijs Takenaan en selecteer Back-up....

  3. Selecteer op de pagina Algemeen in de sectie BestemmingSchijf in de vervolgkeuzelijst bij Back-up maken naar:.

  4. Selecteer verwijderen totdat alle bestaande back-upbestanden zijn verwijderd.

  5. Selecteer toevoegen en het dialoogvenster Back-updoel selecteren wordt geopend.

  6. Voer een geldig pad en een geldige bestandsnaam in het tekstvak Bestandsnaam in en gebruik .bak als extensie om de classificatie van dit bestand te vereenvoudigen.

  7. Selecteer OK- en selecteer vervolgens OK opnieuw om de back-up te starten.

  8. Wanneer de back-up is voltooid, selecteert u OK om het dialoogvenster SQL Server Management Studio te sluiten.

DB-locatie wijzigen

C. Een versleutelde back-up maken

In dit voorbeeld wordt een back-up gemaakt van de SQLTestDB-database met versleuteling naar de standaardback-uplocatie.

  1. Nadat u verbinding hebt gemaakt met het juiste exemplaar van de Microsoft SQL Server Database Engine, vouwt u in Objectverkennerde serverstructuur uit.

  2. Vouw Databasesuit, vouw Systeemdatabasesuit, klik met de rechtermuisknop op masteren selecteer Nieuwe query om een queryvenster te openen met een verbinding met uw SQLTestDB-database.

  3. Voer de volgende opdrachten uit om een databasehoofdsleutel te maken en een certificaat in de master-database.

    -- Create the master key
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '23987hxJ#KL95234nl0zBe';  
    
    -- If the master key already exists, open it in the same session that you create the certificate (see next step)
    OPEN MASTER KEY DECRYPTION BY PASSWORD = '23987hxJ#KL95234nl0zBe'
    
    -- Create the certificate encrypted by the master key
    CREATE CERTIFICATE MyCertificate
    WITH SUBJECT = 'Backup Cert', EXPIRY_DATE = '20201031';  
    
  4. Klik in Objectverkennerin het knooppunt Databases met de rechtermuisknop op SQLTestDB, wijs Taken aan en selecteer Back Up....

  5. Selecteer op de pagina Mediaopties in de sectie Media overschrijvenBack-up maken van een nieuwe mediaset en wis alle bestaande back-upsets.

  6. Selecteer op de pagina Back-upopties in de sectie Versleuteling het selectievakje Back-up versleutelen.

  7. Selecteer de optie AES 256in de vervolgkeuzelijst Algoritme.

  8. Selecteer MyCertificatein de vervolgkeuzelijst van het Certificaat of Asymmetrische sleutel.

  9. Selecteer OK-.

Versleutelde back-up

D. Een back-up maken van Azure Blob Storage

In het voorbeeld wordt een volledige databaseback-up van SQLTestDB naar Azure Blob Storage gemaakt. In het voorbeeld wordt ervan uitgegaan dat u al een opslagaccount met een blobcontainer hebt. In het voorbeeld wordt een handtekening voor gedeelde toegang voor u gemaakt; dit voorbeeld mislukt als de container een bestaande Shared Access Signature heeft.

Als u geen Azure Blob Storage-container in een opslagaccount hebt, maakt u er een voordat u doorgaat. Zie Een opslagaccount voor algemeen gebruik maken en Een container maken.

  1. Nadat u verbinding hebt gemaakt met het juiste exemplaar van de Microsoft SQL Server Database Engine, vouwt u in Objectverkennerde serverstructuur uit.

  2. Vouw Databasesuit, klik met de rechtermuisknop op SQLTestDB, wijs Takenaan en selecteer Back-up maken....

  3. Selecteer op de pagina Algemeen, in de sectie Doel, de optie URL in de vervolgkeuzelijst Backup naar:.

  4. Selecteer toevoegen en het dialoogvenster Back-updoel selecteren wordt geopend.

  5. Als u de Azure Storage-container die u wilt gebruiken met SQL Server Management Studio eerder hebt geregistreerd, selecteert u deze. Selecteer anders Nieuwe container om een nieuwe container te registreren.

  6. Meld u aan bij uw account in het dialoogvenster Verbinding maken met een Microsoft-abonnement.

  7. In de vervolgkeuzelijst Selecteer opslagaccount, selecteer uw opslagaccount.

  8. In het vervolgkeuzetekstvak Blobcontainer selecteren, selecteert u uw blobcontainer.

  9. Selecteer in de vervolgkeuzelijst Verloopbeleid voor gedeeld toegangsbeleid een vervaldatum voor het gedeelde toegangsbeleid dat u in dit voorbeeld maakt.

  10. Selecteer Referentiegegevens maken om een gedeelde toegangshandtekening en referentiegegevens te genereren in SQL Server Management Studio.

  11. Selecteer OK sluit het dialoogvenster Verbinding maken met een Microsoft-abonnement.

  12. Wijzig in het tekstvak Back-upbestand de naam van het back-upbestand (optioneel).

  13. Selecteer OK om het dialoogvenster Selecteer een back-upbestemming te sluiten.

  14. Selecteer OK- om de back-up te starten.

  15. Wanneer de back-up is voltooid, selecteert u OK om het dialoogvenster SQL Server Management Studio te sluiten.

Notitie

Back-ups maken naar Azure Blob Storage wordt momenteel niet ondersteund met behulp van beheerde identiteiten.

Transact-SQL gebruiken

Maak een volledige databaseback-up door de BACKUP DATABASE instructie uit te voeren om de volledige databaseback-up te maken, waarbij u het volgende opgeeft:

  • De naam van de database waarvan een back-up moet worden gemaakt.
  • Het back-upapparaat waarin de volledige databaseback-up wordt geschreven.

De basissyntaxis Transact-SQL voor een volledige databaseback-up is:

BACKUP DATABASE database TO backup_device [ ,...n ] [ WITH with_options [ ,...o ] ] ;

Optie Beschrijving
database Is de database waarvan een back-up moet worden gemaakt.
backup_device [ ,...n ] Specificeert een lijst van 1 tot 64 back-upapparaten om te gebruiken voor de back-upbewerking. U kunt een fysiek back-upapparaat opgeven of u kunt een bijbehorend logisch back-upapparaat opgeven, indien al gedefinieerd. Als u een fysiek backupapparaat wilt opgeven, gebruikt u de optie: SCHIJF of TAPE.

{ SCHIJF | TAPE } =fysieke_backupapparaat_naam

Zie Back-upapparaten (SQL Server)voor meer informatie.
WITH with_options [ ,...o ] Wordt gebruikt om een of meer opties op te geven, o. Zie stap 2 voor informatie over een aantal basisopties.

Geef desgewenst een of meer MET opties op. Hier worden enkele eenvoudige MET opties beschreven. Zie BACKUP (Transact-SQL)voor meer informatie over alle MET opties.

Eenvoudig back-uppakket met opties:

  • { COMPRESSION | NO_COMPRESSION }: In SQL Server 2008 (10.0.x) Enterprise en hoger wordt opgegeven of back-upcompressie op deze back-up wordt uitgevoerd, waarmee de standaardinstelling op serverniveau wordt overschreven.
  • VERSLEUTELING (ALGORITME, SERVERCERTIFICAAT | ASYMMETRISCHE SLEUTEL): geef in SQL Server 2014 of hoger alleen het versleutelingsalgoritmen op dat moet worden gebruikt en geef het certificaat of de Asymmetrische sleutel op die moet worden gebruikt om de versleuteling te beveiligen.
  • DESCRIPTION= { 'text' | @text_variable }: hiermee geeft u de vrije tekst op die de back-upset beschrijft. De tekenreeks mag maximaal 255 tekens bevatten.
  • NAME = { backup_set_name | @backup_set_name_var }: Hiermee geeft u de naam van de back-upset op. Namen mogen maximaal 128 tekens bevatten. Als NAAM niet is opgegeven, is deze leeg.

Standaard voegt BACKUP de back-up toe aan een bestaande mediaset, waarbij bestaande back-upsets behouden blijven. Als u het expliciet wilt specificeren, gebruikt u de optie NOINIT. Zie mediasets, mediafamilies en back-upsets (SQL Server)voor meer informatie over het toevoegen aan bestaande back-upsets.

Als u de back-upmedia wilt opmaken, gebruikt u de optie FORMAT:

FORMAT [ , MEDIANAME = { media_name | @media_name_variable } ] [ , MEDIADESCRIPTION = { text | @text_variable } ]

Gebruik de component FORMAT wanneer u media voor de eerste keer gebruikt of als u alle bestaande gegevens wilt overschrijven. Wijs desgewenst de nieuwe media een medianaam en -beschrijving toe.

Belangrijk

Wees uiterst voorzichtig wanneer u de component FORMAT van de BACKUP-instructie gebruikt, omdat hiermee alle back-ups worden vernietigd die eerder op de back-upmedia zijn opgeslagen.

Voorbeelden

Maak voor de volgende voorbeelden een testdatabase met de volgende Transact-SQL code:

USE [master]
GO

CREATE DATABASE [SQLTestDB]
GO

USE [SQLTestDB]
GO
CREATE TABLE SQLTest (
   ID INT NOT NULL PRIMARY KEY,
   c1 VARCHAR(100) NOT NULL,
   dt1 DATETIME NOT NULL DEFAULT GETDATE()
)
GO

USE [SQLTestDB]
GO

INSERT INTO SQLTest (ID, c1) VALUES (1, 'test1')
INSERT INTO SQLTest (ID, c1) VALUES (2, 'test2')
INSERT INTO SQLTest (ID, c1) VALUES (3, 'test3')
INSERT INTO SQLTest (ID, c1) VALUES (4, 'test4')
INSERT INTO SQLTest (ID, c1) VALUES (5, 'test5')
GO

SELECT * FROM SQLTest
GO

A. Een back-up maken van een schijfapparaat

In het volgende voorbeeld wordt een back-up gemaakt van de volledige SQLTestDB database naar schijf met behulp van FORMAT om een nieuwe mediaset te maken.

USE SQLTestDB;
GO
BACKUP DATABASE SQLTestDB
TO DISK = 'c:\tmp\SQLTestDB.bak'
   WITH FORMAT,
      MEDIANAME = 'SQLServerBackups',
      NAME = 'Full Backup of SQLTestDB';
GO

B. Een back-up maken van een tapeapparaat

In het volgende voorbeeld wordt een back-up gemaakt van de volledige SQLTestDB database op tape, waarbij de back-up wordt toegevoegd aan de vorige back-ups.

USE SQLTestDB;
GO
BACKUP DATABASE SQLTestDB
   TO TAPE = '\\.\Tape0'
   WITH NOINIT,
      NAME = 'Full Backup of SQLTestDB';
GO

C. Een back-up maken naar een logisch tapeapparaat

In het volgende voorbeeld wordt een logisch back-upapparaat voor een tapestation gemaakt. In het voorbeeld wordt vervolgens een back-up gemaakt van de volledige SQLTestDB-database naar dat apparaat.

-- Create a logical backup device,
-- SQLTestDB_Bak_Tape, for tape device \\.\tape0.
USE master;
GO
EXEC sp_addumpdevice 'tape', 'SQLTestDB_Bak_Tape', '\\.\tape0'; USE SQLTestDB;
GO
BACKUP DATABASE SQLTestDB
   TO SQLTestDB_Bak_Tape
   WITH FORMAT,
      MEDIANAME = 'SQLTestDB_Bak_Tape',
      MEDIADESCRIPTION = '\\.\tape0',
      NAME = 'Full Backup of SQLTestDB';
GO

PowerShell gebruiken

Gebruik de cmdlet Backup-SqlDatabase. Als u expliciet een volledige databaseback-up wilt aangeven, geeft u de parameter -BackupAction op met de standaardwaarde, Database. Deze parameter is optioneel voor volledige databaseback-ups.

Notitie

Voor deze voorbeelden is de SqlServer-module vereist. Voer Get-Module -Name SqlServeruit om te bepalen of deze is geïnstalleerd. Voer Install-Module -Name SqlServer uit in een beheerderssessie van PowerShell om te installeren.

Zie SQL Server PowerShell Providervoor meer informatie.

Belangrijk

Als u een PowerShell-venster opent vanuit SQL Server Management Studio om verbinding te maken met een installatie van SQL Server, kunt u het referentiegedeelte weglaten omdat uw referenties in SSMS automatisch worden gebruikt om de verbinding tussen PowerShell en uw SQL Server-exemplaar tot stand te brengen.

Voorbeelden

A. Volledige back-up (lokaal)

In het volgende voorbeeld wordt een volledige databaseback-up van de <myDatabase>-database gemaakt naar de standaardback-uplocatie van het serverexemplaar Computer\Instance. Dit voorbeeld geeft optioneel -BackupAction Databaseaan.

Zie Backup-SqlDatabasevoor de volledige syntaxisvoorbeelden.

$credential = Get-Credential

Backup-SqlDatabase -ServerInstance Computer[\Instance] -Database <myDatabase> -BackupAction Database -Credential $credential

B. Volledige back-up naar Azure

In het volgende voorbeeld wordt een volledige back-up van de database gemaakt <myDatabase> op het <myServer> exemplaar naar Azure Blob Storage. Er is een toegangsbeleid opgeslagen met lees-, schrijf- en lijstrechten. De SQL Server-referentie, https://<myStorageAccount>.blob.core.windows.net/<myContainer>, is gemaakt met behulp van een Shared Access Signature die is gekoppeld aan het opgeslagen toegangsbeleid. De PowerShell-opdracht maakt gebruik van de parameter BackupFile om de locatie (URL) en de naam van het back-upbestand op te geven.

$credential = Get-Credential
$container = 'https://<myStorageAccount>blob.core.windows.net/<myContainer>'
$fileName = '<myDatabase>.bak'
$server = '<myServer>'
$database = '<myDatabase>'
$backupFile = $container + '/' + $fileName

Backup-SqlDatabase -ServerInstance $server -Database $database -BackupFile $backupFile -Credential $credential

Gerelateerde taken