Freigeben über


Sichern von SQL-Datenbanken in Azure VM mit Azure CLI

Die Azure CLI dient zum Erstellen und Verwalten von Azure-Ressourcen über die Befehlszeile oder mit Skripts. In diesem Artikel wird beschrieben, wie Sie eine SQL-Datenbank in Azure VM sichern und On-Demand-Sicherungen mit Azure CLI auslösen. Sie können diese Aktionen auch über das Azure-Portal ausführen.

In diesem Artikel wird davon ausgegangen, dass Sie bereits eine SQL-Datenbank auf einer Azure-VM installiert haben. (Sie können auch per Azure CLI eine VM erstellen.)

In diesem Artikel lernen Sie Folgendes:

  • Erstellen eines Recovery Services-Tresors
  • Registrieren Sie den SQL-Server und entdecken Sie Datenbank(en) darauf
  • Aktivieren Sie die Sicherung auf einer SQL-Datenbank
  • Auslösen einer bedarfsgesteuerten Sicherung

Sehen Sie sich die derzeit unterstützten Szenarien für SQL in Azure VM an.

Voraussetzungen

  • Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in Azure Cloud Shell.

  • Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.

    • Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.

    • Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.

    • Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.

Erstellen eines Recovery Services-Tresors

Ein Recovery Services-Tresor ist ein logischer Container, der die Sicherungsdaten für jede geschützte Ressource speichert, z. B. Azure-VMs oder Workloads, die auf Azure-VMs ausgeführt werden - z. B. SQL- oder HANA-Datenbanken. Wenn der Sicherungsauftrag für eine geschützte Ressource ausgeführt wird, wird im Recovery Services-Tresor ein Wiederherstellungspunkt erstellt. Sie können einen dieser Wiederherstellungspunkte dann verwenden, um Daten für einen bestimmten Zeitpunkt wiederherzustellen.

Erstellen Sie mit dem Befehl az backup vault create einen Recovery Services-Tresor. Verwenden Sie die Ressourcengruppe und den Standort der VM, die Sie schützen möchten. Erfahren Sie, wie Sie eine Windows-VM und eine Linux-VM mittels Azure CLI erstellen.

Für diesen Artikel verwenden wir:

  • Eine Ressourcengruppe namens SQL-Ressourcengruppe
  • Eine VM namens testSQLVM
  • Ressourcen am Standort westus2.

Führen Sie den folgenden Befehl aus, um einen Tresor namens SQLVault zu erstellen.

az backup vault create --resource-group SQLResourceGroup \
    --name SQLVault \
    --location westus2

Für den Recovery Services-Tresor ist standardmäßig die georedundante Speicherung festgelegt. Der georedundante Speicher stellt sicher, dass Ihre Backup-Daten in einer sekundären Azure-Region repliziert werden, auch wenn diese Hunderte von Meilen von der primären Region entfernt ist. Wenn die Speicherredundanzeinstellung geändert werden muss, verwenden Sie den Befehl az backup vault backup-properties-set.

az backup vault backup-properties set \
    --name SQLVault  \
    --resource-group SQLResourceGroup \
    --backup-storage-redundancy "LocallyRedundant/GeoRedundant"

Um zu überprüfen, ob der Tresor erfolgreich erstellt wurde, verwenden Sie den Befehl az backup vault list. Die Antwort erscheint wie folgt:

Location   Name             ResourceGroup
---------  ---------------  -------------  
westus2    SQLVault     	SQLResourceGroup

Registrieren und schützen Sie den SQL Server

Um den SQL Server im Recovery Services-Tresor zu registrieren, verwenden Sie den Befehl az backup container register. VMResourceId ist die Ressourcen-ID der VM, die Sie zum Installieren von SQL erstellt haben.

az backup container register --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --workload-type SQLDataBase \
    --backup-management-type AzureWorkload \
    --resource-id VMResourceId

Hinweis

Wenn die VM nicht in derselben Ressourcengruppe wie der Tresor vorhanden ist, verwendet SQLResourceGroup die Ressourcengruppe, in der der Tresor erstellt wurde.

Durch die Registrierung des SQL-Servers werden automatisch alle seine aktuellen Datenbanken erkannt. Um jedoch neue Datenbanken zu erkennen, die möglicherweise in der Zukunft hinzugefügt werden, lesen Sie den Abschnitt Erkennen neuer Datenbanken, die dem registrierten SQL-Server hinzugefügt wurden.

Verwenden Sie den Befehl az backup container list, um zu überprüfen, ob die SQL-Instanz erfolgreich bei Ihrem Tresor registriert wurde. Die Antwort erscheint wie folgt:

Name                                                    Friendly Name    Resource Group        Type           Registration Status
------------------------------------------------------  --------------   --------------------  ---------      ----------------------
VMAppContainer;Compute;SQLResourceGroup;testSQLVM   	testSQLVM        SQLResourceGroup  		AzureWorkload  Registered

Hinweis

Die Spalte „name“ in der obigen Ausgabe bezieht sich auf den Containernamen. Dieser Containername wird in den nächsten Abschnitten verwendet, um Sicherungen zu aktivieren und auszulösen. Zum Beispiel, VMAppContainer;Compute;SQLResourceGroup;testSQLVM.

Die Sicherung in der SQL-Datenbank aktivieren

Der Befehl az backup protectable-item list listet alle Datenbanken auf, die auf der SQL-Instanz erkannt wurden, die Sie im vorherigen Schritt registriert haben.

az backup protectable-item list --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --workload-type SQLDataBase \
	--backup-management-type AzureWorkload \
	--protectable-item-type SQLDataBase
    --output table

Sie sollten die Datenbank in dieser Liste finden, die Sie sichern möchten, die wie folgt angezeigt wird:

Name                           		Protectable Item Type    ParentName    ServerName    	IsProtected
-----------------------------  		----------------------   ------------  -----------   	------------
sqldatabase;mssqlserver;master      SQLDataBase              MSSQLServer   testSQLVM        NotProtected  
sqldatabase;mssqlserver;model       SQLDataBase              MSSQLServer   testSQLVM        NotProtected  
sqldatabase;mssqlserver;msdb        SQLDataBase              MSSQLServer   testSQLVM        NotProtected  

Konfigurieren Sie nun die Sicherung für die sqldatabase;mssqlserver;master-Datenbank.

Um Sicherungen in einer Datenbank einzeln zu konfigurieren und zu schützen, verwenden Sie den Befehl az backup protection enable-for-azurewl. Geben Sie den Namen der Richtlinie an, die Sie verwenden möchten. Verwenden Sie zum Erstellen einer Richtlinie mit CLI den Befehlaz backup policy create. Für diesen Artikel haben wir die ttestSQLPolicy-Richtlinie verwendet.

az backup protection enable-for-azurewl --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --policy-name SQLPolicy \
    --protectable-item-name "sqldatabase;mssqlserver;master"  \
    --protectable-item-type SQLDataBase \
    --server-name testSQLVM \
    --workload-type SQLDataBase \
    --output table

Sie können denselben Befehl verwenden, wenn Sie über eine SQL Always On-Verfügbarkeitsgruppe verfügen und die schutzfähige Datenquelle innerhalb der Verfügbarkeitsgruppe identifizieren möchten. Hier ist der schutzfähige Elementtyp SQLAG.

Um zu überprüfen, ob die obige Sicherungskonfiguration vollständig ist, verwenden Sie den Befehl az backup job list. Die Ausgabe erscheint wie folgt:

Name                                  Operation         Status     Item Name   Start Time UTC
------------------------------------  ---------------   ---------  ----------  -------------------  
e0f15dae-7cac-4475-a833-f52c50e5b6c3  ConfigureBackup   Completed  master         2019-12-03T03:09:210831+00:00  

Der Befehl az backup job list listet alle (geplanten oder bedarfsgesteuerten) Sicherungsaufträge auf, die in der geschützten Datenbank ausgeführt wurden oder derzeit ausgeführt werden, zusätzlich zu anderen Vorgängen wie Registrieren, Konfigurieren von Sicherungen und Löschen von Sicherungsdaten.

Hinweis

Azure Backup passt sich nicht automatisch an Änderungen der Sommerzeit an, wenn eine SQL-Datenbank gesichert wird, die auf einer Azure-VM ausgeführt wird.

Ändern Sie die Richtlinie nach Bedarf manuell.

Aktivieren des automatischen Schutzes

Für eine nahtlose Backup-Konfiguration können alle zukünftig hinzugefügten Datenbanken automatisch mit einer bestimmten Richtlinie geschützt werden. Um den automatischen Schutz zu aktivieren, verwenden Sie den Befehl az backup protection auto-enable-for-azurewl.

Da die Anweisung darin besteht, alle zukünftigen Datenbanken zu sichern, erfolgt die Operation auf SQLInstance-Ebene.

az backup protection auto-enable-for-azurewl --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --policy-name SQLPolicy \
    --protectable-item-name "sqlinstance;mssqlserver"  \
    --protectable-item-type SQLInstance \
    --server-name testSQLVM \
    --workload-type MSSQL\
    --output table

Auslösen einer bedarfsgesteuerten Sicherung

Um eine bedarfsgesteuerte Sicherung auszulösen, verwenden Sie den Befehl az backup protection backup-now.

Hinweis

Die Aufbewahrungsdauer dieser Sicherung wird durch die Art der von Ihnen ausgeführten On-Demand-Sicherung bestimmt.

  • On-Demand-Full speichert Backups für mindestens 45 Tage und maximal 99 Jahre.
  • Die vollständige On-Demand-Kopie akzeptiert alle Werte zur Aufbewahrung.
  • On-Demand-Differential bewahrt die Sicherung gemäß der in der Richtlinie festgelegten Aufbewahrung geplanter Differentiale auf.
  • Das On-Demand-Protokoll bewahrt Sicherungen gemäß der in der Richtlinie festgelegten Aufbewahrung geplanter Protokolle auf.
az backup protection backup-now --resource-group SQLResourceGroup \
    --item-name sqldatabase;mssqlserver;master \
    --vault-name SQLVault \
    --container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
    --backup-type Full
    --retain-until 01-01-2040
    --output table

Die Ausgabe erscheint wie folgt:

Name                                  ResourceGroup
------------------------------------  -------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3  sqlResourceGroup

In der Antwort ist der Auftragsname enthalten. Sie können diesen Auftragsnamen verwenden, um den Auftragsstatus mithilfe des Befehls az backup job show zu verfolgen.

Nächste Schritte