Automatisierte Sicherung für Azure-VMs mit SQL Server
Gilt für: SQL Server auf Azure-VMs
Automatisierte Backup konfiguriert automatisch Managed Backup auf Microsoft Azure für alle bestehenden und neuen Datenbanken auf SQL Server auf Azure-VMs, beginnend mit SQL Server 2016 oder späteren Standard-, Enterprise- oder Developer-Editionen. Dies bietet Ihnen die Möglichkeit, reguläre Datenbanksicherungen zu konfigurieren, die permanenten Azure Blob Storage-Speicher nutzen.
Voraussetzungen
Um automatisierte Backups für Ihren SQL Server auf Azure VM zu verwenden, benötigen Sie Folgendes:
- Eine mit der SQL-IaaS-Agent-Erweiterung registrierte SQL Server auf Azure VM.
- Windows Server 2012 R2 oder höher.
- SQL Server 2016 und höher Für SQL Server 2014 finden Sie die Informationen unter Automatisierte Sicherung für SQL Server 2014-VMs (Resource Manager).
- Datenbankkonfiguration:
- Zielbenutzerdatenbanken müssen das vollständige Wiederherstellungsmodell verwenden. Für Systemdatenbanken muss nicht das vollständige Wiederherstellungsmodell verwendet werden. Wenn Sie allerdings Protokollsicherungen für
model
odermsdb
benötigen, müssen Sie das vollständige Wiederherstellungsmodell verwenden. Weitere Informationen zu den Auswirkungen des vollständigen Wiederherstellungsmodells auf Sicherungen finden Sie unter Sichern beim vollständigen Wiederherstellungsmodell. - Die SQL Server-VM wurde bei der Erweiterung für den SQL-IaaS-Agent registriert, und das Feature Automatisierte Sicherung ist aktiviert. Da die Automatisierte Sicherung von der Erweiterung abhängt, wird die Automatisierte Sicherung nur für Zieldatenbanken von der Standardinstanz oder für eine einzelne benannte Instanz unterstützt. Wenn keine Standardinstanz und mehrere benannte Instanzen vorhanden sind, kann die Erweiterung für den SQL-IaaS-Agent nicht ausgeführt werden, und die Automatisierte Sicherung funktioniert nicht.
- Wenn Sie automatisierte Sicherungen für ein sekundäres AlwaysOn-Verfügbarkeitsgruppenreplikat ausführen, muss das Replikat Lesbar sein, damit die Sicherungen erfolgreich ausgeführt werden können.
- Zielbenutzerdatenbanken müssen das vollständige Wiederherstellungsmodell verwenden. Für Systemdatenbanken muss nicht das vollständige Wiederherstellungsmodell verwendet werden. Wenn Sie allerdings Protokollsicherungen für
Einstellungen
In der folgenden Tabelle werden die Optionen beschrieben, die für die automatisierte Sicherung konfiguriert werden können. Die tatsächlichen Konfigurationsschritte variieren abhängig davon, ob Sie das Azure-Portal oder Azure Windows PowerShell-Befehle verwenden. Bei der Automatisierten Sicherung wird standardmäßig die Sicherungskomprimierung verwendet und kann nicht deaktiviert werden.
Basic Settings
Einstellung | Bereich (Standard) | BESCHREIBUNG |
---|---|---|
Automatisierte Sicherung | Aktivieren/Deaktivieren (deaktiviert) | Aktiviert oder deaktiviert die automatisierte Sicherung für eine Azure-VM mit SQL Server 2016 oder höher Developer, Standard oder Enterprise. |
Aufbewahrungszeitraum | 1 bis 90 Tage (90 Tage) | Die Anzahl der Tage, in der der Dienst Sicherungsmetadaten in msdb aufbewahrt. Nachdem der Aufbewahrungszeitraum für eine Sicherung abgelaufen ist, werden die Metadaten von msdb gelöscht, die Dateien werden jedoch nicht aus dem Speichercontainer gelöscht. Sie können eine Lebenszyklusverwaltungsrichtlinie für Ihr Speicherkonto verwenden, um die Sicherungsaufbewahrung mit der Kostenverwaltung entsprechend Ihren geschäftlichen Anforderungen abzuwägen. |
Speicherkonto | Azure-Speicherkonto | Ein Azure-Speicherkonto, mit dem Dateien der automatisierten Sicherung im Blob-Speicher gespeichert werden. An diesem Speicherort wird ein Container zum Speichern aller Sicherungsdateien erstellt. Die Namenskonvention für die Sicherungsdatei enthält das Datum, die Uhrzeit sowie die Datenbank-GUID. |
Verschlüsselung | Aktivieren/Deaktivieren (deaktiviert) | Aktiviert oder deaktiviert die Sicherungsverschlüsselung. Wenn die Sicherungsverschlüsselung aktiviert ist, befinden sich die Zertifikate zum Wiederherstellen der Sicherung im angegebenen Speicherkonto im gleichen automaticbackup -Container (mit der gleichen Namenskonvention). Wenn das Kennwort geändert wird, wird ein neues Zertifikat mit diesem Kennwort generiert, das alte Zertifikat bleibt jedoch zum Wiederherstellen vorheriger Sicherungen erhalten. |
Kennwort | Kennworttext | Ein Kennwort für Verschlüsselungsschlüssel. Dieses Kennwort ist nur erforderlich, wenn die Verschlüsselung aktiviert ist. Um eine verschlüsselte Sicherung wiederherzustellen, benötigen Sie das richtige Kennwort und das zugehörige Zertifikat, das beim Erstellen der Sicherung verwendet wurde. |
Erweiterte Einstellungen
Einstellung | Bereich (Standard) | BESCHREIBUNG |
---|---|---|
System Database Backups (Systemdatenbanksicherungen) | Aktivieren/Deaktivieren (deaktiviert) | Ist dieses Feature aktiviert, werden auch die Systemdatenbanken master , msdb und model gesichert. Vergewissern Sie sich bei den Datenbanken msdb und model , dass sie sich im vollständigen Wiederherstellungsmodus befinden, wenn Sie Protokollsicherungen erstellen möchten. Für master werden nie Protokollsicherungen erstellt, und für tempdb werden gar keine Sicherungen erstellt. |
Sicherungszeitplan | Manuell/Automatisiert (automatisch) | Der Sicherungszeitplan wird standardmäßig automatisch auf der Grundlage des Protokollwachstums festgelegt. Bei einem manuellen Sicherungszeitplan kann der Benutzer das gewünschte Zeitfenster für Sicherungen angeben. In diesem Fall werden Sicherungen ausschließlich gemäß dem angegebenen Intervall und während des angegebenen Zeitfensters eines bestimmten Tags durchgeführt. |
Full backup frequency (Intervall für vollständige Sicherungen) | Täglich/Wöchentlich | Intervall für vollständige Sicherungen. In beiden Fällen werden vollständige Sicherungen während des nächsten geplanten Zeitfensters gestartet. Bei Verwendung der wöchentlichen Option können sich die Sicherungen über mehrere Tage erstrecken, bis alle Datenbanken erfolgreich gesichert wurden. |
Full backup start time (Startzeit für vollständige Sicherungen) | 00:00–23:00 (01:00) | Die Startzeit eines bestimmten Tags, an dem eine vollständige Sicherung stattfinden kann. |
Full backup time window (Zeitfenster für vollständige Sicherungen) | 1–23 Stunden (1 Stunde) | Das Zeitfenster eines bestimmten Tags, an dem eine vollständige Sicherung stattfinden kann. |
Log backup frequency (Intervall für Protokollsicherungen) | 5–60 Minuten (60 Minuten) | Intervall für Protokollsicherungen. |
Hinweis
Der Zeitplan für automatisierte Backups erstellt Backups auf der Grundlage des Protokollwachstums. Die Verwendung automatisierter Backups, während sich Ihre Datenbanken im einfachen Wiederherstellungsmodus befinden, wird nicht empfohlen.
Grundlegendes zum Intervall für vollständige Sicherungen
Es ist wichtig, den Unterschied zwischen täglichen und wöchentlichen vollständigen Sicherungen zu verstehen. Betrachten Sie die folgenden beiden Beispielszenarien.
Szenario 1: Wöchentliche Sicherungen
Sie verfügen über einen virtuellen SQL Server-Computer mit einer Reihe großer Datenbanken.
Am Montag aktivieren Sie die automatisierte Sicherung mit den folgenden Einstellungen:
- Sicherungszeitplan: Manuell
- Häufigkeit der vollständigen Sicherung: Wöchentlich
- Startzeit für vollständige Sicherung: 01:00
- Zeitfenster für vollständige Sicherung: 1 Stunde
Das nächste verfügbare Sicherungszeitfenster ist also am Dienstag ab 1 Uhr für eine Stunde. Zu dieser Zeit beginnt die automatisierte Sicherung damit, Ihre Datenbanken nacheinander zu sichern. In diesem Szenario sind Ihre Datenbanken so groß, dass die vollständige Sicherung nur für die ersten Datenbanken abgeschlossen werden kann. Nach einer Stunde wurden also noch nicht alle Datenbanken gesichert.
In diesem Fall beginnt die automatisierte Sicherung am nächsten Tag (Mittwoch, ab 1 Uhr für eine Stunde) damit, die restlichen Datenbanken zu sichern. Sollten dabei nicht alle Datenbanken gesichert werden können, wird am nächsten Tag zur gleichen Zeit ein erneuter Versuch gestartet. Dies wird fortgesetzt, bis alle Datenbanken erfolgreich gesichert wurden.
Am nächsten Dienstag beginnt die automatisierte Sicherung dann wieder mit der Sicherung aller Datenbanken.
Dieses Szenario zeigt, dass sich die Aktivität der automatisierten Sicherung auf das angegebene Zeitfenster beschränkt und jede Datenbank einmal pro Woche gesichert wird. Dies zeigt auch, dass sich Sicherungen über mehrere Tage erstrecken können, falls nicht alle Sicherungen an einem einzelnen Tag abgeschlossen werden können.
Szenario 2: Tägliche Sicherungen
Sie verfügen über einen virtuellen SQL Server-Computer mit einer Reihe großer Datenbanken.
Am Montag aktivieren Sie die automatisierte Sicherung mit den folgenden Einstellungen:
- Sicherungszeitplan: Manuell
- Häufigkeit der vollständigen Sicherung: Täglich
- Startzeit für vollständige Sicherung: 22:00
- Zeitfenster für vollständige Sicherung: 6 Stunden
Das nächste verfügbare Sicherungszeitfenster ist also am Montag ab 10 Uhr für sechs Stunden. Zu dieser Zeit beginnt die automatisierte Sicherung damit, Ihre Datenbanken nacheinander zu sichern.
Am Dienstag wird dann ab 10 Uhr erneut für sechs Stunden eine vollständige Sicherung aller Datenbanken durchgeführt.
Wichtig
Sicherungen werden in jedem Intervall sequenziell durchgeführt. Planen Sie für Instanzen mit einer großen Anzahl von Datenbanken das Sicherungsintervall mit ausreichend Zeit, um alle Sicherungen zu ermöglichen. Wenn Sicherungen innerhalb des angegebenen Intervalls nicht abgeschlossen werden können, werden möglicherweise einige Sicherungen übersprungen, und die Zeit zwischen den Sicherungen für eine einzelne Datenbank ist möglicherweise höher als die konfigurierte Sicherungsintervallzeit, was sich negativ auf die Restore Point Objective (RPO) auswirken könnte.
Konfigurieren neuer VMs
Verwenden Sie das Azure-Portal zum Konfigurieren der automatisierten Sicherung, wenn Sie einen neuen virtuellen Computer mit SQL Server 2016 oder höher im Resource Manager-Bereitstellungsmodell erstellen.
Wählen Sie auf der Registerkarte SQL Server-Einstellungen unter Automatisierte Sicherung die Option Aktivieren aus. Wenn Sie die Automatisierte Sicherung aktivieren, können Sie folgende Einstellungen konfigurieren:
- Aufbewahrungszeitraum für Sicherungen (bis zu 90 Tage)
- Speicherkonto und Speichercontainer, die für Sicherungen verwendet werden
- Verschlüsselungsoption und Kennwort für Sicherungen
- Sichern von Systemdatenbanken
- Konfigurieren des Sicherungszeitplans
Wählen Sie Aktivieren aus, um die Sicherung zu verschlüsseln. Geben Sie dann das Kennwortan. Azure erstellt ein Zertifikat zum Verschlüsseln der Sicherungen und verwendet das angegebene Kennwort, um das Zertifikat zu schützen.
Wählen Sie Speichercontainer auswählen aus, um den Container anzugeben, in dem Ihre Sicherungen gespeichert werden sollen.
Standardmäßig wird der Zeitplan automatisch festgelegt. Allerdings können Sie durch Auswahl von Manuell auch einen eigenen Zeitplan erstellen. Damit können Sie die Sicherungshäufigkeit, das Zeitfenster für die Sicherung und die Protokollsicherungshäufigkeit in Minuten konfigurieren.
Auf dem folgenden Screenshot von Azure-Portal sehen Sie die Einstellungen für die Automatisierte Sicherung, wenn Sie eine neue SQL Server-VM erstellen.
Konfigurieren vorhandener VMs
Für vorhandene virtuelle SQL Server-Computer navigieren Sie zur SQL-VM-Ressource und wählen dann Sicherungen aus, um Ihre Automatisierte Sicherung zu konfigurieren.
Wählen Sie Aktivieren aus, um Ihre Einstellungen für die automatisierte Sicherung zu konfigurieren.
Sie können den Aufbewahrungszeitraum (bis zu 90 Tage), den Container für das Speicherkonto, in dem Sie Ihre Sicherungen speichern möchten, sowie die Verschlüsselung und den Sicherungszeitplan konfigurieren. Der Zeitplan ist standardmäßig automatisiert.
Wenn Sie einen eigenen Sicherungszeitplan festlegen möchten, wählen Sie Manuell aus, und konfigurieren Sie die Sicherungshäufigkeit (unabhängig davon, ob Systemdatenbanken gesichert werden sollen) und das Intervall für die Sicherung des Transaktionsprotokolls in Minuten.
Wählen Sie abschließend die Schaltfläche Übernehmen am unteren Rand der Einstellungenseite Sicherungen aus, um Ihre Änderungen zu speichern.
Falls Sie die Automatisierte Sicherung zum ersten Mal aktivieren, konfiguriert Azure den SQL Server-IaaS-Agent im Hintergrund. Im Azure-Portal wird währenddessen u.U. nicht angezeigt, dass die automatisierte Sicherung konfiguriert wird. Warten Sie einige Minuten, bis der Agent installiert und konfiguriert wurde. Danach werden die neuen Einstellungen im Azure-Portal angezeigt.
Konfigurieren mithilfe von PowerShell
Die automatisierte Sicherung kann mithilfe von PowerShell konfiguriert werden. Führen Sie zur Vorbereitung folgende Schritte aus:
- Laden Sie die aktuelle Version von Azure PowerShell herunter, und installieren Sie sie.
- Öffnen Sie Windows PowerShell, und stellen Sie mit dem Befehl Connect-AzAccount eine Verknüpfung mit Ihrem Konto her.
Hinweis
In diesem Artikel wird das Azure Az PowerShell-Modul verwendet. Dieses PowerShell-Modul wird für die Interaktion mit Azure empfohlen. Informationen zu den ersten Schritten mit dem Az PowerShell-Modul finden Sie unter Installieren von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.
Installieren der Erweiterung für SQL Server-IaaS
Wenn Sie einen virtuellen SQL Server-Computer über das Azure-Portal bereitgestellt haben, müsste die SQL Server-IaaS-Erweiterung bereits installiert sein. Indem Sie den Befehl Get-AzVM ausführen und sich die Eigenschaft Extensions ansehen, können Sie ermitteln, ob dies für Ihre VM bereits der Fall ist.
$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"
(Get-AzVM -Name $vmname -ResourceGroupName $resourcegroupname).Extensions
Wenn die SQL Server-IaaS-Agent-Erweiterung installiert ist, sollte diese als „SqlIaaSAgent“ oder „SQLIaaSExtension“ aufgeführt sein. Außerdem sollte für die Erweiterung unter ProvisioningState der Zustand „Succeeded“ angezeigt werden.
Wenn die Erweiterung nicht installiert ist oder bei der Bereitstellung ein Fehler aufgetreten ist, können Sie sie mit dem folgenden Befehl installieren. Neben dem Namen des virtuellen Computers und der Ressourcengruppe müssen Sie auch die Region ( $region) angeben, in der sich Ihr virtueller Computer befindet.
$region = "EASTUS2"
Set-AzVMSqlServerExtension -VMName $vmname `
-ResourceGroupName $resourcegroupname -Name "SQLIaasExtension" `
-Version "2.0" -Location $region
Überprüfen der aktuellen Einstellungen
Wenn Sie die automatisierte Sicherung bei der Bereitstellung aktiviert haben, können Sie über PowerShell Ihre aktuelle Konfiguration überprüfen. Führen Sie den Befehl Get-AzVMSqlServerExtension aus, und sehen Sie sich die Eigenschaft AutoBackupSettings an:
(Get-AzVMSqlServerExtension -VMName $vmname -ResourceGroupName $resourcegroupname).AutoBackupSettings
Die Ausgabe sollte in etwa wie folgt aussehen:
Enable : True
EnableEncryption : False
RetentionPeriod : 30
StorageUrl : https://test.blob.core.windows.net/
StorageAccessKey :
Password :
BackupSystemDbs : False
BackupScheduleType : Manual
FullBackupFrequency : WEEKLY
FullBackupStartTime : 2
FullBackupWindowHours : 2
LogBackupFrequency : 60
Wenn laut der Ausgabe Enable auf False festgelegt ist, müssen Sie die automatisierte Sicherung aktivieren. Die gute Nachricht: Die Vorgehensweise zum Aktivieren der automatisierten Sicherung unterscheidet sich nicht von der Vorgehensweise zum Konfigurieren. Entsprechende Informationen finden Sie im nächsten Abschnitt.
Hinweis
Wenn Sie eine Änderung vorgenommen haben und die Einstellungen direkt danach überprüfen, werden unter Umständen noch die alten Konfigurationswerte zurückgegeben. Warten Sie einige Minuten, und überprüfen Sie die Einstellungen dann erneut, um sich zu vergewissern, dass die Änderungen angewendet wurden.
Konfigurieren der automatisierten Sicherung
Mithilfe von PowerShell können Sie die automatisierte Sicherung nicht nur aktivieren, sondern auch jederzeit ihre Konfiguration und ihr Verhalten ändern.
Wählen Sie zunächst ein Speicherkonto für die Sicherungsdateien aus, oder erstellen Sie eines. Das folgende Skript wählt ein Speicherkonto aus. Ist kein Speicherkonto vorhanden, wird eines erstellt.
$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"
$storage_accountname = "yourstorageaccount"
$storage_url = "https://yourstorageaccount.blob.core.windows.net/"
$storage = Get-AzStorageAccount -ResourceGroupName $resourcegroupname `
-Name $storage_accountname -ErrorAction SilentlyContinue
If (-Not $storage)
{ $storage = New-AzStorageAccount -ResourceGroupName $resourcegroupname `
-Name $storage_accountname -SkuName Standard_GRS -Location $region }
Hinweis
Die automatisierte Sicherung unterstützt zwar nicht das Speichern von Sicherungen in Storage Premium, kann aber Sicherungen von VM-Datenträgern erstellen, die Storage Premium verwenden.
Wenn Sie einen benutzerdefinierten Container im Speicherkonto für die Backups verwenden möchten, verwenden Sie das folgende Skript, um nach dem Container zu suchen oder ihn zu erstellen, wenn er nicht existiert.
$storage_container = "backupcontainer"
New-AzStorageContainer -Name $storage_container -Context $storage.Context
if (!(Get-AzStorageAccount -StorageAccountName $storage_accountname -ResourceGroupName $resourcegroupname | Get-AzStorageContainer | Where-Object { $_.Name -eq $storage_container })){ `
New-AzStorageContainer -Name $storage_container -Context $storage.Context `
} `
else `
{ `
Write-Warning "Container $storage_container already exists." `
}
Verwenden Sie dann das folgende Skript, um den Zugriffsschlüssel für das Speicherkonto abzurufen:
$accesskey = (Get-AzStorageAccountKey -ResourceGroupName $resourcegroupname -Name $storage_accountname)[0].value
Verwenden Sie dann den Befehl Update-AzSqlVM, um die Einstellungen der automatisierten Sicherung so zu konfigurieren, dass Sicherungen in dem Azure-Speicherkonto gespeichert werden. In diesem Beispiel ist für die Sicherungen eine Aufbewahrungsdauer von zehn Tagen festgelegt. Systemdatenbanksicherungen sind aktiviert. Vollständige Sicherungen werden jeden Samstag (wöchentlich) ab 20:00 Uhr innerhalb eines zweistündigen Zeitfensters durchgeführt. Für Protokollsicherungen ist ein 30-minütiges Intervall geplant.
Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingBackupScheduleType Manual `
-AutoBackupSettingFullBackupFrequency Weekly
-AutoBackupSettingDaysOfWeek Saturday `
-AutoBackupSettingFullBackupStartTime 20 `
-AutoBackupSettingFullBackupWindowHour 2 `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod 10 `
-AutoBackupSettingLogBackupFrequency 30 `
-AutoBackupSettingStorageContainerName $storage_container `
-AutoBackupSettingBackupSystemDb
Die Installation und Konfiguration des SQL Server-IaaS-Agents kann mehrere Minuten in Anspruch nehmen.
Um die Verschlüsselung zu aktivieren, ändern Sie das vorherige Skript, um den -AutoBackupSettingEnableEncryption-Parameter und ein Kennwort (sichere Zeichenfolge) für den -AutoBackupSettingPassword-Parameter zu übergeben. Das folgende Skript aktiviert die Einstellungen der automatisierten Sicherung im vorherigen Beispiel und fügt die Verschlüsselung hinzu.
$password = "r@ndom Va1ue"
$encryptionpassword = $password | ConvertTo-SecureString -AsPlainText -Force
Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingBackupScheduleType Manual `
-AutoBackupSettingFullBackupFrequency Weekly `
-AutoBackupSettingDaysOfWeek Saturday `
-AutoBackupSettingFullBackupStartTime 20 `
-AutoBackupSettingFullBackupWindowHour 2 `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod 10 `
-AutoBackupSettingLogBackupFrequency 30 `
-AutoBackupSettingEnableEncryption `
-AutoBackupSettingPassword $encryptionpassword `
-AutoBackupSettingStorageContainerName $storage_container `
-AutoBackupSettingBackupSystemDb
Überprüfen Sie die Konfiguration der automatisierten Sicherung, um sich zu vergewissern, dass Ihre Einstellungen angewendet wurden.
Deaktivieren der automatisierten Sicherung
Um das automatisierte Backup zu deaktivieren, führen Sie dasselbe Skript aus, wobei der Parameter -AutoBackupSettingEnable im Befehl Update-AzSqlVM auf $false festgelegt ist. Wenn der Wert auf $false gesetzt wird, ist die Funktion deaktiviert. Ähnlich wie die Installation kann auch das Deaktivieren der automatisierten Sicherung mehrere Minuten dauern.
Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable:$false
Beispielskript
Das folgende Skript stellt einen Satz von Variablen bereit, die Sie anpassen können, um die automatisierte Sicherung für Ihren virtuellen Computer zu aktivieren und zu konfigurieren. Unter Umständen müssen Sie das Skript an Ihre individuellen Anforderungen anpassen. So müssen Sie das Skript beispielsweise ändern, wenn Sie die Sicherung von Systemdatenbanken deaktivieren oder die Verschlüsselung aktivieren möchten.
$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"
$region = "Azure region name such as EASTUS2"
$storage_accountname = "yourstorageaccount"
$storage_url = "https://yourstorageaccount.blob.core.windows.net/"
$retentionperiod = 10
$backupscheduletype = "Manual"
$fullbackupfrequency = "Weekly"
$fullbackupdayofweek = "Saturday"
$fullbackupstarthour = "20"
$fullbackupwindow = "2"
$logbackupfrequency = "30"
# ResourceGroupName is the resource group which is hosting the VM where you are deploying the SQL Server IaaS Extension
Set-AzVMSqlServerExtension -VMName $vmname `
-ResourceGroupName $resourcegroupname -Name "SQLIaasExtension" `
-Version "2.0" -Location $region
# Creates/use a storage account to store the backups
$storage = Get-AzStorageAccount -ResourceGroupName $resourcegroupname `
-Name $storage_accountname -ErrorAction SilentlyContinue
If (-Not $storage)
{ $storage = New-AzStorageAccount -ResourceGroupName $resourcegroupname `
-Name $storage_accountname -SkuName Standard_GRS -Location $region }
# Creates/uses a custom storage account container
$storage_container = "yourbackupcontainer"
if (!(Get-AzStorageAccount -StorageAccountName $storage_accountname -ResourceGroupName $resourcegroupname | Get-AzStorageContainer | Where-Object { $_.Name -eq $storage_container })){ `
New-AzStorageContainer -Name $storage_container -Context $storage.Context `
} `
else `
{ `
Write-Warning "Container $storage_container already exists." `
}
# Get storage account access key
$accesskey = (Get-AzStorageAccountKey -ResourceGroupName $resourcegroupname -Name $storage_accountname)[0].value
# Configure Automated Backup settings
Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingBackupScheduleType $backupscheduletype `
-AutoBackupSettingFullBackupFrequency $fullbackupfrequency `
-AutoBackupSettingDaysOfWeek $fullbackupdayofweek `
-AutoBackupSettingFullBackupStartTime $fullbackupstarthour `
-AutoBackupSettingFullBackupWindowHour $fullbackupwindow `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod $retentionperiod `
-AutoBackupSettingLogBackupFrequency $logbackupfrequency `
-AutoBackupSettingStorageContainerName $storage_container `
-AutoBackupSettingBackupSystemDb
Sicherung mit Verschlüsselungszertifikaten
Wenn Sie sich entscheiden, Ihre Sicherungen zu verschlüsseln, wird ein Verschlüsselungszertifikat generiert und im gleichen Speicherkonto wie die Sicherungen gespeichert. In diesem Szenario müssen Sie auch ein Passwort eingeben, mit dem die Verschlüsselungszertifikate geschützt werden, die zum Verschlüsseln und Entschlüsseln Ihrer Sicherungen verwendet werden. Auf diese Weise müssen Sie sich keine Gedanken zu Ihren Sicherungen über die Konfiguration dieses Features hinaus machen. Außerdem wird so sichertestellt, dass Ihre Sicherungen sicher sind.
Wenn die Sicherungsverschlüsselung aktiviert ist, wird dringend empfohlen, zu prüfen, ob das Verschlüsselungszertifikat erfolgreich erstellt und hochgeladen wurde, um die Wiederherstellbarkeit Ihrer Datenbanken sicherzustellen. Sie können dies tun, indem Sie sofort eine Datenbank erstellen und die Verschlüsselungszertifikate und -daten ordnungsgemäß im neu erstellten Container sichern. Dies zeigt, dass alles richtig konfiguriert wurde und keine Anomalien aufgetreten sind.
Wenn das Zertifikat aus irgendeinem Grund nicht hochgeladen werden konnte, können Sie den Zertifikat-Manager verwenden, um das Zertifikat zu exportieren und zu speichern. Sie sollten sie jedoch nicht auf demselben virtuellen Computer speichern, da dadurch nicht sichergestellt wird, dass Sie Zugriff auf das Zertifikat haben, wenn der virtuelle Computer abstürzt. Um zu wissen, ob das Zertifikat nach dem Ändern oder Erstellen der Konfiguration für die automatisierte Sicherung ordnungsgemäß gesichert wurde, können Sie die Ereignisprotokolle in der VM überprüfen. Wenn die Sicherung fehlgeschlagen ist, wird diese Fehlermeldung angezeigt:
Wenn die Zertifikate ordnungsgemäß gesichert wurden, wird diese Meldung in den Ereignisprotokollen angezeigt:
Allgemein wird empfohlen, die Integrität Ihrer Sicherungen von Zeit zu Zeit zu überprüfen. Um Ihre Sicherungen wiederherstellen zu können, sollten Sie die folgenden Schritte ausführen:
Vergewissern Sie sich, dass Ihre Verschlüsselungszertifikate gesichert wurden und Sie sich Ihr Passwort merken. Wenn Sie dies nicht tun, können Sie Ihre Sicherungen nicht entschlüsseln und wiederherstellen. Wenn Ihre Zertifikate aus irgendeinem Grund nicht ordnungsgemäß gesichert wurden, können Sie dies manuell ausführen, indem Sie die folgende T-SQL-Abfrage ausführen:
BACKUP MASTER KEY TO FILE = <file_path> ENCRYPTION BY PASSWORD = <password> BACKUP CERTIFICATE [AutoBackup_Certificate] TO FILE = <file_path> WITH PRIVATE KEY (FILE = <file_path>, ENCRYPTION BY PASSWORD = <password>)
Vergewissern Sie sich, dass Ihre Sicherungsdateien mit mindestens 1 vollständiger Sicherung hochgeladen werden. Da Fehler auftreten, sollten Sie sicherstellen, dass Sie immer über mindestens eine vollständige Sicherung verfügen, bevor Sie Ihre VM löschen, oder falls Ihre VM beschädigt wird, damit Sie wissen, dass Sie weiterhin auf Ihre Daten zugreifen können. Sie sollten sicherstellen, dass die Sicherung im Speicher sicher und wiederherstellbar ist, bevor Sie die Datenträger Ihrer VM löschen.
Überwachung
Zum Überwachen der automatisierten Sicherung in SQL Server 2016 oder höher stehen Ihnen im Wesentlichen zwei Optionen zur Verfügung. Da die automatisierte Sicherung das SQL Server-Feature Managed Backup verwendet, gelten für beide Optionen die gleichen Überwachungstechniken.
Zum einen können Sie den Status durch Aufruf von msdb.managed_backup.sp_get_backup_diagnostics abrufen. Die andere Möglichkeit besteht darin, die Tabellenwertfunktion msdb.managed_backup.fn_get_health_status abzufragen.
Eine andere Option besteht darin, das integrierte Datenbank-E-Mail-Feature für Benachrichtigungen zu verwenden.
- Rufen Sie die gespeicherte Prozedur msdb.managed_backup.sp_set_parameter auf, um dem Parameter SSMBackup2WANotificationEmailIds eine E-Mail-Adresse zuzuweisen.
- Aktivieren Sie SendGrid, um die E-Mails von der Azure-VM zu senden.
- Verwenden Sie den SMTP-Server und den Benutzernamen, um das Datenbank-E-Mail-Feature zu konfigurieren. Sie können das Datenbank-E-Mail-Feature in SQL Server Management Studio oder mithilfe von Transact-SQL-Befehlen konfigurieren. Weitere Informationen finden Sie unter Datenbank-E-Mail.
- Konfigurieren Sie den SQL Server-Agent für die Verwendung von Datenbank-E-Mail.
- Stellen Sie sicher, dass der SMTP-Port sowohl in der lokalen VM-Firewall als auch in der Netzwerksicherheitsgruppe für die VM zugelassen ist.
Bekannte Probleme
Berücksichtigen Sie diese bekannten Probleme, wenn Sie mit der Automatisierten Sicherung arbeiten.
Die Automatisierte Sicherung kann nicht über das Azure-Portal aktiviert werden
In der folgenden Tabelle sind die möglichen Lösungen aufgeführt, wenn Probleme beim Aktivieren der Automatisierten Sicherung vom Azure-Portal aus auftreten:
Symptom | Lösung |
---|---|
Beim Deaktivieren der Automatisierten Sicherung tritt ein Fehler auf, wenn sich Ihre IaaS-Erweiterung in einem fehlerhaften Zustand befindet. | Reparieren Sie die SQL-IaaS-Erweiterung, wenn sie sich in einem fehlerhaften Zustand befindet. |
Beim Aktivieren der Automatisierten Sicherung tritt ein Fehler auf, wenn Sie über Hunderte von Datenbanken verfügen | Dies ist eine bekannte Einschränkung bei der SQL-IaaS-Agent-Erweiterung. Um dieses Problem zu umgehen, können Sie die Verwaltete Sicherung direkt aktivieren, anstatt die SQL-IaaS-Agent-Erweiterung zum Konfigurieren der Automatisierten Sicherung zu verwenden. |
Beim Deaktivieren der Automatisierten Sicherung tritt aufgrund von Metadatenproblemen ein Fehler auf. | Beenden Sie den SQL-IaaS-Agent-Dienst. Führen Sie den T-SQL-Befehl aus: use msdb exec autoadmin_metadata_delete . Starten Sie den SQL-IaaS-Agent-Dienst, und versuchen Sie, die Automatisierte Sicherung über das Azure-Portal erneut zu aktivieren. |
Aktivieren der Automatisierten Sicherung für die FCI | Sicherungen mit privaten Endpunkten werden nicht unterstützt. Verwenden Sie den vollständigen Speicherkonto-URI für Ihre Sicherung. |
Sichern mehrerer SQL-Instanzen mithilfe der Automatisierten Sicherung | Die Automatisierte Sicherung unterstützt derzeit nur eine SQL Server-Instanz. Wenn Sie über mehrere benannte Instanzen und die Standardinstanz verfügen, funktioniert die Automatisierte Sicherung mit der Standardinstanz. Wenn Sie über mehrere benannte Instanzen verfügen und keine Standardinstanz, tritt beim Aktivieren der Automatisierten Sicherung ein Fehler auf. |
Die Automatisierte Sicherung kann aufgrund des Kontos und von Berechtigungen nicht aktiviert werden | Überprüfen Sie Folgendes: – Der SQL Server-Agent wird ausgeführt. – Das NT Service\SqlIaaSExtensionQuery-Konto verfügt sowohl in SQL Server als auch für die Ressource SQL-VM im Azure-Portal über die richtigen Berechtigungen für das Feature „Automatisierte Sicherung“. – Das SA-Konto wurde nicht umbenannt, aber das Deaktivieren ist akzeptabel. |
Bei der automatisierten Sicherung tritt bei SQL 2016 oder höher ein Fehler auf | Öffentlichen Blobzugriff gestatten ist für das Speicherkonto aktiviert. Dies bietet eine vorübergehende Problemumgehung für ein bekanntes Problem. |
Häufige Probleme mit automatisiertem oder verwaltetem Backup
In der folgenden Tabelle sind mögliche Fehler und Lösungen bei der Arbeit mit der Automatisierten Sicherung aufgeführt:
Symptom | Lösung |
---|---|
Fehler bei der Automatisierten/Verwalteten Sicherung aufgrund von Konnektivitätsproblemen mit dem Speicherkonto/aufgrund von Timeoutfehlern | Überprüfen Sie, ob die Netzwerksicherheitsgruppe (NSG) für das virtuelle Netzwerk und die Windows-Firewall keine ausgehenden Verbindungen zwischen dem virtuellen Computer (VM) und dem Speicherkonto an Port 443 blockieren. |
Fehler bei der Automatisierten/Verwalteten Sicherung aufgrund von hoher Arbeitsspeicher- oder E/A-Auslastung | Überprüfen Sie, ob Sie „Maximaler Serverarbeitsspeicher“ erhöhen und/oder die Größe des Datenträgers/der VM ändern können, wenn der E/A- oder VM-Grenzwert überschritten wird. Wenn Sie eine Verfügbarkeitsgruppe verwenden, erwägen Sie, Ihre Sicherungen auf den sekundären Knoten auszulagern. |
Fehler bei der Automatisierten Sicherung nach dem Umbenennen des Servers | Wenn Sie den Hostnamen Ihres Computers geändert haben, müssen Sie den Hostnamen auch in SQL Server ändern. |
Fehler: Bei dem Vorgang ist ein interner Fehler aufgetreten. Das Argument darf keine leere Zeichenfolge sein.\r\nParametername: sasToken Versuchen Sie es später noch einmal. | Der Grund hierfür ist wahrscheinlich, dass der SQL Server-Agent-Dienst nicht über die korrekten Berechtigungen für den Identitätswechsel verfügt. Ändern Sie den SQL Server-Agent-Dienst, um ein anderes Konto zu verwenden, um dieses Problem zu beheben. |
Fehler: SQL Server Managed Backup to Microsoft Azure kann die Standardsicherungseinstellungen für die SQL Server-Instanz nicht konfigurieren, weil die Container-URL ungültig war. Es ist ferner möglich, dass Ihre SAS-Anmeldeinformationen ungültig sind. | Dieser Fehler kann angezeigt werden, wenn Sie über eine große Anzahl von Datenbanken verfügen. Verwenden Sie die Verwaltete Sicherung anstelle der Automatisierten Sicherung. |
Fehler beim Auftrag für die Automatisierte Sicherung nach dem Neustart der VM | Stellen Sie sicher, dass der SQL-Agent-Dienst ausgeführt wird. |
Die verwaltete Sicherung schlägt zeitweilig fehl/Fehler: Das Timeout für die Ausführung ist abgelaufen | Dies ist ein bekanntes Problem, das in CU18 für SQL Server 2019 und [KB4040376] für SQL Server 2014-2017 behoben wurde. |
Fehler: Der Remoteserver hat einen Fehler zurückgegeben: (403) Verboten | Reparieren Sie die SQL-IaaS-Agent-Erweiterung. |
Fehler 3202: Fehler beim Schreiben in das Speicherkonto 13 (Die Daten sind ungültig) | Entfernen Sie die unveränderliche Blobrichtlinie für den Speichercontainer, und stellen Sie sicher, dass das Speicherkonto mindestens TLS 1.0 verwendet. |
Fehler 3063: Schreiben auf das Sicherungsblockblob-Gerät. Das Gerät hat den Maximalwert der zulässigen Sperren erreicht. | Dies kann passieren, wenn Sie automatisierte Sicherungen aus einem sekundären AlwaysOn-Verfügbarkeitsgruppenreplikat ausführen, deren Readable -Konfiguration auf NO eingestellt ist. Damit automatisierte Sicherungen an einem sekundären Replikat arbeiten können, muss das Replikat lesbar sein. |
Ein Backup für einen bestimmten Tag kann nicht geplant werden | Wenn Sie automatisierte Backups für SQL Server 2014 verwenden, wird dies erwartet. Sie können einen Backupzeitplan ab SQL Server 2016 konfigurieren. |
Fehler beim Deaktivieren der Automatisierten oder Verwalteten Sicherung
In der folgenden Tabelle sind die möglichen Lösungen aufgeführt, wenn Probleme beim Deaktivieren der Automatisierten Sicherung vom Azure-Portal aus auftreten:
Symptom | Lösung |
---|---|
Beim Deaktivieren automatisierter Sicherungen tritt ein Fehler auf, wenn sich Ihre IaaS-Erweiterung in einem fehlerhaften Zustand befindet. | Reparieren Sie die SQL-IaaS-Erweiterung, wenn sie sich in einem fehlerhaften Zustand befindet. |
Beim Deaktivieren der Automatisierten Sicherung tritt aufgrund von Metadatenproblemen ein Fehler auf | Beenden Sie den SQL-IaaS-Agent-Dienst. Führen Sie den T-SQL-Befehl aus: use msdb exec autoadmin_metadata_delete . Starten Sie den SQL-IaaS-Agent-Dienst, und versuchen Sie, die Automatisierte Sicherung über das Azure-Portal zu deaktivieren. |
Die Automatisierte Sicherung kann aufgrund des Kontos und von Berechtigungen nicht deaktiviert werden | Überprüfen Sie Folgendes: – Der SQL Server-Agent wird ausgeführt. – Das NT Service\SqlIaaSExtensionQuery-Konto verfügt sowohl in SQL Server als auch für die Ressource SQL-VM im Azure-Portal über die richtigen Berechtigungen für das Feature „Automatisierte Sicherung“. – Das SA-Konto wurde nicht umbenannt, aber das Deaktivieren ist akzeptabel. |
Ich möchte herausfinden, welcher Dienst/welche Anwendung die Sicherungen von SQL Server durchführt
- Klicken Sie im Objekt-Explorer von SQL Server Management Studio (SSMS) mit der rechten Maustaste auf die Datenbank, und wählen Sie Berichte>Standardberichte>Ereignisse sichern und wiederherstellen aus. Im Bericht können Sie den Abschnitt Erfolgreiche Sicherungsvorgänge erweitern, um den Sicherungsverlauf anzuzeigen.
- Sollten mehrere Sicherungen in Azure oder auf einem virtuellen Gerät angezeigt werden, überprüfen Sie, ob Sie Azure Backup verwenden, um einzelne SQL-Datenbanken zu sichern, oder ob Sie eine VM-Momentaufnahme auf einem virtuellen Gerät erstellen, das ein
NT Authority/SYSTEM
-Konto verwendet. Wenn dies nicht der Fall ist, überprüfen Sie die Windows-Dienstekonsole (services.msc), um Anwendungen von Drittanbietern zu identifizieren, die möglicherweise Sicherungen erstellen.
Nächste Schritte
Die automatisierte Sicherung konfiguriert Managed Backup für Azure-VMs. Lesen Sie daher unbedingt die Dokumentation für die Verwaltete Sicherung, um sich mit dem Verhalten und den Auswirkungen vertraut zu machen.
Weitere Informationen zur Sicherung und Wiederherstellung für SQL Server auf Azure-VMs finden Sie im folgenden Artikel: Sicherung und Wiederherstellung für SQL Server auf Azure-VMs.
Informationen zu anderen verfügbaren Automatisierungsaufgaben finden Sie unter SQL Server-Agent-Erweiterung für virtuelle SQL Server-Computer (klassisch).
Ausführlichere Informationen zur Ausführung von SQL Server auf virtuellen Azure-Computern finden Sie unter Übersicht zu SQL Server auf Azure-VMs.