Informazioni sul backup di SQL Server in macchine virtuali di Azure
Backup di Azure offre una soluzione basata sul flusso specializzata per eseguire il backup di SQL Server in esecuzione nelle macchine virtuali di Azure. Questa soluzione si allinea ai vantaggi di Backup di Azure del backup senza infrastruttura, della conservazione a lungo termine e della gestione centrale. Offre inoltre i vantaggi seguenti, in particolare per SQL Server:
- Backup del carico di lavoro che supportano tutti i tipi di backup: completo, differenziale e del log
- RPO (obiettivo del punto di ripristino) di 15 minuti con backup del log frequenti
- Ripristino temporizzato fino a un secondo
- Backup e ripristino a livello di singolo database
Per visualizzare gli scenari di backup e ripristino attualmente supportati, vedere la matrice di supporto.
Processo di backup
Questa soluzione sfrutta le API native SQL per eseguire i backup dei database SQL.
Dopo aver specificato la macchina virtuale di SQL Server da proteggere e aver eseguito la query per trovare i database al suo interno, il servizio Backup di Azure installerà un'estensione di backup di carichi di lavoro nella macchina virtuale denominata
AzureBackupWindowsWorkload
.Questa estensione è costituita da un coordinatore e da un plug-in SQL. Mentre il coordinatore è responsabile di attivare i flussi di lavoro per varie operazioni, come la configurazione del backup, il backup e il ripristino, il plug-in gestisce il flusso di dati effettivo.
Per individuare i database in questa VM, Backup di Azure crea l'account
NT SERVICE\AzureWLBackupPluginSvc
. Questo account viene usato per il backup e il ripristino e richiede le autorizzazioni sysadmin SQL. L'accountNT SERVICE\AzureWLBackupPluginSvc
è un Account del servizio virtuale e quindi non richiede la gestione di alcuna password. Backups di Azure usa l'accountNT AUTHORITY\SYSTEM
per l’individuazione o l’interrogazione del database, di conseguenza è necessario che sia un account di accesso pubblico in SQL. Se la VM SQL Server non è stata creata da Azure Marketplace, è possibile ricevere un errore UserErrorSQLNoSysadminMembership. In tal caso seguire queste istruzioni.Dopo l'attivazione della configurazione della protezione nei database selezionati, il servizio di backup configura il coordinatore con le pianificazioni di backup e altri dettagli sui criteri, che l'estensione memorizza nella cache locale della VM.
Nell'orario pianificato il coordinatore comunica con il plug-in, che avvia lo streaming dei dati di backup dal server SQL tramite VDI.
Il plug-in invia i dati direttamente all'insieme di credenziali di Servizi di ripristino, eliminando così la necessità di una posizione per la gestione temporanea. I dati vengono crittografati e archiviati dal servizio Backup di Azure negli account di archiviazione.
Al termine del trasferimento dei dati, il coordinatore conferma il commit con il servizio di backup.
Prima di iniziare
Prima di iniziare, verificare i requisiti seguenti:
- Assicurarsi che sia in esecuzione un'istanza di SQL Server in Azure. È possibile creare rapidamente un'istanza di SQL Server nel Marketplace.
- Rivedere le considerazioni sulla funzionalità e il supporto degli scenari.
- Esaminare le domande comuni su questo scenario.
Impostare le autorizzazioni della VM
Quando si esegue l'individuazione in SQL Server, Backup di Azure esegue le operazioni seguenti:
- Aggiunge l'estensione AzureBackupWindowsWorkload.
- Crea un account NT SERVICE\AzureWLBackupPluginSvc per individuare i database nella macchina virtuale. Questo account viene usato per il backup e il ripristino e richiede le autorizzazioni di amministratore di sistema SQL.
- Individua i database in esecuzione in una macchina virtuale. Backup di Azure usa l'account NT AUTHORITY\SYSTEM. Questo account deve essere un account di accesso pubblico in SQL.
Se non si è creata la VM di SQL Server in Azure Marketplace o se si usa SQL 2008 o 2008 R2, potrebbe venire generato un errore UserErrorSQLNoSysadminMembership.
Per concedere le autorizzazioni in caso di SQL 2008 e 2008 R2 in esecuzione in Windows 2008 R2, vedere qui.
Per tutte le altre versioni, correggere le autorizzazioni con i passaggi seguenti:
Usare un account con le autorizzazioni sysadmin SQL Server per accedere a SQL Server Management Studio (SSMS). A meno che non siano necessarie autorizzazioni speciali, l'autenticazione di Windows dovrebbe funzionare.
In SQL Server aprire la cartella Sicurezza/Account di accesso.
Fare clic con il pulsante destro del mouse sulla cartella Account di accesso e scegliere Nuovo account di accesso. In Account di accesso - Nuovo, selezionare Cerca.
L'account di servizio virtuale di Windows NT SERVICE\AzureWLBackupPluginSvc è stato creato durante la fase di registrazione della macchina virtuale e di individuazione SQL. Immettere il nome dell'account come mostrato nella casella Immettere il nome dell'oggetto da selezionare. Selezionare Controlla nomi per risolvere il nome. Seleziona OK.
In Ruoli server assicurarsi che sia selezionato il ruolo sysadmin. Seleziona OK. Le autorizzazioni necessarie a questo punto devono essere presenti.
Associare ora il database all'insieme di credenziali di Servizi di ripristino. Nell'elenco dei server protetti del portale di Azure, fare clic con il pulsante destro del mouse sul server in stato di errore e scegliere >Individua di nuovo i database.
Verificare l'avanzamento nell'area Notifiche. Quando i database selezionati sono stati individuati, viene visualizzato un messaggio di conferma.
Nota
Se sono installate più istanze di SQL Server, è necessario aggiungere l'autorizzazione sysadmin per l'account NT Service\AzureWLBackupPluginSvc a tutte le istanze di SQL.
Concedere le autorizzazioni di amministratore di sistema SQL per SQL 2008 e SQL 2008 R2
Aggiungere gli account di accesso NT AUTHORITY\SYSTEM e NT Service\AzureWLBackupPluginSvc all'istanza di SQL Server:
Passare all'istanza di SQL Server in Esplora oggetti.
Passare a Sicurezza - > Account di accesso
Fare clic con il pulsante destro del mouse e selezionare Nuovo account accesso...
Passare alla scheda Generale e immettere NT AUTHORITY\SYSTEM come ID di accesso.
Passare a Ruoli del server e scegliere i ruoli public e sysadmin.
Passare a Stato. Selezionare Concedi per Autorizzazione per la connessione al motore di database e selezionare Abilitato per Account di accesso.
Seleziona OK.
Ripetere la stessa procedura (passaggi da 1 a 7 precedenti) per aggiungere l'account di accesso NT Service\AzureWLBackupPluginSvc all'istanza di SQL Server. Se l'account di accesso esiste già, assicurarsi che abbia il ruolo del server sysadmin e che in Stato siano selezionate l'opzione Concedi per Autorizzazione per la connessione al motore di database e l'opzione Abilitato per Account di accesso.
Dopo aver concesso l'autorizzazione, riscoprire i database nel portale: Insieme di credenziali - > Gestione -> Infrastruttura di backup -> Carico di lavoro nella macchina virtuale di Azure:
In alternativa, è possibile automatizzare la concessione delle autorizzazioni eseguendo i comandi di PowerShell seguenti in modalità di amministrazione. Per impostazione predefinita, il nome dell'istanza è impostato su MSSQLSERVER. Modificare l'argomento relativo al nome dell'istanza nello script, se necessario.
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
}
Configurare backup simultanei
È ora possibile configurare i backup per salvare contemporaneamente i punti di ripristino e i log di SQL Server in un insieme di credenziali di Servizi di ripristino e archiviazione locale.
Per configurare i backup simultanei, seguire la procedura seguente:
Passare al percorso
C:\Program Files\Azure Workload Backup\bin\plugins
e quindi creare il file PluginConfigSettings.json, se non è presente.Aggiungere le entità di valore chiave separate da virgole, con chiavi
EnableLocalDiskBackupForBackupTypes
eLocalDiskBackupFolderPath
al file JSON.In
EnableLocalDiskBackupForBackupTypes
, elencare i tipi di backup da archiviare in locale.Ad esempio, se si vuole archiviare i backup Completo e Log, menzionare
["Full", "Log"]
. Per archiviare solo i backup del log, menzionare["Log"]
.In
LocalDiskBackupFolderPath
, menzionare il percorso della cartella locale. Quando si menzione il percorso nel file JSON, assicurarsi di usare la doppia barra.Ad esempio, se il percorso preferito per il backup locale è
E:\LocalBackup
, menzionare il percorso in JSON comeE:\\LocalBackup
.Il file JSON finale dovrebbe essere visualizzato come segue:
{ "EnableLocalDiskBackupForBackupTypes": ["Log"], "LocalDiskBackupFolderPath": "E:\\LocalBackup", }
Se nel file JSON sono presenti altre voci precompilate, aggiungere le due voci precedenti nella parte inferiore del file JSON subito prima della parentesi graffa di chiusura.
Per rendere effettive immediatamente le modifiche, anziché nel tempo previsto di un'ora, passare a TaskManager>Servizi, fare clic con il pulsante destro del mouse su AzureWLbackupPluginSvc e selezionare Arresta.
Attenzione
Questa azione annulla tutti i processi di backup in corso.
La convenzione di denominazione del file di backup archiviato e la struttura della cartella per tale file sarà
{LocalDiskBackupFolderPath}\{SQLInstanceName}\{DatabaseName}
.Ad esempio, se si dispone di un database
Contoso
nell'istanza SQLMSSQLSERVER
, i file si troveranno inE:\LocalBackup\MSSQLSERVER\Contoso
.Il nome del file è il
VDI device set guid
che viene usato per l'operazione di backup.Controllare se il percorso di destinazione in
LocalDiskBackupFolderPath
dispone di autorizzazioni di lettura e scrittura perNT Service\AzureWLBackupPluginSvc
.Nota
Per una cartella nei dischi della macchina virtuale locale, fare clic con il pulsante destro del mouse sulla cartella e configurare le autorizzazioni necessarie per
NT Service\AzureWLBackupPluginSvc
nella scheda Sicurezza.Se si usa una rete o condivisione SMB, configurare le autorizzazioni eseguendo i cmdlet di PowerShell seguenti da una console utente che dispone già dell'autorizzazione per accedere alla condivisione:
$cred = Get-Credential New-SmbGlobalMapping -RemotePath <FileSharePath> -Credential $cred -LocalPath <LocalDrive>: -FullAccess @("<Comma Separated list of accounts>") -Persistent $true
Esempio:
$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
Passaggi successivi
- Informazioni sul backup dei database di SQL Server.
- Informazioni sul ripristino dei database SQL Server di cui è stato eseguito il backup.
- Informazioni sulla gestione dei database SQL Server di cui è stato eseguito il backup.