Informazioni sul backup di SQL Server in macchine virtuali di Azure
Backup di Azure offre una soluzione specializzata basata su flusso 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 di 15 minuti (obiettivo del punto di ripristino) con backup di log frequenti
- Ripristino temporizzato fino a un secondo
- Backup e ripristino a livello di singolo database
Nota
Il backup basato su snapshot per i database SQL nella macchina virtuale di Azure è ora disponibile in anteprima. Questa offerta unica combina la bontà degli snapshot, portando a un RTO migliore e a un basso impatto sul server, oltre ai vantaggi dei backup di log frequenti per un RPO basso. Per qualsiasi query/accesso, scrivere all'indirizzo AskAzureBackupTeam@microsoft.com.
Per visualizzare gli scenari di backup e ripristino supportati oggi, 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 alcuna gestione delle password. Backup di Azure usa l'account per l'individuazioneNT AUTHORITY\SYSTEM
/richiesta del database, quindi questo account deve essere 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 di 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.
- Esaminare le considerazioni sulla funzionalità e il supporto dello scenario.
- 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 è stata creata la macchina virtuale SQL Server in Azure Marketplace o se si è in SQL 2008 o 2008 R2, è possibile che venga visualizzato un errore UserErrorSQLNoSysadminMembership.
Per concedere autorizzazioni nel 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.
Nella SQL Server aprire la cartella Security/Logins.
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. Selezionare OK.
In Ruoli server assicurarsi che sia selezionato il ruolo sysadmin. Selezionare OK. Le autorizzazioni necessarie a questo punto devono essere presenti.
Associare ora il database all'insieme di credenziali di Servizi di ripristino. Nell'portale di Azure, nell'elenco Server protetti fare clic con il pulsante destro del mouse sul server in uno stato > di errore Recupera 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 alla sicurezza -> Account di accesso
Fare clic con il pulsante destro del mouse sugli account di accesso e scegliere Nuovo account di 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.
Selezionare 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, individuare I DATABASE nel portale: Vault -> 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 nome 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 i backup simultanei
È ora possibile configurare i backup per salvare i punti di ripristino e i log di SQL Server in un insieme di credenziali di Servizi di archiviazione e ripristino locale contemporaneamente.
Per configurare i backup simultanei, seguire questa procedura:
Passare al
C:\Program Files\Azure Workload Backup\bin\plugins
percorso e quindi creare il file PluginConfigSettings.json, se non è presente.Aggiungere le entità 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 desidera archiviare i backup completi e log , menzionare
["Full", "Log"]
. Per archiviare solo i backup del log, menzionare["Log"]
.In
LocalDiskBackupFolderPath
, menzionare il percorso della cartella locale. Assicurarsi di usare la barra in avanti doppia durante la citazione del percorso nel file JSON.Ad esempio, se il percorso preferito per il backup locale è
E:\LocalBackup
, menzionare il percorso in JSON comeE:\\LocalBackup
.Il codice JSON finale dovrebbe essere visualizzato come:
{ "EnableLocalDiskBackupForBackupTypes": ["Log"], "LocalDiskBackupFolderPath": "E:\\LocalBackup", }
Se nel file JSON sono presenti altre voci precompilato, aggiungere le due voci precedenti nella parte inferiore del file JSON appena prima della parentesi graffe di chiusura.
Per rendere effettive le modifiche immediatamente anziché regolare un'ora, passare a TaskManager>Services, 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 di cartelle per tale file sarà
{LocalDiskBackupFolderPath}\{SQLInstanceName}\{DatabaseName}
.Ad esempio, se si dispone di un database
Contoso
nell'istanzaMSSQLSERVER
SQL, i file si trovano in .E:\LocalBackup\MSSQLSERVER\Contoso
Il nome del file è
VDI device set guid
, utilizzato per l'operazione di backup.Verificare se il percorso di destinazione in
LocalDiskBackupFolderPath
ha 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 una 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.