Backup gestito di SQL Server in Microsoft Azure
Si applica a:SQL Server
Backup gestito di SQL Server in Microsoft Azure gestisce e automatizza i backup di SQL Server nel servizio di archiviazione BLOB di Microsoft Azure. È possibile consentire a SQL Server di stabilire la pianificazione del backup in base al carico di lavoro della transazione nel database. In alternativa, è possibile usare le opzioni avanzate per definire una pianificazione. Le impostazioni di conservazione specificano per quanto tempo i backup vengono conservati nel servizio di archiviazione BLOB di Azure. SQL Server Backup gestito in Microsoft Azure supporta il ripristino temporizzato per il periodo di conservazione specificato.
A partire da SQL Server 2016 (13.x), le procedure e il comportamento sottostante di SQL Server Backup gestito in Microsoft Azure sono cambiati. Per altre informazioni, vedere Migrare le impostazioni di backup gestito di SQL Server 2014 a SQL Server 2016.
Suggerimento
SQL Server Backup gestito in Microsoft Azure è consigliato per SQL Server istanze in esecuzione in macchine virtuali di Microsoft Azure.
Vantaggi
Per l'automatizzazione di backup per più database sono attualmente richiesti lo sviluppo di una strategia di backup, la scrittura di codice personalizzato e la pianificazione di backup. Usando SQL Server backup gestito in Microsoft Azure, è possibile creare un piano di backup specificando solo il periodo di conservazione e il percorso di archiviazione. Anche se disponibili, le impostazioni avanzate non sono necessarie. SQL Server backup gestito in pianificazioni di Microsoft Azure, esegue e gestisce i backup.
SQL Server backup gestito in Microsoft Azure può essere configurato a livello di database o a livello di istanza di SQL Server. Se configurato a livello di istanza, il backup dei nuovi database viene eseguito automaticamente. È possibile usare le impostazioni a livello di database per eseguire l'override delle impostazioni predefinite a livello di istanza per singoli casi.
La crittografia dei backup assicura maggiore sicurezza ed è possibile impostare una pianificazione personalizzata per controllare quando verranno eseguiti i backup. Per altre informazioni sui vantaggi dell'uso dell'archiviazione BLOB di Microsoft Azure per i backup di SQL Server, vedere SQL Server Backup and Restore with Microsoft Archiviazione BLOB di Azure
Prerequisiti
Archiviazione di Microsoft Azure viene usato da SQL Server backup gestito in Microsoft Azure per archiviare i file di backup. Sono richiesti i prerequisiti seguenti:
Prerequisito | Descrizione |
---|---|
Account Microsoft Azure | È possibile iniziare a usare Azure con una versione di valutazione gratuita prima di esaminare le opzioni per l'acquisto. |
Account di archiviazione di Azure | I backup vengono archiviati in Archiviazione BLOB di Azure associati a un account di archiviazione di Azure. Per istruzioni dettagliate per creare un account di archiviazione, vedere Informazioni sugli account di archiviazione Azure. |
Contenitore BLOB | I BLOB sono organizzati in contenitori. L'utente specifica il contenitore di destinazione per i file di backup. È possibile creare un contenitore nel portale di gestione di Azureoppure con il comando di Azure PowerShellNew-AzureStorageContainer . |
Firma di accesso condiviso | L'accesso al contenitore di destinazione è controllato da una firma di accesso condiviso (SAS, Shared Access Signature). Per una panoramica su SAS, vedere Firme di accesso condiviso, parte 1: informazioni sul modello di firma di accesso condiviso. È possibile creare un token della firma di accesso condiviso nel codice o con il comando di PowerShell New-AzureStorageContainerSASToken . Per un esempio di script di PowerShell che semplifica questo processo, vedere Simplifying creation of SQL Credentials with Shared Access Signature ( SAS ) tokens on Azure Storage with Powershell(Semplificazione della creazione di credenziali SQL con i token della firma di accesso condiviso in Archiviazione di Azure con Powershell). Il token di firma di accesso condiviso può essere archiviato in una credenziale SQL da usare con SQL Server backup gestito in Microsoft Azure. |
SQL Server Agent | SQL Server Agent deve essere in esecuzione per il funzionamento di SQL Server backup gestito in Microsoft Azure. È consigliabile impostare l'opzione per l'avvio automatico. |
Componenti
Transact-SQL è l'interfaccia principale per interagire con SQL Server backup gestito in Microsoft Azure. Le stored procedure di sistema vengono usate per abilitare, configurare e monitorare SQL Server backup gestito in Microsoft Azure. Le funzioni di sistema vengono utilizzate per recuperare le informazioni sui file di backup, i valori dei parametri e le impostazioni di configurazione esistenti. Gli eventi estesi vengono utilizzati per esporre errori e avvisi. I meccanismi di avviso sono abilitati tramite i processi di SQL Agent e la gestione basata su criteri di SQL Server. Di seguito è riportato un elenco degli oggetti e una descrizione delle relative funzionalità in relazione a SQL Server backup gestito in Microsoft Azure.
I cmdlet di PowerShell sono disponibili anche per configurare SQL Server Backup gestito in Microsoft Azure. SQL Server Management Studio supporta il ripristino dei backup creati da SQL Server Backup gestito in Microsoft Azure tramite l'attività Ripristina database
Oggetto di sistema | Descrizione |
---|---|
MSDB | Archivia i metadati, la cronologia dei backup per tutti i backup creati da SQL Server backup gestito in Microsoft Azure. |
managed_backup.sp_backup_config_basic (Transact-SQL) | Abilita SQL Server backup gestito in Microsoft Azure. |
managed_backup.sp_backup_config_advanced (Transact-SQL) | Configura le impostazioni avanzate per SQL Server backup gestito in Microsoft Azure, ad esempio la crittografia. |
managed_backup.sp_backup_config_schedule (Transact-SQL) | Crea una pianificazione personalizzata per SQL Server backup gestito in Microsoft Azure. |
managed_backup.sp_ backup_master_switch (Transact-SQL) | Sospende e riprende SQL Server backup gestito in Microsoft Azure. |
managed_backup.sp_set_parameter (Transact-SQL) | Abilita e configura il monitoraggio per SQL Server backup gestito in Microsoft Azure. Esempi: abilitazione di eventi estesi, impostazioni della posta elettronica per le notifiche. |
managed_backup.sp_backup_on_demand (Transact-SQL) | Esegue un backup ad hoc per un database abilitato per l'uso di SQL Server backup gestito in Microsoft Azure senza interrompere la catena di log. |
managed_backup.fn_backup_db_config (Transact-SQL) | Restituisce il SQL Server backup gestito corrente nello stato di Microsoft Azure e i valori di configurazione per un database o per tutti i database nell'istanza di . |
managed_backup.fn_is_master_switch_on (Transact-SQL) | Restituisce lo stato del parametro master. |
managed_backup.sp_get_backup_diagnostics (Transact-SQL) | Restituisce gli eventi registrati da Eventi estesi. |
managed_backup.fn_get_parameter (Transact-SQL) | Restituisce i valori correnti delle impostazioni di sistema di backup, ad esempio le impostazioni di monitoraggio e di posta elettronica per gli avvisi. |
managed_backup.fn_available_backups (Transact-SQL) | Recupera i backup disponibili per un determinato database o per tutti i database in un'istanza. |
managed_backup.fn_get_current_xevent_settings (Transact-SQL) | Restituisce le impostazioni correnti degli eventi estesi. |
managed_backup.fn_get_health_status (Transact-SQL) | Restituisce i conteggi aggregati di errori registrati dagli eventi estesi per un periodo specificato. |
Strategia di backup
Pianificazione del backup
È possibile specificare una pianificazione di backup personalizzata usando la stored procedure di sistema managed_backup.sp_backup_config_schedule (Transact-SQL).You can specify a custom backup schedule using the system stored procedure managed_backup.sp_backup_config_schedule (Transact-SQL). Se non viene specificata una pianificazione personalizzata, il tipo di backup pianificato e la frequenza di esecuzione vengono stabiliti in base al carico di lavoro del database. Le impostazioni del periodo di memorizzazione vengono utilizzate per determinare la durata di conservazione di un file di backup nell'archiviazione e la possibilità di recupero del database fino a una temporizzazione entro il periodo di memorizzazione.
Convenzioni di denominazione dei file di backup
SQL Server Backup gestito in Microsoft Azure usa il contenitore specificato, in modo da avere il controllo sul nome del contenitore. Per i file di backup, i database non di disponibilità vengono denominati usando la convenzione seguente: il nome viene creato usando i primi 40 caratteri del nome del database, il GUID del database senza '-' e il timestamp. Il carattere di sottolineatura viene inserito tra i segmenti come separatore. Per il backup completo viene utilizzata l'estensione di file BAK , mentre per i backup del log viene utilizzata LOG . Per i database del gruppo di disponibilità, oltre alla convenzione di denominazione file descritta in precedenza, viene aggiunto il GUID del database del gruppo di disponibilità dopo i 40 caratteri del nome del database. Il valore GUID del database del gruppo di disponibilità è il valore per group_database_id in sys.databases.
Backup completo del database
SQL Server Backup gestito nell'agente di Microsoft Azure pianifica un backup completo del database se è true una delle condizioni seguenti.
Un database è SQL Server Backup gestito in Microsoft Azure abilitato per la prima volta o quando SQL Server Backup gestito in Microsoft Azure è abilitato con le impostazioni predefinite a livello di istanza.
L'aumento delle dimensioni del log dopo l'ultimo backup completo del database è uguale o maggiore di 1 GB.
È passato l'intervallo di tempo massimo di una settimana dall'ultimo backup completo del database.
La catena di log è stata interrotta. SQL Server Backup gestito in Microsoft Azure verifica periodicamente se la catena di log è intatta confrontando i primi e gli ultimi LSN dei file di backup. Se si verifica un'interruzione nella catena di log per qualsiasi motivo, SQL Server Backup gestito in Microsoft Azure pianifica un backup completo del database. Nella maggior parte dei casi le interruzioni della catena di log sono dovute probabilmente a un comando di backup eseguito tramite Transact-SQL o mediante l'attività di backup in SQL Server Management Studio. Tra gli altri scenari comuni sono incluse l'eliminazione accidentale dei file di log di backup o la sovrascrittura accidentale dei backup.
Backup del log delle transazioni
SQL Server Backup gestito in Microsoft Azure pianifica un backup del log se uno dei seguenti è true:
Non sono disponibili cronologie di backup del log. Questo è in genere vero quando SQL Server backup gestito in Microsoft Azure è abilitato per la prima volta.
Lo spazio del log delle transazioni utilizzato è pari ad almeno 5 MB.
È stato raggiunto l'intervallo di tempo massimo di 2 ore dall'ultimo backup del log.
Ogni volta che il backup del log delle transazioni è in ritardo rispetto a un backup completo del database. L'obiettivo è quello di anticipare la catena di log rispetto al backup completo.
Impostazioni del periodo di memorizzazione
Quando si abilita il backup, è necessario impostare il periodo di conservazione in giorni: il valore minimo è 1 giorno e il massimo è di 90 giorni.
SQL Server Backup gestito in Microsoft Azure in base alle impostazioni del periodo di conservazione, valuta la possibilità di ripristinare in un momento nel tempo specificato, per determinare quali file di backup mantenere e identificare i file di backup da eliminare. L'oggetto backup_finish_date del backup viene utilizzato per determinare e far corrispondere il tempo specificato in base alle impostazioni del periodo di memorizzazione.
Importanti considerazioni
Per un database, se è in esecuzione un processo di backup completo del database esistente, SQL Server Backup gestito in Microsoft Azure attende il completamento del processo corrente prima di eseguire un altro backup completo del database per lo stesso database. Analogamente, solo un backup del log delle transazioni può essere in esecuzione in un determinato momento. Tuttavia, un backup completo del database e un backup del log delle transazioni possono essere eseguiti contemporaneamente. Gli errori vengono registrati come eventi estesi.
Se sono pianificati più di 10 backup completi del database simultanei, viene generato un avviso tramite il canale di debug di eventi estesi. SQL Server Backup gestito in Microsoft Azure mantiene quindi una coda di priorità per i database rimanenti che richiedono un backup fino a quando non vengono pianificati e completati tutti i backup.
Nota
Il backup gestito di SQL Server non è supportato con i server proxy.
Facilità di supporto
Le limitazioni e le considerazioni di supporto seguenti sono specifiche per SQL Server:
Il backup di database di sistema master, modele msdb è supportato. Il backup di tempdb non è supportato.
Tutti i modelli di ripristino sono supportati (full, bulk-log e Simple).
SQL Server Backup gestito nell'agente di Microsoft Azure supporta solo backup completi e log del database. L'automazione di backup di file non è supportata.
Microsoft Archiviazione BLOB di Azure è l'unica opzione di archiviazione di backup supportata. I backup su disco o su nastro non sono supportati.
SQL Server Backup gestito in Microsoft Azure usa la funzionalità Backup per bloccare BLOB. La dimensione massima di un blob in blocchi è 200 GB. Se si adotta lo striping, la dimensione massima di un singolo backup può arrivare a 12 TB. Se i requisiti di backup superano questo problema, è consigliabile usare la compressione e testare le dimensioni del file di backup prima di configurare SQL Server Backup gestito in Microsoft Azure. È possibile eseguire tale verifica con un backup in un disco locale o con un backup manuale nel servizio di archiviazione di Microsoft Azure usando l'istruzione Transact-SQL BACKUP TO URL . Per altre informazioni, vedere SQL Server Backup to URL.
SQL Server Backup gestito in Microsoft Azure potrebbe avere alcune limitazioni quando è configurato con altre tecnologie che supportano il backup, la disponibilità elevata o il ripristino di emergenza.
I backup dei database in un gruppo di disponibilità saranno un backup copy_only.