Backup automatico per SQL Server nelle VM di Azure

Si applica a: SQL Server su VM di Azure

Il backup automatico configura automaticamente il backup gestito in Microsoft Azure per tutti i database nuovi ed esistenti nelle VM SQL Server 2016 o versioni successive Standard, Enterprise o Developer in esecuzione. In questo modo è possibile configurare i backup periodici del database che usano l'archiviazione BLOB di Azure durevole.

Prerequisiti

Per usare i backup automatici per SQL Server nelle VM Azure, è necessario avere:

  • Un SQL Server su VM Azure registrate con l'estensione SQL IaaS Agent.
  • Windows Server 2012 R2 o versioni successive.
  • SQL Server 2016 e versioni successive. Per SQL Server 2014, si veda: Backup automatico per SQL Server 2014.
  • Configurazione del database:
    • I database di destinazione degliutenti devono usare il modello di recupero con registrazione completa. I database di sistema non devono necessariamente usare un modello di recupero con registrazione completa. Se tuttavia è necessario effettuare il backup del log per model o msdb deve essere usato il modello di recupero con registrazione completa. Per ulteriori informazioni sull'impatto del modello di recupero con registrazione completa sui backup, vedere Backup con il modello di recupero con registrazione completa.
    • La macchina virtuale di SQL Server è stata registrata con l'estensione SQL IaaS Agent e la funzionalità Backup automatico è abilitata. Poiché il backup automatico si basa sull'estensione, il backup automatico è supportato solo nei database di destinazione dall'istanza predefinita o in una singola istanza denominata. Se non è presente alcuna istanza predefinita e più istanze denominate, l'estensione SQL IaaS Agent non riesce e il backup automatico non funzionerà.
    • Se si eseguono backup automatizzati in una replica del gruppo di disponibilità Always On secondario, la replica deve essere leggibile affinché i backup abbiano esito positivo.

Impostazione

Nella seguente tabella sono descritte le opzioni che possono essere configurate per il Backup Automatico. I passaggi di configurazione effettivi variano a seconda che venga usato il portale di Azure o i comandi di Windows PowerShell di Azure. Il backup automatico usa la compressione di backup per impostazione predefinita e non può essere disabilitato.

Impostazioni di base

Impostazione Intervallo (impostazione predefinita) Descrizione
Backup automatizzato Abilita/Disabilita (disabilitato) Abilita o disabilita il backup automatico per una macchina virtuale di Azure in cui viene eseguito SQL Server 2016 o versione successiva Developer, Standard o Enterprise.
Periodo di conservazione 1-90 giorni (90 giorni) Numero di giorni in cui il servizio mantiene i metadati di backup in msdb. Dopo la scadenza del periodo di conservazione per un backup, i metadati vengono eliminati da msdb, ma i file non vengono eliminati dal contenitore di archiviazione. È possibile usare criteri di gestione del ciclo di vita per l'account di archiviazione per bilanciare la conservazione dei backup con la gestione dei costi in base alle esigenze aziendali.
Account di archiviazione Account di archiviazione di Azure Account di archiviazione di Azure da usare per archiviare i file del Backup Automatico nell'archiviazione BLOB. In questa posizione viene creato un contenitore per archiviare tutti i file di backup. La convenzione di denominazione dei file di backup include la data, l'ora e il GUID database.
Crittografia Abilita/Disabilita (disabilitato) Abilita o disabilita la crittografia di backup. Quando è abilitata la crittografia, i certificati usati per ripristinare il backup sono contenuti nell'account di archiviazione specificato, nello stesso contenitore automaticbackup con la stessa convenzione di denominazione. Se la password viene modificata, viene generato un nuovo certificato con tale password, ma il certificato precedente viene mantenuto per ripristinare i backup precedenti.
Password Testo della password Password per le chiavi di crittografia. Questa password è necessaria solo se la crittografia è abilitata. Per ripristinare un backup crittografato, è necessario disporre della password corretta e del certificato correlato usato al momento dell'esecuzione del backup.

Impostazioni avanzate

Impostazione Intervallo (impostazione predefinita) Descrizione
Backup dei database di sistema Abilita/Disabilita (disabilitato) Quando abilitata, questa funzionalità esegue inoltre il backup dei database di sistema: master, msdb, e model. Per i database msdb and model, verificare che siano in modello di recupero con registrazione completa se si desidera eseguire il backup dei log. I backup del log non vengono mai eseguiti per master e non vengono eseguiti backup per tempdb.
Pianificazione backup Manual/Automated (Automated) (Manuale/Automatizzato - Automatizzato) Per impostazione predefinita, la pianificazione del backup è determinata automaticamente in base all'aumento delle dimensioni dei log. Una pianificazione manuale del backup consente all'utente di specificare l'intervallo di tempo per i backup. In questo caso, i backup viene eseguiti unicamente con la frequenza e nell'intervallo di tempo specificati per il giorno in questione.
Frequenza backup completo Giornaliera/settimanale Frequenza dei backup completi. In entrambi i casi, i backup completi iniziano nell'intervallo di tempo pianificato successivo. Quando si seleziona la frequenza settimanale, i backup potrebbero durare più giorni fino ad aver incluso tutti i database.
Ora di inizio backup completo 00:00 – 23:00 (01:00) Ora di inizio di un determinato giorno in cui possono avere luogo i backup completi.
Intervallo di tempo per il backup completo 1-23 ore (1 ora) Intervallo di tempo di un determinato giorno in cui possono avere luogo i backup completi.
Frequenza di backup del log 5-60 minuti (60 minuti) Frequenza dei backup dei log.

Nota

La pianificazione dei backup automatizzati esegue i backup in base all'aumento dei log. Non è consigliabile usare backup automatici quando i database sono in modalità di ripristino semplice.

Informazioni sulla frequenza dei backup completi

È importante comprendere la differenza tra i backup completi giornalieri e settimanali. Esaminare i due scenari di esempio seguenti.

Scenario 1: Backup settimanali

Si dispone di una macchina virtuale di SQL Server che contiene una serie di database di grandi dimensioni.

Ogni lunedì viene abilitato il Backup automatico con le seguenti impostazioni:

  • Pianificazione backup: Manuale
  • Frequenza backup completo: Settimanale
  • Ora di inizio backup completo: 01:00
  • Intervallo di tempo dei backup completi: 1 ora

Ciò significa che l'intervallo di tempo disponibile successivo per il backup sarà martedì alle ore 01:00 per 1 ora. In quel momento, Backup automatico inizia a eseguire il backup dei database, uno alla volta. In questo scenario, date le dimensioni dei database, il tempo è sufficiente per eseguire il backup dei primi due. Passata l'ora, tuttavia, il backup non è stato eseguito per tutti i database.

In questo caso, Backup automatico inizierà a eseguire il backup dei database rimanenti il giorno dopo, ovvero mercoledì, sempre alle ore 01:00 per un'ora. Se anche dopo quell'intervallo di tempo non è stato eseguito il backup di tutti i database, Backup automatico riprova il giorno successivo, e così via fino a quando non viene stato eseguito il backup di tutti i database.

Il martedì successivo, Backup automatico comincia nuovamente il backup di tutti i database.

In questo scenario, Backup automatico opera unicamente nell'intervallo di tempo specificato e viene eseguito il backup di ogni database una volta alla settimana. Si noti anche come sia possibile distribuire i backup su più giorni nel caso in cui un unico giorno non sia sufficiente per completarli.

Scenario 2: Backup giornalieri

Si dispone di una macchina virtuale di SQL Server che contiene una serie di database di grandi dimensioni.

Ogni lunedì viene abilitato il Backup automatico con le seguenti impostazioni:

  • Pianificazione backup: Manuale
  • Frequenza backup completo: Ogni giorno
  • Ora di inizio backup completo: 22:00
  • Intervallo di tempo dei backup completi: 6 ore

Ciò significa che l'intervallo di tempo disponibile successivo per il backup sarà lunedì alle ore 22:00 per 6 ore. In quel momento, Backup automatico inizia a eseguire il backup dei database, uno alla volta.

Il backup viene quindi eseguito nuovamente martedì alle 22:00 per 6 ore.

Importante

I backup vengono eseguiti in sequenza durante ogni intervallo. Per le istanze con un numero elevato di database, pianificare l'intervallo di backup tenendo conto di un tempo sufficiente per supportare tutti i backup. Se non è possibile completare i backup entro l'intervallo specificato, alcuni backup potrebbero essere ignorati e il tempo tra i backup per un singolo database potrebbe essere superiore al tempo di intervallo di backup configurato, che potrebbe influire negativamente sull'obiettivo del punto di ripristino (RPO).

Configurare le nuove macchine virtuali

Usare il portale di Azure per configurare il Backup automatico quando si crea una nuova macchina virtuale di SQL Server 2016 o versione successiva nel modello di distribuzione Resource Manager.

Nella scheda Impostazioni SQL Server selezionare Abilita in Backup automatico. Quando si abilita il backup automatico di SQL è possibile configurare le impostazioni seguenti:

  • Periodo di conservazione (fino a 90 giorni) per i backup
  • Account di archiviazione e contenitore di archiviazione da usare per i backup
  • Opzione di crittografia e password per i backup
  • Backup dei database di sistema
  • Configure backup schedule (Configura la pianificazione dei backup)

Per crittografare il backup, selezionare Abilita. Specificare quindi la Password. Azure crea un certificato per crittografare i backup e usa la password specificata per proteggere il certificato.

Scegliere Seleziona contenitore Archiviazione per specificare il contenitore in cui archiviare i backup.

Per impostazione predefinita, la pianificazione viene impostata automaticamente, ma è possibile creare una pianificazione personalizzata selezionando Manuale, che consente di configurare la frequenza di backup, l'intervallo di tempo del backup e la frequenza di backup del log in minuti.

Lo screenshot portale di Azure seguente mostra le impostazioni di Backup automatico quando si crea una nuova macchina virtuale di SQL Server:

Screenshot della configurazione del backup automatico nel portale di Azure.

Configurare le macchine virtuali esistenti

Per le macchine virtuali SQL Server esistenti, passare alla risorsa Macchine virtuali SQL e quindi selezionare Backup per configurare i backup automatici.

Selezionare Abilita per configurare le impostazioni di Backup automatico.

È possibile configurare il periodo di conservazione (fino a 90 giorni), il contenitore per l'account di archiviazione in cui archiviare i backup, nonché la crittografia e la pianificazione del backup. Per impostazione predefinita, la pianificazione è automatizzata.

Screenshot del backup automatico per le macchine virtuali esistenti nel portale.

Se si vuole impostare una pianificazione di backup personalizzata, scegliere Manuale e configurare la frequenza di backup, indipendentemente dal fatto che si desideri eseguire il backup dei database di sistema e l'intervallo di backup del log delle transazioni in minuti.

Screenshot della selezione manuale per configurare la pianificazione di backup personalizzata.

Al termine, selezionare il pulsante Applica nella parte inferiore della pagina Backup per salvare le modifiche.

Se si intende abilitare il backup automatico per la prima volta, Azure configura l'agente IaaS di SQL Server in background. Durante questo periodo, nel portale di Azure potrebbe non essere visualizzata l'informazione relativa alla configurazione del Backup Automatico. Attendere alcuni minuti per l'installazione e la configurazione dell'agente. A questo punto, nel portale di Azure verranno visualizzate le nuove impostazioni.

Configurare con PowerShell

È possibile usare PowerShell per configurare il Backup Automatico. Prima di iniziare, è necessario eseguire queste operazioni:

Nota

Questo articolo usa il modulo di PowerShell Azure Az consigliato per l'interazione con Azure. Per iniziare a usare il modulo Az PowerShell, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.

Installare l'estensione di SQL Server IaaS

Se è stato eseguito il provisioning di una macchina virtuale di SQL Server dal portale di Azure, l'estensione di SQL Server IaaS dovrebbe già essere installata. È possibile verificare se l'estensione è già stata installata per la macchina virtuale eseguendo il comando Get-AzVM ed esaminando la proprietà Estensioni.

$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"

(Get-AzVM -Name $vmname -ResourceGroupName $resourcegroupname).Extensions 

Se l'estensione Agente IaaS di SQL Server è installata, verrà visualizzata come "SqlIaaSAgent" o "SQLIaaSExtension". Il ProvisioningState per l'estensione dovrà comunque essere visualizzato come "Avvenuto".

Nel caso in cui l'estensione non sia installata o non sia stato possibile eseguire il provisioning, è possibile installarla con il comando seguente. Oltre al nome della macchina virtuale e al gruppo di risorse, è necessario anche specificare l'area ($region) in cui si trova la macchina virtuale.

$region = "EASTUS2"
Set-AzVMSqlServerExtension -VMName $vmname `
    -ResourceGroupName $resourcegroupname -Name "SQLIaasExtension" `
    -Version "2.0" -Location $region 

Verificare le impostazioni correnti

Se si è abilitato il backup automatico durante il provisioning, è possibile usare PowerShell per verificare la configurazione corrente. Eseguire il comando Get-AzVMSqlServerExtension ed esaminare la proprietà AutoBackupSettings:

(Get-AzVMSqlServerExtension -VMName $vmname -ResourceGroupName $resourcegroupname).AutoBackupSettings

L'output dovrebbe essere simile al seguente:

Enable                      : True
EnableEncryption            : False
RetentionPeriod             : 30
StorageUrl                  : https://test.blob.core.windows.net/
StorageAccessKey            :  
Password                    : 
BackupSystemDbs             : False
BackupScheduleType          : Manual
FullBackupFrequency         : WEEKLY
FullBackupStartTime         : 2
FullBackupWindowHours       : 2
LogBackupFrequency          : 60

Se l'output indica che Enable è impostato su False, è necessario abilitare il backup automatico. I passaggi per farlo sono identici a quelli per abilitare e configurare Backup automatico. Per informazioni in merito, vedere la sezione seguente.

Nota

Se si verificano le impostazioni subito dopo una modifica, è possibile che vengano visualizzati i valori precedenti. Attendere alcuni minuti e verificare nuovamente le impostazioni per assicurarsi che siano state applicate le modifiche.

Configurare Backup Automatico

È possibile usare PowerShell per abilitare Backup automatico e per modificarne configurazione e comportamento in qualsiasi momento.

In primo luogo, selezionare o creare un account di archiviazione per i file di backup. Lo script seguente consente di selezionare un account di archiviazione o di crearne uno.

$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"
$storage_accountname = "yourstorageaccount"
$storage_url = "https://yourstorageaccount.blob.core.windows.net/"

$storage = Get-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -ErrorAction SilentlyContinue
If (-Not $storage)
    { $storage = New-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -SkuName Standard_GRS -Location $region }

Nota

Il Backup Automatico non supporta l'archiviazione di backup nell'archiviazione Premium, ma può ottenere i backup da dischi di macchine virtuali che usano l'archiviazione Premium.

Se si vuole usare un contenitore personalizzato nell'account di archiviazione per i backup, usare lo script seguente per verificare se il contenitore o crearlo se non esiste.

$storage_container = "backupcontainer"

New-AzStorageContainer -Name $storage_container -Context $storage.Context

if (!(Get-AzStorageAccount -StorageAccountName $storage_accountname -ResourceGroupName $resourcegroupname | Get-AzStorageContainer | Where-Object { $_.Name -eq $storage_container })){ `
	New-AzStorageContainer -Name $storage_container -Context $storage.Context `
} `
 else `
{ `
	Write-Warning "Container $storage_container already exists." `
}

Successivamente, usare il comando seguente per ottenere una chiave per l'account di archiviazione:

$accesskey = (Get-AzStorageAccountKey -ResourceGroupName $resourcegroupname  -Name $storage_accountname)[0].value

Eseguire quindi il comando aggiornamento AzSqlVM per abilitare e configurare le impostazioni di Backup automatico per archiviare i backup nell'account di archiviazione di Azure. In questo esempio, viene impostata su 10 giorni la conservazione dei backup. I backup del database di sistema sono abilitati. I backup completi sono pianificati per ogni sabato (settimanali), con un intervallo di tempo di due ore a partire dalle 20:00. I backup del log vengono eseguiti ogni 30 minuti.

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingBackupScheduleType Manual `
-AutoBackupSettingFullBackupFrequency Weekly 
-AutoBackupSettingDaysOfWeek Saturday `
-AutoBackupSettingFullBackupStartTime 20 `
-AutoBackupSettingFullBackupWindowHour 2 `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod 10 `
-AutoBackupSettingLogBackupFrequency 30 `
-AutoBackupSettingStorageContainerName $storage_container `
-AutoBackupSettingBackupSystemDb

Potrebbero essere necessari diversi minuti per installare e configurare l'agente IaaS di SQL Server.

Per abilitare la crittografia, modificare lo script precedente in modo da passare il parametro AutoBackupSettingEnableEncryption e una password (stringa sicura) per il parametro -AutoBackupSettingPassword. Il seguente script abilita le impostazioni del Backup Automatico nell'esempio precedente e aggiunge la crittografia.

$password = "r@ndom Va1ue"
$encryptionpassword = $password | ConvertTo-SecureString -AsPlainText -Force  

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingBackupScheduleType Manual `
-AutoBackupSettingFullBackupFrequency Weekly `
-AutoBackupSettingDaysOfWeek Saturday `
-AutoBackupSettingFullBackupStartTime 20 `
-AutoBackupSettingFullBackupWindowHour 2 `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod 10 `
-AutoBackupSettingLogBackupFrequency 30 `
-AutoBackupSettingEnableEncryption `
-AutoBackupSettingPassword $encryptionpassword `
-AutoBackupSettingStorageContainerName $storage_container `
-AutoBackupSettingBackupSystemDb

Per confermare l'applicazione delle impostazioni, verificare la configurazione di Backup Automatico.

Disabilitare Backup Automatico

Per disabilitare il backup automatico, eseguire lo stesso script con il parametro -AutoBackupSettingEnable impostato su $false nel comando Update-AzSqlVM. Impostando il valore su False, la funzione viene disabilitata. Come per l'installazione, la disabilitazione del Backup Automatico può richiedere alcuni minuti.

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable:$false

Script di esempio

Lo script seguente fornisce un set di variabili da personalizzare per abilitare e configurare Backup Automatico per la propria macchina virtuale. In questo caso, potrebbe essere necessario personalizzare lo script in base alle esigenze. Ad esempio, potrebbe essere necessario apportare modifiche se si desidera disabilitare il backup dei database di sistema o abilitare la crittografia.

$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"
$region = "Azure region name such as EASTUS2"
$storage_accountname = "yourstorageaccount"
$storage_url = "https://yourstorageaccount.blob.core.windows.net/"
$retentionperiod = 10
$backupscheduletype = "Manual"
$fullbackupfrequency = "Weekly"
$fullbackupdayofweek = "Saturday"
$fullbackupstarthour = "20"
$fullbackupwindow = "2"
$logbackupfrequency = "30"

# ResourceGroupName is the resource group which is hosting the VM where you are deploying the SQL Server IaaS Extension 

Set-AzVMSqlServerExtension -VMName $vmname `
    -ResourceGroupName $resourcegroupname -Name "SQLIaasExtension" `
    -Version "2.0" -Location $region

# Creates/use a storage account to store the backups

$storage = Get-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -ErrorAction SilentlyContinue
If (-Not $storage)
    { $storage = New-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -SkuName Standard_GRS -Location $region }

# Creates/uses a custom storage account container

$storage_container = "yourbackupcontainer"

if (!(Get-AzStorageAccount -StorageAccountName $storage_accountname -ResourceGroupName $resourcegroupname | Get-AzStorageContainer | Where-Object { $_.Name -eq $storage_container })){ `
	New-AzStorageContainer -Name $storage_container -Context $storage.Context `
} `
 else `
{ `
	Write-Warning "Container $storage_container already exists." `
}

# Get storage account access key
$accesskey = (Get-AzStorageAccountKey -ResourceGroupName $resourcegroupname  -Name $storage_accountname)[0].value

# Configure Automated Backup settings

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingBackupScheduleType $backupscheduletype `
-AutoBackupSettingFullBackupFrequency $fullbackupfrequency `
-AutoBackupSettingDaysOfWeek $fullbackupdayofweek `
-AutoBackupSettingFullBackupStartTime $fullbackupstarthour `
-AutoBackupSettingFullBackupWindowHour $fullbackupwindow `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod $retentionperiod `
-AutoBackupSettingLogBackupFrequency $logbackupfrequency `
-AutoBackupSettingStorageContainerName $storage_container `
-AutoBackupSettingBackupSystemDb

Backup con certificati di crittografia

Se si decide di crittografare i backup, verrà generato e salvato un certificato di crittografia nello stesso account di archiviazione dei backup. In questo scenario sarà inoltre necessario immettere una password che verrà usata per proteggere i certificati di crittografia usati per crittografare e decrittografare i backup. Ciò consente di non preoccuparsi dei backup oltre la configurazione di questa funzionalità e garantisce inoltre che i backup siano sicuri.

Quando la crittografia del backup è abilitata, è consigliabile verificare se il certificato di crittografia è stato creato e caricato correttamente per garantire la ripristinabilità dei database. A tale scopo, è possibile creare immediatamente un database e controllare i certificati di crittografia e i dati di cui è stato eseguito il backup nel contenitore appena creato. Ciò mostrerà che tutto è stato configurato correttamente e che non sono si sono verificate anomalie.

Se il certificato non è stato caricato per qualche motivo, è possibile usare il gestore di certificati per esportare il certificato e salvarlo. Tuttavia, non è consigliabile salvarlo sulla stessa macchina virtuale, in quanto ciò non garantisce l'accesso al certificato quando la macchina virtuale è inattiva. Per sapere se il backup del certificato è stato eseguito correttamente dopo aver modificato o creato la configurazione del backup automatico, è possibile controllare i registri eventi nella macchina virtuale e, se non è riuscito, verrà visualizzato questo messaggio di errore:

Screenshot del messaggio di errore mostrato nel registro eventi nella VM.

Se il backup dei certificati è stato eseguito correttamente, verrà visualizzato questo messaggio nei registri eventi:

Screenshot del backup riuscito del certificato di crittografia nei registri eventi.

Come pratica generica, è consigliabile controllare l'integrità dei backup di tanto in tanto. Per poter ripristinare i backup, è necessario eseguire le operazioni seguenti:

  1. Verificare che sia stato eseguito il backup dei certificati di crittografia e che la password sia stata memorizzata. In caso contrario, non sarà possibile decrittografare e ripristinare i backup. Se per qualche motivo il backup dei certificati non è stato eseguito correttamente, è possibile eseguire questa operazione manualmente tramite la query T-SQL seguente:

    BACKUP MASTER KEY TO FILE = <file_path> ENCRYPTION BY PASSWORD = <password>
    BACKUP CERTIFICATE [AutoBackup_Certificate] TO FILE = <file_path> WITH PRIVATE KEY (FILE = <file_path>, ENCRYPTION BY PASSWORD = <password>)
    
  2. Verificare che i file di backup siano caricati con almeno 1 backup completo. Poiché gli errori possono capitare, è necessario assicurarsi di avere sempre almeno un backup completo prima di eliminare la macchina virtuale, o nel caso in cui la macchina virtuale sia danneggiata, in modo da poter comunque accedere ai dati. Assicurarsi che il backup nell'archiviazione sia sicuro e ripristinabile prima di eliminare i dischi dati della macchina virtuale.

Monitoraggio

Per monitorare il Backup automatizzato in SQL Server 2016 o versioni successive esistono due opzioni principali. Poiché Backup automatico usa la funzionalità di Backup gestito di SQL Server, le stesse tecniche di monitoraggio sono valide per entrambi.

In primo luogo, è possibile eseguire il polling dello stato chiamando msdb.managed_backup.sp_get_backup_diagnostics. Oppure eseguire una query della funzione con valori di tabella msdb.managed_backup.fn_get_health_status.

È inoltre possibile sfruttare la funzionalità incorporata di posta elettronica database per le notifiche.

  1. Chiamare la stored procedure msdb.managed_backup.sp_set_parameter per assegnare un indirizzo di posta elettronica al parametro SSMBackup2WANotificationEmailIds.
  2. Abilitare SendGrid per inviare i messaggi di posta elettronica dalla macchina virtuale di Azure.
  3. Usare il nome utente e il server SMTP per configurare la posta elettronica database. È possibile configurare la posta elettronica database in SQL Server Management Studio o con i comandi Transact-SQL. Per ulteriori informazioni, vedere Posta elettronica database.
  4. Configurare SQL Server Agent per usare la posta elettronica database.
  5. Verificare che la porta SMTP sia consentita sia attraverso il firewall della macchina virtuale locale sia nel gruppo di sicurezza di rete per la macchina virtuale.

Problemi noti

Prendere in considerazione questi problemi noti quando si usa la funzionalità Backup automatico.

Non è possibile abilitare il backup automatizzato nel portale di Azure

La tabella seguente elenca le possibili soluzioni se si verificano problemi durante l'abilitazione del backup automatico dal portale di Azure:

Sintomo Soluzione
L'abilitazione dei backup automatizzati ha esito negativo se l'estensione IaaS è nello stato Non riuscito Se l'estensione Agent IaaS SQL è nello stato Non riuscito, ripristinarla.
L'abilitazione del backup automatizzato ha esito negativo se vi sono centinaia di database Si tratta di una limitazione nota con l'estensione SQL IaaS Agent. Per risolvere questo problema, è possibile abilitare backup gestito direttamente anziché usare l'estensione SQL IaaS Agent per configurare il backup automatico.
L'abilitazione del backup automatizzato ha esito negativo a causa di problemi relativi ai metadati Arrestare il servizio SQL IaaS Agent. Usare il comando T-SQL use msdb exec autoadmin_metadata_delete. Avviare il servizio SQL IaaS Agent e provare nuovamente ad abilitare il backup automatico dal portale di Azure.
Abilitazione dei backup automatizzati per l'istanza del cluster di failover I backup che usano endpoint privati non sono supportati. Usare l'URI completo dell'account di archiviazione per il backup.
Eseguire il backup di più istanze di SQL usando il backup automatico Attualmente, è supportata una sola istanza SQL Server con backup automatici. Se sono presenti più istanze denominate e l'istanza predefinita, Il backup automatico funziona con l'istanza predefinita. Se sono presenti più istanze denominate e nessuna istanza predefinita, l'attivazione del backup automatico avrà esito negativo.
Il backup automatico non può essere abilitato a causa dell'account e delle autorizzazioni Procedi come segue:
- Verificare che l'agente SQL Server sia in esecuzione.
- L'account NT Service\SqlIaa edizione Standard xtensionQuery dispone delle autorizzazioni appropriate per la funzionalità di backup automatico sia all'interno di SQL Server che per la risorsa macchine virtuali SQL nel portale di Azure.
L'account SA non è stato rinominato, anche se è possibile disabilitarlo.
Il backup automatico ha esito negativo per SQL 2016+ Consenti accesso pubblico ai BLOB è abilitato nell'account di archiviazione. In questo modo viene fornita una soluzione temporanea a un problema noto.

Errori comuni relativi al backup automatico o gestito

Nella tabella seguente sono elencati gli errori e le soluzioni possibili quando si lavora con i backup automatici:

Sintomo Soluzione
Il backup automatico/gestito ha esito negativo a causa di errori di timeout o di connessione all'account di archiviazione Verificare che il gruppo di sicurezza di rete (NSG) per ila rete virtuale e il firewall di Windows non blocchino le connessioni in uscita dalla macchina virtuale all'account di archiviazione (porta 443).
Il backup automatico o gestito ha esito negativo a causa dell'utilizzo elevato di I/O o memoria Verificare se è possibile aumentare la memoria massima del server e/o ridimensionare il disco o la macchina virtuale al superamento del limite della macchina virtuale o di I/O. Se si sta usando il gruppo di disponibilità, scaricare i backup nella replica secondaria.
Il backup automatico ha esito negativo dopo la rinomina del server Se il nome host del computer è stato rinominato, è necessario rinominare anche il nome host all'interno di SQL Server.
Errore: L'operazione ha avuto esito negativo a causa di un errore interno. L'argomento non deve essere stringa vuota.\r\nNome parametro: sas Token Riprovare più tardi Ciò è probabilmente causato dal servizio SQL Server Agent che non ha autorizzazioni di rappresentazione corrette. Modificare il servizio SQL Server Agent per usare un account diverso per risolvere il problema.
Errore: Il backup gestito di SQL Server in Microsoft Azure non è riuscito a configurare le impostazioni di backup predefinite per l'istanza di SQL Server. L'URL del contenitore non è valido. È anche possibile che le credenziali della firma di accesso condiviso non siano valide È possibile che questo errore venga visualizzato se si dispone di numerosi database. Eseguire backup gestiti anziché backup automatici.
Il processo di backup automatico ha avuto esito negativo dopo il riavvio della macchina virtuale Verificare che il servizio SQL Agent sia attivo e in esecuzione.
Il backup gestito ha esito negativo in modo intermittente/Errore: Il timeout di esecuzione è scaduto Si tratta di un problema noto risolto in CU18 per SQL Server 2019 e [KB4040376] per SQL Server 2014-2017.
Errore: Errore del server remoto: (403) Accesso negato Ripristinare l'estensione SQL IaaS Agent.
Errore 3202: La scrittura nell'account di archiviazione ha avuto esito negativo 13 (dati non validi) Rimuovere i criteri BLOB non modificabili nel contenitore di archiviazione e verificare che l'account di archiviazione stia eseguendo al meno TLS 1.0.
Errore 3063: scrittura nel dispositivo BLOB in blocchi di backup. Il dispositivo ha raggiunto il limite di blocchi consentiti. Ciò può verificarsi se si eseguono backup automatizzati da una replica del gruppo di disponibilità Always On secondaria con la configurazione Readable impostata su NO. Affinché i backup automatizzati funzionino in una replica secondaria, la replica deve essere leggibile.
Impossibile pianificare un backup per un determinato giorno Se si usano backup automatici per SQL Server 2014, è previsto. È possibile configurare una pianificazione di backup a partire da SQL Server 2016.

La disabilitazione del backup automatico o del backup gestito ha esito negativo

La tabella seguente elenca le possibili soluzioni se si verificano problemi durante la disabilitazione del backup automatico dal portale di Azure:

Sintomo Soluzione
La disabilitazione dei backup automatizzati ha esito negativo se l'estensione IaaS è nello stato Non riuscito Se l'estensione Agent IaaS SQL è nello stato Non riuscito, ripristinarla.
La disabilitazione del backup automatico ha esito negativo a causa di problemi relativi ai metadati Arrestare il servizio SQL IaaS Agent. Usare il comando T-SQL use msdb exec autoadmin_metadata_delete. Avviare il servizio SQL Iaas Agent e provare a disabilitare il backup automatico da portale di Azure.
Il backup automatico non può essere disabilitato a causa di account e autorizzazioni Procedi come segue:
- Verificare che l'agente SQL Server sia in esecuzione.
- L'account NT Service\SqlIaa edizione Standard xtensionQuery dispone delle autorizzazioni appropriate per la funzionalità di backup automatico sia all'interno di SQL Server che per la risorsa macchine virtuali SQL nel portale di Azure.
L'account SA non è stato rinominato, anche se è possibile disabilitarlo.

Si desidera scoprire quale servizio/applicazione occupa il backup di SQL Server

  • Nel pannello Esplora oggetti di SQL Server Management Studio (SSMS) fare clic con il pulsante destro del mouse sul database > e selezionare Report>Report Standard>eventi di backup e ripristino. Nel report è possibile espandere la sezione Operazioni di backup completate per visualizzare la cronologia dei backup.
  • Se vengono visualizzati più backup in Azure o su un dispositivo virtuale, verificare se è in uso Backup di Azure per eseguire il backup di database SQL singoli o acquisire uno snapshot macchina virtuale in un dispositivo virtuale che usa l'account NT Authority/SYSTEM. In caso contrario, controllare la console di Servizi Windows (services.msc) per identificare eventuali applicazioni di terze parti che potrebbero eseguire backup.

Passaggi successivi

Il Backup Automatico configura Backup Gestito in Macchine virtuali di Azure. Perciò è importante esaminare la documentazione per il backup gestito per comprendere il comportamento e le implicazioni.

È possibile trovare maggiori informazioni sul backup e sul ripristino per SQL Server in macchine virtuali di Azure nell'articolo seguente: Backup e ripristino per SQL Server in Macchine virtuali di Azure.

Per informazioni sulle altre attività di automazione disponibili, vedere Estensione Agente IaaS di SQL Server.

Per ulteriori informazioni sull'esecuzione di SQL Server nelle VM di Azure, vedere Panoramica di SQL Server nelle macchine virtuali di Azure.