In dieser Anleitung wird beschrieben, wie Sie eine Microsoft SQL Server 2022-Datenbank direkt in einem Cloud Storage-Bucket sichern und später wiederherstellen. Die in SQL Server 2022 eingeführte native SQL Server-Sicherungsfunktion bietet eine nahtlose und kostengünstige Strategie für cloudbasierte Notfallwiederherstellung und Datenmigration.
Für die native SQL Server-Sicherungsfunktion werden die Befehle BACKUP TO URL
und RESTORE FROM URL
verwendet, die S3-kompatiblen Objektspeicher, einschließlich Cloud Storage, unterstützen. Dadurch entfällt die Notwendigkeit eines Zwischenspeichers, was den Sicherungsvorgang vereinfacht und den Betriebsaufwand reduziert.
Diese Anleitung richtet sich an Datenbankadministratoren und ‑entwickler.
Lernziele
In dieser Anleitung erfahren Sie, wie Sie die folgenden Aufgaben ausführen, um Ihr Ziel zu erreichen:- Neuen Cloud Storage-Bucket erstellen
- SQL Server-Connector konfigurieren
- Datenbank sichern
- Datenbank aus der Sicherung wiederherstellen
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.
Hinweise
Für diese Anleitung benötigen Sie ein Google Cloud -Projekt. Sie können ein neues Projekt erstellen oder ein vorhandenes Projekt auswählen:
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, activate Cloud Shell.
Prüfen Sie, ob Microsoft SQL Server 2022 oder höher installiert ist und ausgeführt wird.
Achten Sie darauf, dass sowohl Ihr Google Cloud-Projekt als auch SQL Server die erforderlichen Berechtigungen zum Ausführen von Sicherungs- und Wiederherstellungsaufgaben haben.
Prüfen Sie, ob der Nutzer oder das Dienstkonto, das mit den Zugriffsschlüsseln verknüpft ist, die Berechtigung zum Erstellen und Ansehen von Objekten im Cloud Storage-Bucket hat.
Das SQL Server-Nutzerkonto, das für die Sicherung verwendet wird, muss die Berechtigungen „Datenbanksicherung“ und „Logsicherung“ haben.
Wählen Sie Ihr Google Cloud Projekt aus.
gcloud config set project PROJECT_ID
Erstellen Sie den Bucket: Führen Sie den
gcloud storage buckets create
-Befehl wie folgt aus, um den Bucket zu erstellen.gcloud storage buckets create gs://BUCKET_NAME --location=BUCKET_LOCATION
Ersetzen Sie Folgendes:
BUCKET_NAME
durch einen eindeutigen Namen für Ihren Bucket.BUCKET_LOCATION
durch den Standort Ihres Buckets.Rufen Sie in der Google Cloud Console die Cloud Storage-Einstellungen auf.
Wählen Sie den Tab Interoperabilität aus.
Klicken Sie unter Zugriffsschlüssel für Ihr Nutzerkonto auf Schlüssel erstellen.
Speichern Sie den generierten Zugriffsschlüssel und das Secret sicher. Sie benötigen sie im nächsten Schritt.
CREDENTIAL_NAME
: mit einem Namen für Ihre Anmeldedaten.ACCESS_KEY
: mit dem Zugriffsschlüssel, den Sie im vorherigen Abschnitt erstellt haben.SECRET
: mit dem Secret, das Sie im vorherigen Abschnitt erstellt haben.CREDENTIAL_NAME
: Der Name der Anmeldedaten, die Sie in Schritt 3 erstellt haben. Beispiel:sql_backup_credentials
.BUCKET_NAME
: Der Name des Buckets, den Sie in Schritt 1 erstellt haben.FOLDER_NAME
: Der Name des Ordners, in dem Sie die Sicherungsdatei speichern möchten.BACKUP_FILE_NAME
: Der Name der Sicherungsdatei.FORMAT
: Überschreibt die vorhandenen Sicherungsdateien und erstellt einen neuen Mediensatz.STATS
: Meldet den Fortschritt der Sicherung.COMPRESSION
: Komprimiert die Sicherung, wodurch die Dateigröße und die Uploadzeit reduziert werden können.MAXTRANSFERSIZE
: Empfohlen, um E/A-Fehler bei großen Sicherungsdateien zu vermeiden.CREDENTIAL_NAME
: Der Name der Anmeldedaten, die Sie in Schritt 3 erstellt haben. Beispiel:sql_backup_credentials
.BUCKET_NAME
: Der Name des Buckets, den Sie in Schritt 1 erstellt haben.FOLDER_NAME
: Der Name des Ordners, in dem Sie die Sicherungsdatei speichern möchten.BACKUP_FILE_NAME
: Der Name der Sicherungsdatei.- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
- Referenzarchitekturen, Diagramme und Best Practices zu Google Cloud kennenlernen. Weitere Informationen zu Cloud Architecture Center
Cloud Storage-Bucket erstellen
Sie können einen Cloud Storage-Bucket mit der Google Cloud -Konsole oder mit dem
gcloud storage
-Befehl erstellen.So erstellen Sie einen Cloud Storage-Bucket mit dem Befehl
gcloud storage
:S3-Interoperabilität konfigurieren und Zugriffsschlüssel erstellen
Damit SQL Server über das S3-Protokoll mit Cloud Storage kommunizieren kann, müssen Sie die Interoperabilität aktivieren und einen Zugriffsschlüssel generieren. Gehen Sie dazu so vor:
Für Produktionsumgebungen empfehlen wir, einen Dienstkonto-HMAC-Schlüssel (Hash-based Message Authentication Code, HMAC) zu verwenden, um die Sicherheit und Verwaltung zu verbessern.
Anmeldedaten zu SQL Server hinzufügen
Damit sich SQL Server bei Ihrem Cloud Storage-Bucket authentifizieren kann, müssen Sie in SQL Server ein Anmeldedatenobjekt erstellen, in dem der Cloud Storage-Zugriffsschlüssel und das Secret gespeichert werden. Führen Sie dazu den folgenden T-SQL-Befehl in SQL Server Management Studio (SSMS) aus.
CREATE CREDENTIAL CREDENTIAL_NAME WITH IDENTITY = 'S3 Access Key', SECRET = 'ACCESS_KEY:SECRET';
Ersetzen Sie Folgendes:
IDENTITY = 'S3 Access Key'
ist wichtig, da SQL Server dadurch angewiesen wird, den neuen S3-Connector zu verwenden. Das Secret sollte als Zugriffsschlüssel formatiert werden, gefolgt von einem Doppelpunkt und dann dem geheimen Schlüssel.Beispiel:
CREATE CREDENTIAL sql_backup_credentials WITH IDENTITY = 'S3 Access Key', SECRET = 'GOOGGE3SVF7OQE5JRMLQ7KWB:b31Pl8Tx1ARJfdGOsbgMFQNbk3nPdlT2UCYzs1iC';
Daten in Cloud Storage sichern
Nachdem Sie die Anmeldedaten eingerichtet haben, können Sie Ihre Datenbank mit dem Befehl
BACKUP DATABASE
und der OptionTO URL
direkt in den Cloud Storage-Bucket sichern. Stellen Sie der URL das Präfixs3://storage.googleapis.com
voran, um den S3-Connector zu verwenden.BACKUP DATABASE DATABASE_NAME TO URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME.bak' WITH CREDENTIAL = 'CREDENTIAL_NAME', FORMAT, STATS = 10, MAXTRANSFERSIZE = 10485760, COMPRESSION;
Ersetzen Sie Folgendes:
Die Beschreibungen der im Befehl verwendeten Sicherungsparameter sind wie folgt:
Weitere Informationen finden Sie unter SQL Server-Sicherung auf URL für S3-kompatiblen Objektspeicher.
Bei sehr großen Datenbanken können Sie die Sicherung wie folgt in mehrere Dateien aufteilen.
BACKUP DATABASE DATABASE_NAME TO URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME_0.bak', URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME_1.bak' -- ... more files WITH CREDENTIAL = 'CREDENTIAL_NAME', FORMAT, STATS = 10, MAXTRANSFERSIZE = 10485760, COMPRESSION;
Daten aus Cloud Storage wiederherstellen
Sie können Ihre Datenbank direkt aus einer Sicherungsdatei wiederherstellen, die in Cloud Storage gespeichert ist. Verwenden Sie dazu den Befehl
RESTORE DATABASE
wie unten beschrieben.RESTORE DATABASE DATABASE_NAME FROM URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME.bak' WITH CREDENTIAL = 'CREDENTIAL_NAME';
Ersetzen Sie Folgendes:
Bereinigen
So vermeiden Sie, dass Ihrem Google Cloud Konto die in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden:
Projekt löschen
Nächste Schritte
-