Kopiesicherungen
Gilt für: SQL Server Azure SQL Managed Instance
Eine Kopiesicherung ist ein SQL Server-Backup, das von der Sequenz konventioneller SQL Server-Backups unabhängig ist. Normalerweise wird beim Erstellen einer Sicherung die Datenbank geändert, und außerdem beeinflusst dies die Art und Weise, wie spätere Sicherungen wiederhergestellt werden. Manchmal kann es sich jedoch als nützlich erweisen, eine Datensicherung für einen bestimmten Zweck vorzunehmen, ohne die allgemeinen Sicherungs- und Wiederherstellungsprozeduren für die Datenbank zu beeinflussen. Kopiesicherungen eignen sich für diesen Zweck.
Die folgenden Typen von Kopiesicherungen sind verfügbar:
Vollständige Kopiesicherungen (alle Wiederherstellungsmodelle)
Eine Kopiesicherung kann nicht als differenzielle Basis oder differenzielle Sicherung dienen und wirkt sich nicht auf die differenzielle Basis aus.
Die Wiederherstellung einer vollständigen Kopiesicherung entspricht der Wiederherstellung jeder anderen vollständigen Sicherung.
Protokollkopiesicherungen (nur vollständiges und massenprotokolliertes Wiederherstellungsmodell)
Eine Protokollkopiesicherung behält den vorhandenen Protokollarchivpunkt bei und wirkt sich daher nicht auf die Sequenz von regulären Protokollsicherungen aus. Protokollkopiesicherungen sind normalerweise nicht nötig. Erstellen Sie stattdessen eine neue routinemäßige Protokollsicherung (mithilfe von
WITH NORECOVERY
), und verwenden Sie dann diese Sicherung zusammen mit allen vorherigen Protokollsicherungen, die für die Wiederherstellungssequenz erforderlich sind. Eine Protokollkopiesicherung ist manchmal jedoch auch für das Ausführen einer Onlinewiederherstellung nützlich. Weitere Informationen finden Sie in den Anweisungen im Artikel Beispiel: Onlinewiederherstellung einer Datei mit Lese-/Schreibzugriff (vollständiges Wiederherstellungsmodell). Verwenden Sie stattdessen Kopiesicherungsdateien.Nach einer Kopiesicherung wird das Transaktionsprotokoll nie abgeschnitten.
Kopiesicherungen werden in der is_copy_only
-Spalte der backupset-Tabelle verzeichnet.
Wichtig
In Azure SQL Managed Instance können keine Kopiesicherungen für Datenbanken erstellt werden, die mit TDE (Transparent Data Encryption) mit Verwaltung durch einen Dienst verschlüsselt sind. Bei TDE mit Verwaltung durch einen Dienst wird ein interner Schlüssel zum Verschlüsseln von Daten verwendet. Dieser Schlüssel kann nicht exportiert werden, weshalb Sie die Sicherung nicht woanders speichern können. Sie sollten stattdessen TDE mit Verwaltung durch Kunden in Betracht ziehen, um Kopiesicherungen von verschlüsselten Datenbanken erstellen zu können, aber stellen Sie dabei sicher, dass Sie über einen Verschlüsselungsschlüssel für spätere Wiederherstellungen verfügen.
Erstellen einer Kopiesicherung
Sie können eine Kopiesicherung mit SQL Server Management Studio, Azure Data Studio, Transact-SQL oder PowerShell erstellen.
A. Verwenden von SQL Server Management Studio
In diesem Beispiel wird eine Kopiesicherung der Sales
-Datenbank auf dem Datenträger am standardmäßigen Sicherungsspeicherort gesichert.
Stellen Sie im Objekt-Explorer eine Verbindung mit einer Instanz der SQL Server-Datenbank-Engine her, und erweitern Sie anschließend diese Instanz.
Erweitern Sie Datenbanken, klicken Sie mit der rechten Maustaste auf
Sales
, zeigen Sie auf Aufgaben, und klicken Sie anschließend auf Sichern.Aktivieren Sie auf der Seite Allgemein im Abschnitt Quelle das Kontrollkästchen Kopiesicherung.
Wählen Sie OK aus.
B. Verwenden von Transact-SQL
In diesem Beispiel wird eine Kopiesicherung der Sales
-Datenbank über den Parameter COPY_ONLY
erstellt. Eine Kopiesicherung des Transaktionsprotokolls wird ebenfalls erstellt.
BACKUP DATABASE Sales
TO DISK = 'E:\BAK\Sales_Copy.bak'
WITH COPY_ONLY;
BACKUP LOG Sales
TO DISK = 'E:\BAK\Sales_LogCopy.trn'
WITH COPY_ONLY;
Hinweis
COPY_ONLY
ist wirkungslos, wenn gleichzeitig die Option DIFFERENTIAL
angegeben wird.
C. Verwenden von Transact-SQL und Azure SQL Managed Instance
Azure SQL Managed Instance unterstützt das Erstellen vollständiger Sicherungen vom Typ COPY_ONLY. Im Beispiel wird eine COPY_ONLY-Sicherung von MyDatabase
in Microsoft Azure Blob Storage durchgeführt. Der Speicherkontoname lautet mystorageaccount
. Der Container heißt myfirstcontainer
. Eine Speicher-Zugriffsrichtlinie wurde mit Lese-, Schreib-, Lösch- und Auflistungsrechten erstellt. Die Anmeldeinformation für SQL Server, https://mystorageaccount.blob.core.windows.net/myfirstcontainer
, wurde mit einer Shared Access Signature (SAS) erstellt, die dem Geheimnis der Speicher-Zugriffsrichtlinie zugeordnet ist. Informationen zur SQL Server-Sicherung in Microsoft Azure Blob Storage finden Sie unter SQL Server-Sicherung und -Wiederherstellung mit Microsoft Azure Blob Storage und SQL Server-Sicherung über URLs.
-- Prerequisite to have write permissions
CREATE CREDENTIAL [https://mystorageaccount.blob.core.windows.net/myfirstcontainer]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'sp=...' -- Enter your secret SAS token here.
BACKUP DATABASE MyDatabase
TO URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/MyDatabaseBackup.bak'
WITH STATS = 5, COPY_ONLY;
Gehen Sie zum Erstellen einer Kopiesicherung, die in mehrere Bereichsstreifen unterteilt ist, nach diesem Beispiel vor:
BACKUP DATABASE MyDatabase
TO URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/MyDatabase-01.bak',
URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/MyDatabase-02.bak',
URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/MyDatabase-03.bak',
URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/MyDatabase-04.bak'
WITH COPY_ONLY;
D: Verwenden von PowerShell
In diesem Beispiel wird eine Kopiesicherung der Sales
-Datenbank über den Parameter -CopyOnly
erstellt.
Backup-SqlDatabase -ServerInstance 'SalesServer' -Database 'Sales' -BackupFile 'E:\BAK\Sales_Copy.bak' -CopyOnly
Zugehörige Aufgaben
Erstellen einer vollständigen Sicherung oder Protokollsicherung
- Erstellen einer vollständigen Datenbanksicherung (SQL Server)
- Sichern eines Transaktionsprotokolls (SQL Server)