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 in Macchine virtuali di Azure (VM). Questa soluzione si allinea ai vantaggi di Backup di Azure del backup senza infrastruttura, della conservazione a lungo termine e della gestione centrale. Inoltre offre i seguenti vantaggi specifici per SQL Server:

  • Backup del carico di lavoro che supportano tutti i tipi di backup: completo, differenziale e del log
  • Obiettivo del punto di ripristino (RPO) di 15 minuti con backup del log frequenti
  • Ripristino temporizzato fino a un secondo
  • Backup e ripristino a livello di database singolo

Per visualizzare gli scenari di backup e ripristino attualmente supportati, vedere la matrice di supporto. Per domande comuni, vedere le domande frequenti.

Backup snapshot per le istanze SQL in Macchina virtuale di Azure (anteprima)

Backup di Azure offre una soluzione di backup SQL basata su snapshot che migliora le prestazioni per i database di grandi dimensioni. È possibile usare gli snapshot del disco per ripristini rapidi e backup frequenti del log per ridurre al minimo la perdita di dati, consentendo di ottenere un obiettivo RTO (Recovery Time Objective) inferiore e un obiettivo del punto di ripristino (RPO) migliorato.

Note

Il backup dello snapshot per le istanze di SQL Server è disponibile in anteprima. I backup basati su snapshot consentono di proteggere database di grandi dimensioni con prestazioni migliorate e di ottenere ripristini più veloci dal livello di ripristino istantaneo.

I backup di snapshot offrono i vantaggi seguenti durante il backup di database di grandi dimensioni:

  • Snapshot a livello di istanza: crea snapshot di backup a livello di istanza SQL e consente di selezionare più database in un'unica operazione. Ripristinare l'intera istanza o i singoli database in base alle esigenze.

  • Impatto minimo sul server di origine: Backup di Azure mette temporaneamente il database in quiescenza per acquisire uno snapshot coerente a livello di applicazione. Mentre il database è inattivo solo per alcuni secondi, la creazione e la disponibilità degli snapshot nel livello operativo vengono completate entro pochi minuti. A differenza dei backup in streaming, le risorse del computer di origine non vengono utilizzate per un lungo periodo di tempo.

  • Conveniente: ottimizza i costi di archiviazione con snapshot incrementali.

  • RTO migliorato: usa ripristini più veloci dal livello istantaneo/operativo.

  • RPO basso: combina i backup del log con gli snapshot per ottenere un RPO inferiore e abilitare ripristini temporizzato.

Informazioni sugli scenari e sulle limitazioni supportati per il backup SQL usando gli snapshot nella matrice di supporto. Per eseguire il backup di uno snapshot di un'istanza di SQL Server in una macchina virtuale di Azure usando il portale di Azure, vedere questo articolo.

Processo di backup per SQL Server database

Questa soluzione usa le API sql native per eseguire i backup dei database SQL.

  • Dopo aver specificato la VM di SQL Server che si desidera proteggere ed effettuato una query dei database in essa contenuti, il servizio Backup di Azure installa nella VM un'estensione per il backup del carico di lavoro denominata AzureBackupWindowsWorkload extension.

  • Questa estensione è costituita da un coordinatore e da un plug-in SQL. Mentre il coordinatore è responsabile dell'attivazione dei flussi di lavoro per varie operazioni, ad esempio la configurazione di backup, backup e ripristino, il plug-in è responsabile del 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 NT AUTHORITY\SYSTEM per l'individuazione o l'interrogazione dei database, quindi questo account deve essere un account di accesso pubblico in SQL. Se non è stata creata la macchina virtuale di SQL Server da Azure Marketplace, è possibile che venga visualizzato un errore UserErrorSQLNoSysadminMembership. Se viene visualizzato il messaggio di errore, 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.

  • All'ora pianificata, il coordinatore comunica con il plug-in e avvia lo streaming dei dati di backup dal server SQL usando VDI(Virtual Device Interface).

  • 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. Il servizio Backup di Azure crittografa e archivia i dati negli account di archiviazione.

  • Al termine del trasferimento dei dati, il coordinatore conferma il commit con il servizio di backup.

    Architettura di backup SQL

Processo di backup per gli snapshot dell'istanza di SQL Server

Backup di Azure usa snapshot incrementali del disco gestito per proteggere i database SQL nelle macchine virtuali Azure. Il criterio di backup controlla la creazione delle snapshot, la loro conservazione e registra l’attività di backup per consentire ripristini rapidi e il ripristino a un punto preciso nel tempo.

Il flusso di backup e ripristino descrive una sequenza logica e end-to-end di operazioni eseguite da Backup di Azure che includono le operazioni seguenti:

  • Crea snapshot incrementali del disco gestito in base ai criteri di backup definiti dall'utente. Attualmente, il servizio Backup di Azure supporta uno snapshot ogni 6 ore o superiore. È possibile configurare i backup del log ogni 15 minuti o più.

  • Esegue backup di snapshot a livello di istanza SQL. È possibile selezionare fino a 12 database per operazione snapshot.

  • Acquisisce un'istantanea coerente con l'applicazione di tutti i database selezionati creando un'istantanea dei dischi sottostanti per l'insieme combinato dei database.

  • Mantiene gli snapshot nella sottoscrizione Azure all'interno di un gruppo di risorse specificato per una durata definita dall'utente (fino a 7 giorni). Backup di Azure sposta quindi i dati nell'insieme di credenziali di Servizi di ripristino come backup archiviato nell'insieme di credenziali per la conservazione a lungo termine in base al criterio configurato.

  • Invia all'archivio i backup dei log a livello di database. Durante il ripristino, il servizio ripristina lo snapshot su una VM alternativa e applica i backup dei log per ottenere un ripristino a un momento preciso.

Informazioni su come eseguire il backup dello snapshot dell'istanza di SQL Server in una VM di Azure tramite il portale di Azure (anteprima).

Prerequisiti per il backup di SQL Server

Prima di avviare il backup SQL Server, esaminare i prerequisiti 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. Vedere le considerazioni sulla funzionalità e il supporto degli scenari.
  3. Esaminare le domande comuni su questo scenario.

Impostare le autorizzazioni della VM

Quando si esegue l'individuazione in un SQL Server, Backup di Azure esegue le azioni 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 la macchina virtuale di SQL Server non è stata creata in Azure Marketplace o se si usa SQL 2008 o 2008 R2, è possibile che venga visualizzato un errore UserErrorSQLNoSysadminMembership .

Per concedere le autorizzazioni per SQL 2008 e 2008 R2 in esecuzione in Windows 2008 R2, vedere questa sezione.

Per tutte le altre versioni, assegnare le autorizzazioni attenendosi alla procedura seguente:

  1. Usare un account con autorizzazioni SQL Server sysadmin 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 Security/Logins per visualizzare gli account

  3. Fare clic con il pulsante destro del mouse sulla cartella Account di accesso e scegliere Nuovo account di accesso. In Login - Nuovo, seleziona Cerca.

    Nella finestra di dialogo Login - Nuovo, selezionare Cerca

  4. L'account del servizio virtuale Windows NT SERVICE\AzureWLBackupPluginSvc è stato creato durante la fase di registrazione della macchina virtuale e di individuazione SQL. Immettere il nome dell'account come illustrato in 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 del server verificare che sia selezionato il ruolo sysadmin . Selezionare OK. Le autorizzazioni necessarie a questo punto devono essere presenti.

    Assicurarsi che sia selezionato il ruolo del server sysadmin

    Se l'istanza di SQL Server fa parte di un gruppo di disponibilità (AG) diAlways-On, verificare che l'account NT AUTHORITY\SYSTEM disponga dell'autorizzazione VIEW SERVER STATE abilitata.

    Screenshot che mostra come controllare l'autorizzazione per un'istanza di SQL Server selezionata per il backup.

  6. Associare ora il database all'insieme di credenziali di Servizi di ripristino. Nel portale di Azure, nell'elenco Server protetti, fare clic con il pulsante destro del mouse sul server che si trova in uno stato di errore >Riscopri Database.

    Verificare che il server disponga delle autorizzazioni appropriate

  7. Controllare lo stato nell'area Notifiche . Quando i database selezionati sono stati individuati, viene visualizzato un messaggio di conferma.

    Messaggio di esito positivo della distribuzione

Note

Se nel SQL Server sono installate più istanze di SQL Server, è necessario aggiungere i permessi sysadmin per l'account NT Service\AzureWLBackupPluginSvc a tutte le istanze di SQL.

Assegnare autorizzazioni sysadmin SQL per SQL 2008 e SQL 2008 R2

Per aggiungere NT AUTHORITY\SYSTEM e NT Service\AzureWLBackupPluginSvc account di accesso all'istanza di SQL Server, seguire questa procedura:

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

  2. Passare a Sicurezza>Accessi.

  3. Fare clic con il pulsante destro del mouse su Accessi e scegliere Nuovo account di accessoNuovo account di accesso con SSMS

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

    Nome di accesso per SSMS

  5. Passare alla scheda Ruoli server e scegliere ruoli pubblici e sysadmin .

    Scelta dei ruoli in SSMS

  6. Passa a Stato, seleziona Concedi per Autorizzazione per la connessione al motore di database e quindi seleziona Abilitato per Login.

    Concedere autorizzazioni in SSMS

  7. Selezionare OK.

  8. Per aggiungere il servizio NT\AzureWLBackupPluginSvc accedere all'istanza SQL Server, ripetere i passaggi 1-7.

    Se il login esiste già, assicurarsi che abbia il ruolo del server sysadmin e che in Stato sia impostata l'opzione Concedi per Autorizzazione per la connessione al motore di database e Login impostato su Abilitato.

  9. Dopo aver concesso l'autorizzazione, riscopri i DB nel portale di Azure passando a Recovery Services vault>Manage>Backup Infrastructure>Workload in Azure VM e selezionando Rediscover DBs.

    Individuazione dei database nel portale di Azure

In alternativa, è possibile automatizzare l'assegnazione delle autorizzazioni eseguendo i cmdlet seguenti in modalità amministratore.

Note

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's 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
}

Prezzi per il backup di snapshot delle istanze di SQL Server nelle macchine virtuali Azure

Il backup di SQL nello snapshot della macchina virtuale di Azure comporta i costi seguenti:

  • I backup di snapshot archiviati in un insieme di credenziali di Servizi di ripristino hanno un prezzo basato sui prezzi di Backup di Azure.

  • Oltre al costo dell'istanza protetta e al costo di archiviazione del vault, Backup di Azure comporta addebiti aggiuntivi per l'archiviazione delle istantanee nel livello operativo.

  • Gli snapshot di dischi gestiti comportano addebiti in base ai prezzi degli snapshot di dischi gestiti per il periodo in cui vengono conservati nella sottoscrizione.

Passaggi successivi