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 einen virtuellen Computer mit Azure CLI 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

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 einen Recovery Services-Tresor mit dem Befehl "az backup vault create ". 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 mit Azure CLI erstellen.

Für diesen Artikel verwenden wir:

  • Eine Ressourcengruppe mit dem Namen SQLResourceGroup
  • Eine VM mit dem Namen "testSQLVM"
  • Ressourcen am Westus2-Standort .

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 Einstellung für Speicherredundanz 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 der virtuelle Computer 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. Wenn Sie jedoch alle neuen Datenbanken ermitteln möchten, die in Zukunft hinzugefügt werden können, lesen Sie den Abschnitt " Entdecken neuer Datenbanken", die dem registrierten SQL Server-Abschnitt 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

Der Spaltenname 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. Beispiel: VMAppContainer; Berechnen; SQLResourceGroup; testSQLVM.

Die Sicherung in der SQL-Datenbank aktivieren

Der Befehl "az backup protectable-item list" listet alle Datenbanken auf, die in der SQL-Instanz ermittelt 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 jetzt die Sicherung für die sqldatabase; mssqlserver; Masterdatenbank .

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. Um eine Richtlinie mit CLI zu erstellen, verwenden Sie den Befehl "az backup policy create ". Für diesen Artikel haben wir die testSQLPolicy-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 AlwaysOn-Verfügbarkeitsgruppe verfügen und die schützende Datenquelle innerhalb der Verfügbarkeitsgruppe identifizieren möchten. Hier ist der schutzbare Elementtyp SQLAG.

Um zu überprüfen, ob die oben genannte Sicherungskonfiguration abgeschlossen 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 Sicherungsaufträge (geplante oder on-demand) auf, die ausgeführt oder derzeit in der geschützten Datenbank ausgeführt werden, sowie andere Vorgänge, z. B. Registrieren, Konfigurieren der Sicherung 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. Verwenden Sie den Befehl "az backup protection auto-enable-for-azurewl ", um den automatischen Schutz zu aktivieren.

Da die Anweisung darin besteht, alle zukünftigen Datenbanken zu sichern, erfolgt der Vorgang 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 On-Demand-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.

  • Vollständige On-Demand-Sicherungen werden mindestens45 Tage und höchstens 99 Jahre aufbewahrt.
  • Die vollständige On-Demand-Kopie akzeptiert alle Werte zur Aufbewahrung.
  • Das On-Demand-Differential bewahrt die Sicherung gemäß der in der Richtlinie festgelegten Aufbewahrung geplanter Differenziale 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" nachzuverfolgen.

Nächste Schritte