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:

  1. Backup del carico di lavoro che supportano tutti i tipi di backup: completo, differenziale e del log
  2. RPO di 15 minuti (obiettivo del punto di ripristino) con backup di log frequenti
  3. Ripristino temporizzato fino a un secondo
  4. 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'account NT 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.

    Architettura del backup SQL

Prima di iniziare

Prima di iniziare, verificare i requisiti seguenti:

  1. Assicurarsi che sia in esecuzione un'istanza di SQL Server in Azure. È possibile creare rapidamente un'istanza di SQL Server nel Marketplace.
  2. Esaminare le considerazioni sulla funzionalità e il supporto dello scenario.
  3. 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:

  1. 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.

  2. Nella SQL Server aprire la cartella Security/Logins.

    Aprire la cartella Sicurezza/Account di accesso per vedere gli account

  3. 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.

    Nella finestra di dialogo Login - New (Account di accesso - Nuovo) selezionare Cerca

  4. 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.

    Selezionare Controlla nomi per risolvere il nome del servizio sconosciuto

  5. In Ruoli server assicurarsi che sia selezionato il ruolo sysadmin. Selezionare OK. Le autorizzazioni necessarie a questo punto devono essere presenti.

    Verificare che sia selezionato il ruolo del server sysadmin

  6. 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 che il server abbia le autorizzazioni appropriate

  7. Verificare l'avanzamento nell'area Notifiche. Quando i database selezionati sono stati individuati, viene visualizzato un messaggio di conferma.

    Messaggio di distribuzione riuscita

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:

  1. Passare all'istanza di SQL Server in Esplora oggetti.

  2. Passare alla sicurezza -> Account di accesso

  3. Fare clic con il pulsante destro del mouse sugli account di accesso e scegliere Nuovo account di accesso...

    Nuovo account di accesso con SSMS

  4. Passare alla scheda Generale e immettere NT AUTHORITY\SYSTEM come ID di accesso.

    Nome di accesso per SSMS

  5. Passare a Ruoli del server e scegliere i ruoli public e sysadmin.

    Scelta dei ruoli in SSMS

  6. Passare a Stato. Selezionare Concedi per Autorizzazione per la connessione al motore di database e selezionare Abilitato per Account di accesso.

    Concedere le autorizzazioni in SSMS

  7. Selezionare OK.

  8. 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.

  9. Dopo aver concesso l'autorizzazione, individuare I DATABASE nel portale: Vault -> Infrastruttura di backup -> Carico di lavoro nella macchina virtuale di Azure:

    Opzione Individua di nuovo i database nel portale 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:

  1. Passare al C:\Program Files\Azure Workload Backup\bin\plugins percorso e quindi creare il file PluginConfigSettings.json, se non è presente.

  2. Aggiungere le entità chiave separate da virgole, con chiavi EnableLocalDiskBackupForBackupTypes e LocalDiskBackupFolderPath al file JSON.

    • In EnableLocalDiskBackupForBackupTypeselencare 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 come E:\\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.

  3. 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'istanza MSSQLSERVERSQL, i file si trovano in .E:\LocalBackup\MSSQLSERVER\Contoso

    Il nome del file è VDI device set guid, utilizzato per l'operazione di backup.

  4. Verificare se il percorso di destinazione in LocalDiskBackupFolderPath ha autorizzazioni di lettura e scrittura per NT 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.