Over SQL Server-back-ups in virtuele Azure-machines

Azure Backup biedt een op stream gebaseerde, gespecialiseerde oplossing voor het maken van back-ups van SQL Server die worden uitgevoerd in Azure-VM's. Deze oplossing is afgestemd op de voordelen van Azure Backup van back-up zonder infrastructuur, langetermijnretentie en centraal beheer. Daarnaast biedt het de volgende voordelen specifiek voor SQL Server:

  1. Workloadbewuste back-ups die ondersteuning bieden voor alle back-uptypen: volledig, differentieel en logboek
  2. RPO van 15 minuten (herstelpuntdoelstelling) met frequente logboekback-ups
  3. Herstel naar een bepaald tijdstip tot een seconde
  4. Back-up en herstel van afzonderlijke databaseniveau

Notitie

Back-up op basis van momentopnamen voor SQL-databases in Azure VM is nu in preview. Deze unieke aanbieding combineert de goedheid van momentopnamen, wat leidt tot een betere RTO en lage impact op de server, samen met de voordelen van frequente logboekback-ups voor een lage RPO. Schrijf ons voor query's/toegang op AskAzureBackupTeam@microsoft.com.

Als u de back-up- en herstelscenario's wilt bekijken die momenteel worden ondersteund, raadpleegt u de ondersteuningsmatrix.

Back-upproces

Deze oplossing maakt gebruik van de systeemeigen SQL-API's om back-ups van uw SQL-databases te maken.

  • Zodra u de SQL Server VM hebt opgegeven die u wilt beveiligen en query's hebt uitgevoerd voor de databases in de vm, installeert Azure Backup service een extensie voor back-ups van workloads op de VM met de naamextensieAzureBackupWindowsWorkload.

  • Deze extensie bestaat uit een coördinator en een SQL-invoegtoepassing. Hoewel de coördinator verantwoordelijk is voor het activeren van werkstromen voor verschillende bewerkingen, zoals het configureren van back-up, back-up en herstel, is de invoegtoepassing verantwoordelijk voor de werkelijke gegevensstroom.

  • Als u databases op deze VM wilt detecteren, maakt Azure Backup het account NT SERVICE\AzureWLBackupPluginSvc. Dit account wordt gebruikt voor back-up en herstel en vereist SQL sysadmin-machtigingen. Het NT SERVICE\AzureWLBackupPluginSvc account is een virtueel serviceaccount en vereist dus geen wachtwoordbeheer. Azure Backup gebruikt het NT AUTHORITY\SYSTEM account voor databasedetectie/-aanvraag, dus dit account moet een openbare aanmelding in SQL zijn. Als u de SQL Server-VM niet hebt gemaakt vanuit de Azure Marketplace, ontvangt u mogelijk het foutbericht UserErrorSQLNoSysadminMembership. Volg in dit geval deze instructies.

  • Zodra u beveiliging configureren voor de geselecteerde databases hebt geactiveerd, stelt de back-upservice de coördinator in met de back-upschema's en andere beleidsdetails, die de extensie lokaal op de vm opslaat.

  • Op het geplande tijdstip communiceert de coördinator met de invoegtoepassing en begint deze met het streamen van de back-upgegevens van de SQL-server met behulp van VDI.

  • De invoegtoepassing verzendt de gegevens rechtstreeks naar de Recovery Services-kluis, waardoor een faseringslocatie niet meer nodig is. De gegevens worden versleuteld en opgeslagen door de Azure Backup-service in opslagaccounts.

  • Wanneer de gegevensoverdracht is voltooid, bevestigt de coördinator de doorvoer met de back-upservice.

    SQL Backup-architectuur

Voordat u begint

Controleer de volgende vereisten voordat u begint:

  1. Zorg ervoor dat er een SQL Server-exemplaar wordt uitgevoerd in Azure. U kunt snel een SQL Server-exemplaar maken in de marketplace.
  2. Bekijk de functieoverwegingen en ondersteuning voor scenario's.
  3. Lees de veelgestelde vragen over dit scenario.

VM-machtigingen instellen

Wanneer u detectie uitvoert op een SQL Server, doet Azure Backup het volgende:

  • Voegt de extensie AzureBackupWindowsWorkload toe.
  • Hiermee maakt u een NT SERVICE\AzureWLBackupPluginSvc-account om databases op de virtuele machine te detecteren. Dit account wordt gebruikt voor een back-up en herstel en vereist SQL sysadmin-machtigingen.
  • Hiermee worden databases gedetecteerd die worden uitgevoerd op een virtuele machine, Azure Backup het account NT AUTHORITY\SYSTEM gebruikt. Dit account moet een openbare aanmelding in SQL zijn.

Als u de SQL Server VM niet hebt gemaakt in Azure Marketplace of als u SQL 2008 of 2008 R2 gebruikt, wordt mogelijk de fout UserErrorSQLNoSysadminMembership weergegeven.

Raadpleeg hier voor het verlenen van machtigingen in het geval van SQL 2008 en 2008 R2 die worden uitgevoerd op Windows 2008 R2.

Voor alle andere versies herstelt u machtigingen met de volgende stappen:

  1. Meld u bij SQL Server Management Studio (SSMS) aan met een account met systeembeheerdersrechten voor SQL Server. Windows-verificatie zou moeten werken, tenzij u speciale machtigingen nodig hebt.

  2. Open de map Security/Logins op de SQL-server.

    De map Security/Logins openen om accounts te bekijken

  3. Klik met de rechtermuisknop op de map Aanmeldingen en selecteer Nieuwe aanmelding. In Aanmelding - Nieuw selecteert u Zoeken.

    In het dialoogvenster Aanmelding - Nieuw selecteert u Zoeken

  4. Het virtuele Windows-serviceaccount NT SERVICE\AzureWLBackupPluginSvc is gemaakt tijdens de registratie van de virtuele machine en de SQL-detectiefase. Geef de accountnaam op, zoals wordt weergegeven in Objectnaam invoeren die moet worden geselecteerd. Selecteer Namen controleren om de naam te herleiden. Selecteer OK.

    Namen controleren selecteren om de naam van de onbekende service te herleiden

  5. Controleer of in Serverrollen de rol sysadmin is geselecteerd. Selecteer OK. De vereiste machtigingen moeten nu bestaan.

    Controleren of de serverfunctie sysadmin is geselecteerd

  6. Koppel de database nu aan de Recovery Services-kluis. Klik in de Azure Portal in de lijst Beveiligde servers met de rechtermuisknop op de server met de foutstatus >DB's opnieuw detecteren.

    Controleren of de server de juiste machtigingen heeft

  7. Controleer de voortgang in het gebied Meldingen. Wanneer de geselecteerde databases zijn gevonden, wordt er een slagingsbericht weergegeven.

    Bericht dat de implementatie is geslaagd

Notitie

Als uw SQL Server meerdere exemplaren van SQL Server heeft geïnstalleerd, moet u sysadmin-machtiging voor het NT Service\AzureWLBackupPluginSvc-account toevoegen aan alle SQL-exemplaren.

SQL sysadmin-machtigingen geven voor SQL 2008 en SQL 2008 R2

Voeg NT AUTHORITY\SYSTEM en NT Service\AzureWLBackupPluginSvc-aanmeldingen toe aan het SQL Server-exemplaar:

  1. Ga naar de SQL Server-instantie in de Objectverkenner.

  2. Navigeer naar Beveiliging -> Aanmeldingen

  3. Klik met de rechtermuisknop op de aanmeldingen en selecteer Nieuwe aanmelding...

    Nieuwe aanmelding met SSMS

  4. Ga naar het tabblad Algemeen en voer NT AUTHORITY\SYSTEM in als aanmeldingsnaam.

    Aanmeldingsnaam voor SSMS

  5. Ga naar Serverfuncties en kies openbare en systeembeheerdersrollen .

    Rollen kiezen in SSMS

  6. Ga naar Status. Verdeel de machtiging om verbinding te maken met de database-engine en meld u aan als Ingeschakeld.

    Machtigingen verlenen in SSMS

  7. Selecteer OK.

  8. Herhaal dezelfde reeks stappen (1-7 hierboven) om NT Service\AzureWLBackupPluginSvc-aanmelding toe te voegen aan het SQL Server-exemplaar. Als de aanmelding al bestaat, controleert u of deze de serverrol sysadmin heeft en onder Status de optie Machtiging verlenen om verbinding te maken met de database-engine en Aanmelden als Ingeschakeld.

  9. Nadat u de machtiging hebt verleend, kunt u DB's opnieuw ontdekken in de portal: Kluis -> Back-upinfrastructuur -> Workload in Azure VM:

    DB's in Azure Portal opnieuw ontdekken

U kunt het verlenen van machtigingen ook automatiseren door de volgende PowerShell-opdrachten uit te voeren in de beheermodus. De naam van het exemplaar is standaard ingesteld op MSSQLSERVER. Wijzig indien nodig het argument instantienaam in het script.

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
}

Gelijktijdige back-ups configureren

U kunt nu back-ups configureren om de SQL Server-herstelpunten en logboeken tegelijkertijd op te slaan in een lokale opslag en Recovery Services-kluis.

Voer de volgende stappen uit om gelijktijdige back-ups te configureren:

  1. Ga naar de C:\Program Files\Azure Workload Backup\bin\plugins locatie en maak het bestand PluginConfigSettings.json, als dit niet aanwezig is.

  2. Voeg de entiteiten met door komma's gescheiden sleutelwaarden, met sleutels EnableLocalDiskBackupForBackupTypes en LocalDiskBackupFolderPath toe aan het JSON-bestand.

    • Vermeld onder EnableLocalDiskBackupForBackupTypesde back-uptypen die u lokaal wilt opslaan.

      Als u bijvoorbeeld de volledige back-ups en logboekback-ups wilt opslaan, vermeldt u .["Full", "Log"] Als u alleen de logboekback-ups wilt opslaan, vermeldt u ["Log"].

    • Vermeld onder LocalDiskBackupFolderPathhet pad naar de lokale map. Zorg ervoor dat u de dubbele slash gebruikt tijdens het vermelden van het pad in het JSON-bestand.

      Als het voorkeurspad voor lokale back-up bijvoorbeeld is E:\LocalBackup, vermeldt u het pad in JSON als E:\\LocalBackup.

      De uiteindelijke JSON moet er als volgt uitzien:

      {
         "EnableLocalDiskBackupForBackupTypes": ["Log"],
         "LocalDiskBackupFolderPath": "E:\\LocalBackup",
      }
      

      Als het JSON-bestand andere vooraf ingevulde vermeldingen bevat, voegt u de bovenstaande twee vermeldingen toe onder aan het JSON-bestand vlak voor de afsluitende accolade.

  3. Ga naar TaskManager>Services, klik met de rechtermuisknop op AzureWLbackupPluginSvc en selecteer Stoppen om de wijzigingen onmiddellijk van kracht te laten worden in plaats van een normaal uur.

    Waarschuwing

    Met deze actie worden alle lopende back-uptaken geannuleerd.

    De naamgevingsconventie van het opgeslagen back-upbestand en de mapstructuur ervan worden {LocalDiskBackupFolderPath}\{SQLInstanceName}\{DatabaseName}.

    Als u bijvoorbeeld een database Contoso onder het SQL-exemplaar MSSQLSERVERhebt, bevinden de bestanden zich in E:\LocalBackup\MSSQLSERVER\Contoso.

    De naam van het bestand is de VDI device set guid, die wordt gebruikt voor de back-upbewerking.

  4. Controleer of de doellocatie onder LocalDiskBackupFolderPathlees- en schrijfmachtigingen heeft voor NT Service\AzureWLBackupPluginSvc.

    Notitie

    Voor een map op de lokale VM-schijven klikt u met de rechtermuisknop op de map en configureert u de vereiste machtigingen voor NT Service\AzureWLBackupPluginSvc op het tabblad Beveiliging .

    Als u een netwerk- of SMB-share gebruikt, configureert u de machtigingen door de onderstaande PowerShell-cmdlets uit te voeren vanuit een gebruikersconsole die al toegang heeft tot de share:

    $cred = Get-Credential
    New-SmbGlobalMapping -RemotePath <FileSharePath> -Credential $cred -LocalPath <LocalDrive>:  -FullAccess @("<Comma Separated list of accounts>") -Persistent $true
    

    Voorbeeld:

    $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
    

Volgende stappen