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. HetNT SERVICE\AzureWLBackupPluginSvc
account is een virtueel serviceaccount en vereist dus geen wachtwoordbeheer. Azure Backup maakt gebruik van hetNT 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.
Voordat u begint
Controleer voordat u begint de volgende vereisten:
- Zorg ervoor dat er een SQL Server-exemplaar wordt uitgevoerd in Azure. U kunt snel een SQL Server-exemplaar maken in de marketplace.
- Bekijk de functieoverwegingen en scenarioondersteuning.
- 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:
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.
Open de map Security/Logins op de SQL-server.
Klik met de rechtermuisknop op de map Logins en selecteer Nieuwe aanmelding. In Aanmelding - Nieuw selecteert u Zoeken.
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.
Controleer of in Serverrollen de rol sysadmin is geselecteerd. Selecteer OK. De vereiste machtigingen moeten nu bestaan.
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.
Controleer de voortgang in het gebied Meldingen. Wanneer de geselecteerde databases zijn gevonden, wordt er een slagingsbericht weergegeven.
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:
Ga naar het SQL Server-exemplaar in objectverkenner.
Navigeer naar Beveiliging -> Aanmeldingen
Klik met de rechtermuisknop op de aanmeldingen en selecteer Nieuwe aanmelding...
Ga naar het tabblad Algemeen en voer NT AUTHORITY\SYSTEM in als aanmeldingsnaam.
Ga naar Serverfuncties en kies openbare en sysadmin-rollen .
Ga naar Status. Verdeel de machtiging om verbinding te maken met de database-engine en meld u aan als ingeschakeld.
Selecteer OK.
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.
Nadat u toestemming hebt verleend, ontdekt u DB's opnieuw in de portal: Kluis -> Beheren -> Back-upinfrastructuur -> Workload in Azure VM:
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:
Ga naar de
C:\Program Files\Azure Workload Backup\bin\plugins
locatie en maak het bestand PluginConfigSettings.json als het niet aanwezig is.Voeg de door komma's gescheiden sleutelwaarde-entiteiten toe, met sleutels
EnableLocalDiskBackupForBackupTypes
enLocalDiskBackupFolderPath
aan het JSON-bestand.Geef onder
EnableLocalDiskBackupForBackupTypes
de 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
LocalDiskBackupFolderPath
het 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 alsE:\\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.
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-exemplaarMSSQLSERVER
hebt, bevinden de bestanden zich inE:\LocalBackup\MSSQLSERVER\Contoso
.De naam van het bestand is de
VDI device set guid
, die wordt gebruikt voor de back-upbewerking.Controleer of de doellocatie onder
LocalDiskBackupFolderPath
lees- en schrijfmachtigingen heeft voorNT 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
- Meer informatie over het maken van back-ups van SQL Server-databases.
- Meer informatie over het herstellen van SQL Server-databases vanuit back-up.
- Meer informatie over het beheren van SQL Server-databases vanuit back-up.