Schnellstart: Sichern und Wiederherstellen von SQL in Azure Blob Storage
Gilt für: SQL Server 2016 (13.x) und höher Azure SQL Managed Instance
In diesem Schnellstart erfahren Sie, wie Sie Sicherungen in Azure Blob Storage schreiben und daraus wiederherstellen. In diesem Artikel wird erläutert, wie Sie einen Azure Blob Storage-Container erstellen, ein Backup in den Azure Blob Storage schreiben und dann eine Wiederherstellung durchführen.
Hinweis
In SQL Server 2012 SP1 CU2 wurde die Unterstützung für die Sicherung in Azure Blob Storage eingeführt. SQL Server 2014 und früher unterstützt nicht die Shared Access Signature (SAS), die in diesem Schnellstartartikel beschrieben wird.
Für SQL Server 2014 und früher verwenden Sie das Lernprogramm: SQL Server 2014 Sichern und Wiederherstellen auf Microsoft Azure Blob Storage.
Voraussetzungen
Um diesen Schnellstart abzuschließen, müssen Sie mit den SQL Server Sicherungs- und Wiederherstellungs-Konzepten in T-SQL-Syntax vertraut sein. Sie benötigen ein Azure-Speicherkonto, SSMS (SQL Server Management Studio) und Zugriff auf einen Server, auf dem entweder SQL Server oder Azure SQL Managed Instance ausgeführt wird. Darüber hinaus sollte das zum Ausgeben von BACKUP- oder RESTORE-Befehlen verwendete Benutzerkonto Mitglied der Datenbankrolle db_backupoperator sein und über Berechtigungen zum Ändern beliebiger Anmeldeinformationen verfügen.
- Erstellen Sie ein kostenloses Azure-Konto.
- Erstellen Sie ein Azure-Speicherkonto.
- Installieren Sie SQL Server Management Studio.
- Installieren Sie SQL Server 2017 Developer Edition oder stellen Sie Azure SQL Managed Instance mit einer bestehenden Verbindung über eine Azure SQL-VM oder einer Point-to-Site-Verbindung bereit.
- Weisen Sie das Benutzerkonto der Rolle des db_backupoperator zu und gewähren Sie die Berechtigung zum Ändern beliebiger Anmeldeinformationen.
Erstellen von Azure Blob Storage-Containern
Ein Container stellt eine Gruppierung eines Blob-Satzes bereit. Alle BLOBs müssen sich in einem Container befinden. Die Anzahl der Container für ein Speicherkonto ist unbegrenzt, muss jedoch mindestens 1 betragen. In einem Container kann eine unbegrenzte Anzahl von BLOBs gespeichert werden.
Führen Sie die folgenden Schritte aus, um einen Container zu erstellen:
Öffnen Sie das Azure-Portal.
Navigieren Sie zu Ihrem Speicherkonto.
Wählen Sie das Speicherkonto aus, und scrollen Sie zu Blobdienste.
Wählen Sie Blobs und dann + Container aus, um einen neuen Container hinzuzufügen.
Geben Sie den Namen für den Container ein, und notieren Sie sich diesen. Diese Informationen werden in der URL (Pfad der Sicherungsdatei) der T-SQL-Anweisungen im späteren Verlauf dieses Schnellstarts verwendet.
Wählen Sie OK aus.
Hinweis
Sowohl Sicherungs- als auch Wiederherstellungsvorgänge in SQL Server erfordern eine Authentifizierung beim Speicherkonto. Dies gilt auch, wenn Sie einen öffentlichen Container erstellen. Container können mithilfe der REST-APIs auch programmgesteuert erstellt werden. Weitere Informationen finden Sie unter Erstellen von Containern.
Erstellen einer Testdatenbank
In diesem Schritt erstellen Sie mithilfe von SQL Server Management Studio (SSMS) eine Testdatenbank.
- Starten Sie SQL Server Management Studio (SSMS), und stellen Sie eine Verbindung mit Ihrer SQL Server-Instanz her.
- Öffnen Sie das Fenster Neue Abfrage.
- Führen Sie den folgenden Transact-SQL-Code (T-SQL-Code) aus, um die Testdatenbank zu erstellen. Aktualisieren Sie den Knoten Datenbanken im Objekt-Explorer, um Ihre neue Datenbank anzuzeigen. Für neu erstellte Datenbanken in SQL Managed Instance ist TDE automatisch aktiviert. Sie müssen dies also deaktivieren, um fortzufahren.
USE [master]
GO
-- Create database
CREATE DATABASE [SQLTestDB]
GO
-- Create table in database
USE [SQLTestDB]
GO
CREATE TABLE SQLTest (
ID INT NOT NULL PRIMARY KEY,
c1 VARCHAR(100) NOT NULL,
dt1 DATETIME NOT NULL DEFAULT getdate()
)
GO
-- Populate table
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
-- Disable TDE for newly-created databases on SQL Managed Instance
USE [SQLTestDB];
GO
ALTER DATABASE [SQLTestDB] SET ENCRYPTION OFF;
GO
DROP DATABASE ENCRYPTION KEY
GO
Erstellen von Anmeldeinformationen
Erstellen Sie auf der grafischen Benutzeroberfläche von SQL Server Management Studio die Anmeldeinformationen, indem Sie die folgenden Schritte ausführen. Alternativ können Sie die Anmeldeinformationen auch programmgesteuert erstellen.
Erweitern Sie im Objekt-Explorer von SQL Server Management Studio(SSMS) den Knoten Datenbanken.
Klicken Sie mit der rechten Maustaste auf Ihre neue
SQLTestDB
-Datenbank, bewegen Sie den Mauszeiger über Tasks, und wählen Sie dann Sichern... aus, um den Assistenten Datenbank sichern zu starten.Wählen Sie URL in der Dropdownliste Sichern auf aus, und klicken Sie dann auf Hinzufügen, um das Dialogfeld Sicherungsziel auswählen zu öffnen.
Wählen Sie Neuer Container im Dialogfeld Sicherungsziel auswählen aus, um das Fenster Mit einem Microsoft-Abonnement verbinden zu öffnen.
Melden Sie sich beim Azure-Portal an, indem Sie auf Anmelden klicken und dann den Anmeldevorgang fortsetzen.
Wählen Sie in der Dropdownliste Ihr Abonnement aus.
Wählen Sie in der Dropdownliste Ihr Speicherkonto aus.
Wählen Sie in der Dropdownliste den zuvor erstellten Container aus.
Wählen Sie Anmeldeinformationen erstellen aus, um Ihre Shared Access Signature (SAS) zu generieren. Speichern Sie diesen Wert, da Sie ihn für die Wiederherstellung benötigen.
Klicken Sie auf OK, um das Dialogfeld Mit einem Microsoft-Abonnement verbinden zu schließen. Dadurch wird der Wert Azure-Speichercontainer im Dialogfeld Sicherungsziel auswählen ausgefüllt. Klicken Sie auf OK, um den ausgewählten Speichercontainer zu wählen, und schließen Sie das Dialogfeld.
An dieser Stelle können Sie entweder zu Schritt 4 im nächsten Abschnitt übergehen, um die Sicherung der Datenbank durchzuführen, oder den Assistenten Datenbank sichern schließen, wenn Sie stattdessen die Sicherung der Datenbank mit Transact-SQL fortsetzen möchten.
Sichern der Datenbank
In diesem Schritt sichern Sie die Datenbank SQLTestDB
in Ihrem Azure Blob Storage-Konto, indem Sie entweder die grafische Benutzeroberfläche von SQL Server Management Studio oder Transact-SQL (T-SQL) verwenden.
Wenn der Assistent Datenbank sichern nicht bereits geöffnet ist, erweitern Sie im Objekt-Explorer von SQL Server Management Studio (SSMS) den Knoten Datenbanken.
Klicken Sie mit der rechten Maustaste auf Ihre neue
SQLTestDB
-Datenbank, bewegen Sie den Mauszeiger über Tasks, und wählen Sie dann Sichern... aus, um den Assistenten Datenbank sichern zu starten.Wählen Sie URL in der Dropdownliste Sichern auf aus, und klicken Sie dann auf Hinzufügen, um das Dialogfeld Sicherungsziel auswählen zu öffnen.
Wählen Sie in der Dropdownliste Azure-Speichercontainer den Container aus, den Sie im vorherigen Schritt erstellt haben.
Klicken Sie im Assistenten Datenbank sichern auf OK, um Ihre Datenbank zu sichern.
Klicken Sie auf OK, nachdem Ihre Datenbank erfolgreich gesichert wurde, um alle mit der Sicherung verbundenen Fenster zu schließen.
Tipp
Sie können die Transact-SQL hinter diesem Befehl als Skript ausgeben, indem Sie Skript oben im Assistenten Datenbank sichern auswählen:
Löschen von Datenbanken
In diesem Schritt löschen Sie die Datenbank, bevor Sie die Wiederherstellung durchführen. Dieser Schritt ist nur für die Zwecke dieses Tutorials erforderlich, bei normalen Datenbank-Verwaltungsverfahren aber eher unwahrscheinlich. Sie können diesen Schritt überspringen. Dann müssen Sie jedoch entweder den Namen der Datenbank während der Wiederherstellung in eine verwaltete Instanz ändern oder den Wiederherstellungsbefehl WITH REPLACE
ausführen, um die Datenbank erfolgreich lokal wiederherzustellen.
- Erweitern Sie im Objekt-Explorer den Knoten Datenbanken, klicken Sie mit der rechten Maustaste auf die
SQLTestDB
-Datenbank, und wählen Sie „Löschen“ aus, um den Assistenten Objekt löschen zu starten. - Klicken Sie bei einer verwalteten Instanz auf OK, um die Datenbank zu löschen. Aktivieren Sie lokal das Kontrollkästchen neben Bestehende Verbindungen schließen, und klicken Sie dann auf OK, um die Datenbank zu löschen.
Datenbank wiederherstellen
In diesem Schritt stellen Sie die Datenbank entweder über die grafische Benutzeroberfläche von SQL Server Management Studio oder mit Transact-SQL wieder her.
Klicken Sie in SQL Server Management Studio im Objekt-Explorer mit der rechten Maustaste auf den Knoten Datenbanken, und wählen Sie dann Datenbank wiederherstellen aus.
Klicken Sie auf Gerät und dann auf die Auslassungspunkte (...), um das Gerät zu wählen.
Wählen Sie URL in der Dropdownliste Sicherungsmedientyp aus, und klicken Sie auf Hinzufügen, um Ihr Gerät hinzuzufügen.
Wählen Sie den Container in der Dropdownliste aus, und fügen Sie dann die Shared Access Signature (SAS) ein, die Sie beim Erstellen der Anmeldeinformationen gespeichert haben.
Klicken Sie auf OK, um den Speicherort der Sicherungsdatei auszuwählen.
Erweitern Sie Container, und wählen Sie den Container aus, in dem sich Ihre Sicherungsdatei befindet.
Wählen Sie die Sicherungsdatei aus, die Sie wiederherstellen möchten, und klicken Sie dann auf OK. Wenn keine Dateien sichtbar sind, verwenden Sie möglicherweise den falschen SAS-Schlüssel. Sie können den SAS-Schlüssel erneut generieren, indem Sie die gleichen Schritte wie zuvor ausführen, um den Container hinzuzufügen.
Klicken Sie auf OK, um das Dialogfeld Sicherungsmedien auswählen zu schließen.
Klicken Sie auf OK, um die Datenbank wiederherzustellen.
Siehe auch
Im Folgenden finden Sie einige empfohlene Lektüren, um die Konzepte und Best Practices bei der Verwendung von Azure Blob Storage für SQL Server-Backups zu verstehen.