Informationen zur SQL Server-Sicherung auf virtuellen Azure-Computern
Azure Backup bietet eine streambasierte, spezialisierte Lösung zum Sichern von SQL Server-Instanzen, die auf Azure-VMs ausgeführt werden. Diese Lösung ist an den Vorteilen von Azure Backup ausgerichtet: Sicherungen ohne Infrastruktur, langfristige Speicherung und zentrale Verwaltung. Außerdem bietet sie die folgenden Vorteile speziell für SQL Server:
- Workloadabhängige Sicherungen, die alle Sicherungstypen unterstützen: vollständige, differenzielle und Protokollsicherungen
- RPO (Recovery Point Objective) von 15 Minuten mit häufigen Protokollsicherungen
- Zeitpunktwiederherstellung von bis zu einer Sekunde
- Sicherung und Wiederherstellung einzelner Datenbankebenen
Informationen zu den derzeit von uns unterstützten Sicherungs- und Wiederherstellungsszenarien finden Sie in der Support-Matrix.
Sicherungsprozess
Die Lösung nutzt die nativen SQL-APIs, um Sicherungen Ihrer SQL-Datenbankinstanzen zu erstellen.
Nachdem Sie die SQL Server-VM angegeben haben, die Sie schützen und deren Datenbanken Sie abfragen möchten, installiert der Azure Backup-Dienst eine Erweiterung zur Workloadsicherung mit dem Namen
AzureBackupWindowsWorkload
auf dem virtuellen Computer.Diese Erweiterung besteht aus einem Koordinator und einem SQL-Plug-In. Während der Koordinator für das Auslösen von Workflows für verschiedene Vorgänge wie Konfigurieren der Sicherung, Sicherung und Wiederherstellung zuständig ist, ist das Plug-In für den tatsächlichen Datenfluss verantwortlich.
Um die Datenbanken auf diesem virtuellen Computer ermitteln zu können, erstellt Azure Backup das Konto
NT SERVICE\AzureWLBackupPluginSvc
. Dieses Konto wird zum Sichern und Wiederherstellen verwendet und erfordert SQL-Systemadministratorberechtigungen. Weil es sich beim KontoNT SERVICE\AzureWLBackupPluginSvc
um ein virtuelles Dienstkonto handelt, ist keine Kennwortverwaltung erforderlich. Azure Backup verwendet das KontoNT AUTHORITY\SYSTEM
für die Ermittlung von und Anfragen an Datenbanken. Für dieses Konto muss es also eine öffentliche Anmeldung in SQL geben. Wenn Sie den virtuellen SQL Server-Computer nicht über Azure Marketplace erstellt haben, erhalten Sie möglicherweise den Fehler UserErrorSQLNoSysadminMembership. Gehen Sie in diesem Fall wie folgt vor:Sobald Sie die Konfiguration des Schutzes der ausgewählten Datenbanken auslösen, richtet der Sicherungsdienst den Koordinator mit den Sicherungszeitplänen und anderen Richtliniendetails ein, die die Erweiterung lokal auf dem virtuellen Computer zwischenspeichert.
Zum geplanten Zeitpunkt kommuniziert der Koordinator mit dem Plug-In, und es startet das Streaming der Sicherungsdaten von der SQL Server-Instanz mit VDI.
Weil das Plug-In die Daten direkt an den Recovery Services-Tresor sendet, ist kein Stagingspeicherort erforderlich. Die Daten werden verschlüsselt und vom Azure Backup-Dienst in Speicherkonten gespeichert.
Wenn die Datenübertragung abgeschlossen ist, bestätigt der Koordinator den Commit mit dem Sicherungsdienst.
Vorbereitung
Überprüfen Sie zunächst die folgenden Anforderungen:
- Vergewissern Sie sich, dass in Azure eine SQL Server-Instanz ausgeführt wird. Im Marketplace können Sie schnell eine SQL Server-Instanz erstellen.
- Informieren Sie sich über Funktionsaspekte und Unterstützung von Szenarien.
- Lesen Sie häufig gestellte Fragen zu diesem Szenario.
Einrichten von Berechtigungen für virtuelle Computer
Wenn Sie die Ermittlung in einer SQL Server-Instanz ausführen, führt Azure Backup Folgendes aus:
- Fügt die Erweiterung AzureBackupWindowsWorkload hinzu.
- Erstellt das Konto „NT SERVICE\AzureWLBackupPluginSvc“, um Datenbanken auf dem virtuellen Computer zu ermitteln. Dieses Konto wird zum Sichern und Wiederherstellen verwendet und erfordert Systemadministratorberechtigungen für SQL Server.
- Ermittelt auf einer VM ausgeführte Datenbanken. Azure Backup verwendet das Konto NT AUTHORITY\SYSTEM. Dieses Konto muss eine öffentliche Anmeldung in SQL Server ermöglichen.
Wenn Sie die SQL Server-VM nicht in Azure Marketplace erstellt haben oder wenn Sie mit SQL Server 2008 oder 2008 R2 arbeiten, erhalten Sie möglicherweise die Fehlermeldung UserErrorSQLNoSysadminMembership.
Informationen zur Erteilung von Berechtigungen bei Ausführung von SQL 2008 und 2008 R2 unter Windows 2008 R2 finden Sie hier.
Korrigieren Sie bei allen anderen Versionen die Berechtigungen wie folgt:
Verwenden Sie ein Konto mit SQL Server-Systemadministratorberechtigungen, um sich bei SQL Server Management Studio (SSMS) anzumelden. Wenn Sie keine speziellen Berechtigungen benötigen, sollte die Windows-Authentifizierung funktionieren.
Öffnen Sie auf der SQL Server-Instanz den Ordner Sicherheit/Anmeldungen.
Klicken Sie mit der rechten Maustaste auf den Ordner Anmeldungen, und wählen Sie Neue Anmeldung aus. Wählen Sie in Anmeldung – Neu die Option Suche aus.
Das virtuelle Windows-Dienstkonto NT SERVICE\AzureWLBackupPluginSvc wurde bei der Registrierung des virtuellen Computers und der SQL-Ermittlungsphase erstellt. Geben Sie den Kontonamen ein, wie in Namen des auszuwählenden Objekts eingeben dargestellt. Wählen Sie Namen überprüfen aus, um den Namen aufzulösen. Klicken Sie auf OK.
Stellen Sie in Serverrollen sicher, dass die Rolle sysadmin ausgewählt ist. Klicken Sie auf OK. Die erforderlichen Berechtigungen sollten jetzt vorhanden sein.
Ordnen Sie nun die Datenbank dem Recovery Services-Tresor zu. Klicken Sie im Azure-Portal in der Liste Geschützte Server mit der rechten Maustaste auf den fehlerhaften Server, und wählen Sie Datenbanken neu ermitteln aus.
Der Fortschritt kann im Bereich Benachrichtigungen verfolgt werden. Wenn die ausgewählten Datenbanken gefunden wurden, wird eine Erfolgsmeldung angezeigt.
Hinweis
Sind auf Ihrem SQL-Server mehrere Instanzen von SQL Server installiert, müssen Sie allen SQL-Instanzen Systemadministratorberechtigungen für das Konto NT Service\AzureWLBackupPluginSvc hinzufügen.
Erteilen der SQL Server-Berechtigung „sysadmin“ für SQL 2008 und SQL 2008 R2
Fügen Sie der SQL Server-Instanz die Anmeldungen NT AUTHORITY\SYSTEM und NT Service\AzureWLBackupPluginSvc hinzu:
Wechseln Sie im Objekt-Explorer zur SQL Server-Instanz.
Navigieren Sie zu „Sicherheit“ –> „Anmeldungen“.
Klicken Sie mit der rechten Maustaste auf „Anmeldungen“, und wählen Sie Neue Anmeldung aus.
Wechseln Sie zur Registerkarte „Allgemein“, und geben Sie NT AUTHORITY\SYSTEM als Anmelde-ID ein.
Wechseln Sie zu Serverrollen, und wählen Sie die Rollen Öffentlich und sysadmin aus.
Wechseln Sie zu Status. Erteilen Sie die Berechtigung zum Herstellen der Verbindung mit der Datenbank-Engine, und melden Sie sich als Aktiviert an.
Wählen Sie „OK“ aus.
Wiederholen Sie die gleiche Schrittreihenfolge (1-7 oben), um die Anmeldung „NT Service\AzureWLBackupPluginSvc“ zur SQL Server-Instanz hinzuzufügen. Wenn die Anmeldung bereits vorhanden ist, stellen Sie sicher, dass sie die Serverrolle „sysadmin“ hat und ihr unter „Status“ die Berechtigung zum Herstellen der Verbindung mit der Datenbank-Engine erteilt und „Anmeldung“ auf „Aktiviert“ festgelegt wurde.
Nach dem Erteilen der Berechtigung können Sie im Portal DBs neu ermitteln: -> Verwalten -> Sicherungsinfrastruktur -> Workload in Azure-VM:
Alternativ können Sie die Erteilung der Berechtigungen automatisieren, indem Sie die folgenden PowerShell-Befehle im Administratormodus ausführen. Der Instanzname ist standardmäßig auf MSSQLSERVER festgelegt. Ändern Sie nötigenfalls das Argument mit dem Namen der Instanz im Skript.
param(
[Parameter(Mandatory=$false)]
[string] $InstanceName = "MSSQLSERVER"
)
if ($InstanceName -eq "MSSQLSERVER")
{
$fullInstance = $env:COMPUTERNAME # In case it is the default SQL Server Instance
}
else
{
$fullInstance = $env:COMPUTERNAME + "\" + $InstanceName # In case of named instance
}
try
{
sqlcmd.exe -S $fullInstance -Q "sp_addsrvrolemember 'NT Service\AzureWLBackupPluginSvc', 'sysadmin'" # Adds login with sysadmin permission if already not available
}
catch
{
Write-Host "An error occurred:"
Write-Host $_.Exception|format-list -force
}
try
{
sqlcmd.exe -S $fullInstance -Q "sp_addsrvrolemember 'NT AUTHORITY\SYSTEM', 'sysadmin'" # Adds login with sysadmin permission if already not available
}
catch
{
Write-Host "An error occurred:"
Write-Host $_.Exception|format-list -force
}
Konfigurieren gleichzeitiger Sicherungen
Sie können jetzt Sicherungen so konfigurieren, dass die SQL Server-Wiederherstellungspunkte und -Protokolle gleichzeitig in einem lokalen Speicher und einem Recovery Services-Tresor gespeichert werden.
Befolgen Sie zum Konfigurieren gleichzeitiger Sicherungen die folgenden Schritte:
Wechseln Sie zum Speicherort
C:\Program Files\Azure Workload Backup\bin\plugins
, und erstellen Sie dann die Datei PluginConfigSettings.json, wenn sie nicht vorhanden ist.Fügen Sie der JSON-Datei die durch Trennzeichen getrennten Schlüssel-Wert-Entitäten mit den Schlüsseln
EnableLocalDiskBackupForBackupTypes
undLocalDiskBackupFolderPath
hinzu.Listen Sie unter
EnableLocalDiskBackupForBackupTypes
die Sicherungstypen auf, die Sie lokal speichern möchten.Wenn Sie z. B. die vollständigen Sicherungen und die Protokollsicherungen speichern möchten, geben Sie
["Full", "Log"]
an. Um nur die Protokollsicherungen zu speichern, geben Sie["Log"]
an.Geben Sie unter
LocalDiskBackupFolderPath
den Pfad zum lokalen Ordner ein. Verwenden Sie den doppelten vorwärts gerichteten Schrägstrich zur Angabe des Pfads in der JSON-Datei.Wenn beispielsweise der bevorzugte Pfad für die lokale Sicherung
E:\LocalBackup
lautet, geben Sie den Pfad im JSON-Code alsE:\\LocalBackup
an.Der endgültige JSON-Code sollte wie folgt aussehen:
{ "EnableLocalDiskBackupForBackupTypes": ["Log"], "LocalDiskBackupFolderPath": "E:\\LocalBackup", }
Wenn in der JSON-Datei andere vorab ausgefüllte Einträge vorhanden sind, fügen Sie die beiden obigen Einträge am Ende der JSON-Datei kurz vor der schließenden geschweiften Klammer hinzu.
Damit die Änderungen sofort und nicht erst wie üblich nach einer Stunde wirksam werden, wechseln Sie zu Task-Manager>Dienste, klicken Sie mit der rechten Maustaste auf AzureWLbackupPluginSvc, und wählen Sie Anhalten aus.
Achtung
Durch diese Aktion werden alle laufenden Sicherungsaufträge abgebrochen.
Die Namenskonvention der gespeicherten Sicherungsdatei und der zugehörigen Ordnerstruktur lautet
{LocalDiskBackupFolderPath}\{SQLInstanceName}\{DatabaseName}
.Wenn Sie beispielsweise über eine Datenbank
Contoso
unter der SQL-InstanzMSSQLSERVER
verfügen, befinden sich die Dateien unterE:\LocalBackup\MSSQLSERVER\Contoso
.Der Name der Datei entspricht der
VDI device set guid
, die für den Sicherungsvorgang verwendet wird.Überprüfen Sie, ob der Zielspeicherort unter
LocalDiskBackupFolderPath
fürNT Service\AzureWLBackupPluginSvc
über Berechtigungen zum Lesen und Schreiben verfügt.Hinweis
Klicken Sie für einen Ordner auf den lokalen VM-Datenträgern mit der rechten Maustaste auf den Ordner, und konfigurieren Sie die erforderlichen Berechtigungen für
NT Service\AzureWLBackupPluginSvc
auf der Registerkarte Sicherheit.Wenn Sie eine Netzwerk- oder SMB-Freigabe verwenden, konfigurieren Sie die Berechtigungen, indem Sie die folgenden PowerShell-Cmdlets über eine Benutzerkonsole ausführen, die bereits über die Berechtigung für den Zugriff auf die Freigabe verfügt:
$cred = Get-Credential New-SmbGlobalMapping -RemotePath <FileSharePath> -Credential $cred -LocalPath <LocalDrive>: -FullAccess @("<Comma Separated list of accounts>") -Persistent $true
Beispiel:
$cred = Get-Credential New-SmbGlobalMapping -RemotePath \\i00601p1imsa01.file.core.windows.net\rsvshare -Credential $cred -LocalPath Y: -FullAccess @("NT AUTHORITY\SYSTEM","NT Service\AzureWLBackupPluginSvc") -Persistent $true
Nächste Schritte
- Informieren Sie sich über das Sichern von SQL Server-Datenbanken.
- Informieren Sie sich über das Wiederherstellen von gesicherten SQL Server-Datenbanken.
- Informieren Sie sich über das Verwalten von gesicherten SQL Server-Datenbanken.