Delen via


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

Azure Backup biedt een streamgebaseerde, gespecialiseerde oplossing voor het maken van back-ups van SQL Server die wordt uitgevoerd op Azure-VM's. Deze oplossing is afgestemd op de voordelen van back-ups van zero-infrastructuren, langetermijnretentie en centraal beheer van Azure Backup. Daarnaast biedt het de volgende voordelen specifiek voor SQL Server:

  • Workloadbewuste back-ups die ondersteuning bieden voor alle back-uptypen: volledig, differentieel en logboek
  • 15 minuten RPO (herstelpuntdoelstelling) met frequente logboekback-ups
  • Herstel naar een bepaald tijdstip tot een seconde
  • Back-up en herstel op individuele databaseniveau

Zie de ondersteuningsmatrix voor het weergeven van de back-up- en herstelscenario's die we vandaag ondersteunen.

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 er query's op wilt uitvoeren voor de databases, installeert de Azure Backup-service een back-upextensie voor workloads op de virtuele machine met de naamextensie AzureBackupWindowsWorkload .

  • 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 back-up, back-up en herstel, is de invoegtoepassing verantwoordelijk voor de werkelijke gegevensstroom.

  • Als u databases op deze virtuele machine 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 maakt gebruik van het NT AUTHORITY\SYSTEM account voor databasedetectie/-onderzoek, dus dit account moet een openbare aanmelding bij 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 de beveiliging voor de geselecteerde databases hebt geconfigureerd, stelt de back-upservice de coördinator in met de back-upschema's en andere beleidsdetails, die de extensie lokaal op de VIRTUELE machine in de cache plaatst.

  • De coördinator communiceert op het geplande tijdstip met de invoegtoepassing en begint 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 er geen faseringslocatie 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 voordat u begint de volgende vereisten:

  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 scenarioondersteuning.
  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.
  • Detecteert databases die worden uitgevoerd op een virtuele machine. Azure Backup maakt gebruik van het NT AUTHORITY\SYSTEM-account. Dit account moet een openbare aanmelding bij SQL zijn.

Als u de SQL Server-VM niet hebt gemaakt in Azure Marketplace of als u sql 2008 of 2008 R2 gebruikt, ontvangt u mogelijk een UserErrorSQLNoSysadminMembership-fout.

Raadpleeg hier voor het verlenen van machtigingen in het geval van SQL 2008 en 2008 R2 dat wordt uitgevoerd in Windows 2008 R2.

Herstel voor alle andere versies 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 Logins 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 Azure Portal in de lijst met beveiligde servers met de rechtermuisknop op de server met de foutstatus >DBS 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 op uw SQL Server meerdere exemplaren van SQL Server zijn geïnstalleerd, moet u sysadmin-machtiging voor 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 het SQL Server-exemplaar in objectverkenner.

  2. Navigeer naar Beveiliging -> Aanmeldingen

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

    Nieuwe aanmelding met behulp van 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 sysadmin-rollen .

    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, moet u ervoor zorgen dat deze de serverrol sysadmin heeft en onder Status de machtiging verlenen om verbinding te maken met de database-engine en aanmelden als ingeschakeld.

  9. Nadat u toestemming hebt verleend, ontdekt u DB's opnieuw in de portal: Kluis -> Beheren -> Back-upinfrastructuur -> Workload in Azure VM:

    DB's opnieuw ontdekken in Azure Portal

U kunt de machtigingen ook automatiseren door de volgende PowerShell-opdrachten uit te voeren in de beheermodus. De exemplaarnaam is standaard ingesteld op MSSQLSERVER. Wijzig indien nodig het argument naam van het exemplaar 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 het niet aanwezig is.

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

    • Geef onder EnableLocalDiskBackupForBackupTypesde back-uptypen op 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 worden weergegeven als:

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

      Als er andere vooraf ingevulde vermeldingen in het JSON-bestand staan, voegt u de bovenstaande twee vermeldingen onder aan het JSON-bestand toe 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.

    Let op

    Met deze actie worden alle lopende back-uptaken geannuleerd.

    De naamconventie van het opgeslagen back-upbestand en de mapstructuur hiervoor zijn {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 LocalDiskBackupFolderPath lees- 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 gemachtigd is voor toegang 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