Verwalten von SQL-Datenbanken in einer Azure-VM über die 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 mit der Azure CLI eine gesicherte SQL-Datenbank auf einer Azure-VM verwalten. Sie können diese Schritte auch im Azure-Portal ausführen.
In diesem Artikel lernen Sie Folgendes:
- Überwachen von Sicherungs- und Wiederherstellungsaufträgen
- Schützen neuer Datenbanken, die einer SQL-Instanz hinzugefügt wurden
- Ändern der Richtlinie
- Schutz beenden
- Schutz fortsetzen
Falls Sie die Anleitung unter Sichern einer SQL-Datenbank in Azure mit der CLI verwendet haben, um Ihre SQL-Datenbank zu sichern, nutzen Sie die folgenden Ressourcen:
- Eine Ressourcengruppe namens SQLResourceGroup
- Einen Tresor namens SQLVault
- Einen geschützten Container namens VMAppContainer;Compute;SQLResourceGroup;testSQLVM
- Eine gesicherte Datenbank und ein Element namens sqldatabase;mssqlserver;master
- Ressourcen in der Region westus2
Die Azure CLI vereinfacht die Verwaltung einer in einer Azure-VM ausgeführten SQL-Datenbank, die mit Azure Backup gesichert wurde. In den folgenden Abschnitten werden die einzelnen Verwaltungsvorgänge beschrieben.
Hinweis
Weitere Informationen zu den unterstützten Konfigurationen und Szenarien finden Sie in der Supportmatrix für SQL-Backups.
Überwachen von Sicherungs- und Wiederherstellungsaufträgen
Verwenden Sie den Befehl az backup job list, um abgeschlossene oder derzeit ausgeführte Aufträge (Sicherung oder Wiederherstellung) zu überwachen. Mit der CLI haben Sie auch die Möglichkeit, einen ausgeführten Auftrag anzuhalten oder den Abschluss eines Auftrags abzuwarten.
az backup job list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--output table
Die Ausgabe sieht wie folgt aus:
Name Operation Status Item Name Start Time UTC
------------------------------------ --------------- --------- ---------- -------------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3 ConfigureBackup Completed master [testSQLVM] 2019-12-03T03:09:210831+00:00
ccdb4dce-8b15-47c5-8c46-b0985352238f Backup (Full) Completed master [testSQLVM] 2019-12-01T10:30:58.867489+00:00
4980af91-1090-49a6-ab96-13bc905a5282 Backup (Differential) Completed master [testSQLVM] 2019-12-01T10:36:00.563909+00:00
F7c68818-039f-4a0f-8d73-e0747e68a813 Restore (Log) Completed master [testSQLVM] 2019-12-03T05:44:51.081607+00:00
Ändern einer Richtlinie
Verwenden Sie den Befehl az backup policy set, um die Richtlinie zu ändern, die der SQL-Sicherungskonfiguration zugrunde liegt. Mit dem Parameter „name“ in diesem Befehl wird auf das Sicherungselement verwiesen, dessen Richtlinie wir ändern möchten. Ersetzen Sie hier die Richtlinie der SQL-Datenbank sqldatabase;mssqlserver;master durch die neue Richtlinie newSQLPolicy. Sie können neue Richtlinien mithilfe des Befehls az backup policy create erstellen.
az backup item set-policy --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--policy-name newSQLPolicy \
--name sqldatabase;mssqlserver;master \
Die Ausgabe sieht wie folgt aus:
Name Operation Status Item Name Backup Management Type Start Time UTC Duration
------------------------------------ --------------- --------- ----------- ------------------------ -------------------------------- --------------
ba350996-99ea-46b1-aae2-e2096c1e28cd ConfigureBackup Completed master AzureWorkload 2022-06-22T08:24:03.958001+00:00 0:01:12.435765
Erstellen einer Richtlinie für differenzielle Sicherungen
Führen Sie zum Erstellen einer Richtlinie für differenzielle Sicherungen den Befehl az backup policy create mit den folgenden Parametern aus:
- --backup-management-type: Azure-Workload.
- --workload-type: SQL-Datenbank.
- --name: Name der Richtlinie.
- --policy: JSON-Datei mit den entsprechenden Details zu Zeitplan und Aufbewahrung.
- --resource-group: Ressourcengruppe des Tresors.
- --vault-name: Name des Tresors.
Beispiel:
az backup policy create --resource-group SQLResourceGroup --vault-name SQLVault --name SQLPolicy --backup-management-type AzureWorkload --policy SQLPolicy.json --workload-type SQLDataBase
JSON-Beispieldatei (sqlpolicy.json):
"eTag": null,
"id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SQLResourceGroup/providers/Microsoft.RecoveryServices/vaults/SQLVault/backupPolicies/SQLPolicy",
"location": null,
"name": "sqlpolicy",
"properties": {
"backupManagementType": "AzureWorkload",
"workLoadType": "SQLDataBase",
"settings": {
"timeZone": "UTC",
"issqlcompression": false,
"isCompression": false
},
"subProtectionPolicy": [
{
"policyType": "Full",
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunFrequency": "Weekly",
"scheduleRunDays": [
"Sunday"
],
"scheduleRunTimes": [
"2022-06-13T19:30:00Z"
],
"scheduleWeeklyFrequency": 0
},
"retentionPolicy": {
"retentionPolicyType": "LongTermRetentionPolicy",
"weeklySchedule": {
"daysOfTheWeek": [
"Sunday"
],
"retentionTimes": [
"2022-06-13T19:30:00Z"
],
"retentionDuration": {
"count": 104,
"durationType": "Weeks"
}
},
"monthlySchedule": {
"retentionScheduleFormatType": "Weekly",
"retentionScheduleWeekly": {
"daysOfTheWeek": [
"Sunday"
],
"weeksOfTheMonth": [
"First"
]
},
"retentionTimes": [
"2022-06-13T19:30:00Z"
],
"retentionDuration": {
"count": 60,
"durationType": "Months"
}
},
"yearlySchedule": {
"retentionScheduleFormatType": "Weekly",
"monthsOfYear": [
"January"
],
"retentionScheduleWeekly": {
"daysOfTheWeek": [
"Sunday"
],
"weeksOfTheMonth": [
"First"
]
},
"retentionTimes": [
"2022-06-13T19:30:00Z"
],
"retentionDuration": {
"count": 10,
"durationType": "Years"
}
}
}
},
{
"policyType": "Differential",
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunFrequency": "Weekly",
"scheduleRunDays": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"scheduleRunTimes": [
"2022-06-13T02:00:00Z"
],
"scheduleWeeklyFrequency": 0
},
"retentionPolicy": {
"retentionPolicyType": "SimpleRetentionPolicy",
"retentionDuration": {
"count": 30,
"durationType": "Days"
}
}
},
{
"policyType": "Log",
"schedulePolicy": {
"schedulePolicyType": "LogSchedulePolicy",
"scheduleFrequencyInMins": 120
},
"retentionPolicy": {
"retentionPolicyType": "SimpleRetentionPolicy",
"retentionDuration": {
"count": 15,
"durationType": "Days"
}
}
}
],
"protectedItemsCount": 0
},
"resourceGroup": "SQLResourceGroup",
"tags": null,
"type": "Microsoft.RecoveryServices/vaults/backupPolicies"
}
Nach Erstellung der Richtlinie wird in der Ausgabe des Befehls die JSON-Richtlinie gezeigt, die Sie beim Ausführen des Befehls als Parameter übergeben haben.
Sie können den folgenden Abschnitt der Richtlinie ändern, um die erforderliche Sicherungshäufigkeit und die Aufbewahrungsdauer für differenzielle Sicherungen anzugeben.
Beispiel:
{
"policyType": "Differential",
"retentionPolicy": {
"retentionDuration": {
"count": 30,
"durationType": "Days"
},
"retentionPolicyType": "SimpleRetentionPolicy"
},
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunDays": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"scheduleRunFrequency": "Weekly",
"scheduleRunTimes": [
"2017-03-07T02:00:00+00:00"
],
"scheduleWeeklyFrequency": 0
}
}
Beispiel:
Wenn Sie differenzielle Sicherungen nur am Samstag ausführen und 60 Tage aufbewahren möchten, nehmen Sie die folgenden Änderungen an der Richtlinie vor:
- Ändern Sie den Zähler retentionDuration in 60 Tage.
- Geben Sie für ScheduleRunDays nur Samstag an.
{
"policyType": "Differential",
"retentionPolicy": {
"retentionDuration": {
"count": 60,
"durationType": "Days"
},
"retentionPolicyType": "SimpleRetentionPolicy"
},
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunDays": [
"Saturday"
],
"scheduleRunFrequency": "Weekly",
"scheduleRunTimes": [
"2017-03-07T02:00:00+00:00"
],
"scheduleWeeklyFrequency": 0
}
}
Schützen der neuen Datenbanken, die einer SQL-Instanz hinzugefügt wurden
Beim Registrieren einer SQL-Instanz bei einem Recovery Services-Tresor werden alle Datenbanken dieser Instanz automatisch ermittelt.
Wenn Sie jedoch später neue Datenbanken zur SQL-Instanz hinzugefügt haben, verwenden Sie den Befehl az backup protectable-item initialize. Mit diesem Befehl werden die neu hinzugefügten Datenbanken ermittelt.
az backup protectable-item initialize --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--workload-type SQLDataBase
Verwenden Sie anschließend das Cmdlet az backup protectable-item list, um alle Datenbanken aufzulisten, die für Ihre SQL-Instanz ermittelt wurden. In dieser Liste sind aber nicht die Datenbanken enthalten, für die die Sicherung bereits konfiguriert wurde. Nachdem die zu sichernde Datenbank ermittelt wurde, helfen Ihnen die Informationen unter Aktivieren der Sicherung für eine SQL-Datenbank weiter.
az backup protectable-item list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--workload-type SQLDataBase \
--protectable-item-type SQLDataBase \
--output table
Die neue Datenbank, die Sie sichern möchten, wird in dieser Liste angezeigt, die wie folgt aussieht:
Name Protectable Item Type ParentName ServerName IsProtected
--------------------------- ---------------------- ------------ ----------- ------------
sqldatabase;mssqlserver;db1 SQLDataBase mssqlserver testSQLVM NotProtected
sqldatabase;mssqlserver;db2 SQLDataBase mssqlserver testSQLVM NotProtected
Beenden des Schutzes für eine SQL-Datenbank
Sie können den Schutz einer SQL-Datenbank in den folgenden Prozessen beenden:
- Beenden aller zukünftigen Sicherungsaufträge und Löschen aller Wiederherstellungspunkte
- Beenden aller zukünftigen Sicherungsaufträge und Beibehalten der Wiederherstellungspunkte.
Wenn Sie die Wiederherstellungspunkte beibehalten, sollten Sie folgende Details beachten:
- Alle Wiederherstellungspunkte werden unbegrenzt beibehalten, und die gesamte Bereinigung endet mit der Beendigung des Schutzes unter Beibehaltung der Daten.
- Ihnen werden die geschützte Instanz und der verbrauchte Speicher in Rechnung gestellt.
- Wenn Sie eine Datenquelle löschen, ohne die Sicherungen zu beenden, treten bei neuen Sicherungen Fehler auf.
Die Prozesse zum Beenden des Schutzes sind unten aufgeführt.
Beendigung des Schutzes mit Beibehaltung der Daten
Verwenden Sie den Befehl az backup protection disable, um den Schutz zu beenden und die Daten beizubehalten.
az backup protection disable --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--item-name sqldatabase;mssqlserver;master \
--workload-type SQLDataBase \
--output table
Die Ausgabe sieht wie folgt aus:
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
Verwenden Sie den Befehl az backup job show, um den Status dieses Vorgangs zu überprüfen.
Beendigung des Schutzes ohne Beibehaltung der Daten
Verwenden Sie den Befehl az backup protection disable, um den Schutz zu beenden und die Daten nicht beizubehalten.
az backup protection disable --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--item-name sqldatabase;mssqlserver;master \
--workload-type SQLDataBase \
--delete-backup-data true \
--output table
Die Ausgabe sieht wie folgt aus:
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
Verwenden Sie den Befehl az backup job show, um den Status dieses Vorgangs zu überprüfen.
Schutz fortsetzen
Wenn Sie den Schutz für die SQL-Datenbank mit Beibehaltung der Daten beenden, können Sie ihn später wieder aktivieren bzw. fortsetzen. Sie können den Schutz nicht fortsetzen, wenn Sie die gesicherten Daten nicht beibehalten.
Verwenden Sie den Befehl az backup protection resume, um den Schutz fortzusetzen.
az backup protection resume --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--policy-name SQLPolicy \
--output table
Die Ausgabe sieht wie folgt aus:
Name ResourceGroup
------------------------------------ ---------------
b2a7f108-1020-4529-870f-6c4c43e2bb9e SQLResourceGroup
Verwenden Sie den Befehl az backup job show, um den Status dieses Vorgangs zu überprüfen.
Nächste Schritte
- Erfahren Sie mehr zum Sichern einer in einer Azure-VM ausgeführten SQL-Datenbank im Azure-Portal.
- Erfahren Sie mehr zum Verwalten einer in einer Azure-VM ausgeführten gesicherten SQL-Datenbank im Azure-Portal.