Procedure consigliate e risoluzione dei problemi per il backup di SQL Server nell'URL
In questo argomento sono inclusi i suggerimenti per la risoluzione dei problemi e le procedure consigliate relativi al backup e ripristino di SQL Server nel servizio BLOB di Azure.
Per altre informazioni sull'uso del servizio di archiviazione BLOB di Azure per le operazioni di backup e ripristino di SQL Server, vedere:
Backup e ripristino di SQL Server con il servizio Archiviazione BLOB di Azure
Esercitazione: Backup e ripristino di SQL Server nel servizio Archiviazione BLOB di Azure
Gestione dei backup
Nell'elenco seguente sono inclusi i consigli generali sulla gestione dei backup:
Per evitare la sovrascrittura accidentale dei BLOB, è consigliabile l'utilizzo di un nome file univoco per ogni backup.
Quando si crea un contenitore, è consigliabile impostare il livello di accesso su privato, in modo che solo gli utenti o account che possono fornire le informazioni di autenticazione richieste possano leggere o scrivere i BLOB nel contenitore.
Per i database di SQL Server in un'istanza di SQL Server in esecuzione in una macchina virtuale di Azure, utilizzare un account di archiviazione nella stessa area della macchina virtuale per evitare i costi di trasferimento dei dati tra le aree. L'utilizzo della stessa area garantisce anche prestazioni ottimali per le operazioni di backup e ripristino.
Un'attività di backup non completata correttamente può generare un file di backup non valido. Sono consigliate l'identificazione periodica dei backup non completati e l'eliminazione dei file BLOB. Per altre informazioni, vedere Eliminazione dei file BLOB di backup con lease attivi
L'utilizzo dell'opzione
WITH COMPRESSION
durante il backup consente di ridurre i costi di archiviazione e quelli delle transazioni di archiviazione. Inoltre, tramite questa opzione è possibile diminuire il tempo necessario per completare il processo di backup.
Gestione di file di grandi dimensioni
L'operazione di backup di SQL Server usa più thread per ottimizzare il trasferimento dei dati nei servizi di archiviazione BLOB di Azure. Le prestazioni, tuttavia, dipendono da vari fattori, ad esempio la larghezza di banda del fornitore di software indipendente e le dimensioni del database. Se si intende eseguire il backup di database o filegroup di grandi dimensioni da un database di SQL Server locale, si consiglia di eseguire innanzitutto alcuni test della velocità effettiva. Il contratto di servizio di archiviazione di Azure ha tempi di elaborazione massimi per i BLOB che è possibile prendere in considerazione.
L'uso dell'opzione
WITH COMPRESSION
come consigliato nella sezione Gestione dei backup è molto importante quando si esegue il backup di file di grandi dimensioni.
Risoluzione dei problemi di backup nell'URL e di ripristino dallo stesso
Di seguito sono elencate alcune modalità rapide per la risoluzione di errori durante l'esecuzione del backup nel servizio di archiviazione BLOB di Azure o del ripristino dallo stesso.
Per evitare errori dovuti a opzioni o limitazioni non supportate, esaminare l'elenco delle limitazioni e il supporto per le informazioni sui comandi BACKUP e RESTORE nell'articolo Backup e ripristino di SQL Server con Archiviazione BLOB di Azure Servizio.
Errori di autenticazione:
WITH CREDENTIAL è una nuova opzione e necessaria per eseguire il backup o il ripristino dal servizio di archiviazione BLOB di Azure. Di seguito sono riportati i possibili errori correlati alle credenziali:
Le credenziali specificate nel comando
BACKUP
oRESTORE
non esistono. Per evitare questo problema, è possibile includere istruzioni T-SQL per creare le credenziali qualora non siano presenti nell'istruzione di backup. Di seguito è riportato un esempio pratico:IF NOT EXISTS (SELECT * FROM sys.credentials WHERE credential_identity = 'mycredential') CREATE CREDENTIAL <credential name> WITH IDENTITY = 'mystorageaccount' ,SECRET = '<storage access key> ;
Le credenziali esistono, ma all'account di accesso utilizzato per eseguire il comando di backup non sono associate autorizzazioni per accedere alle credenziali. Usare un account di accesso nel ruolo db_backupoperator con autorizzazioni Modifica qualsiasi credenziale .
Verificare il nome dell'account di archiviazione e i valori di chiave. Le informazioni archiviate nelle credenziali devono corrispondere ai valori delle proprietà dell'account di archiviazione di Azure usati nelle operazioni di backup e ripristino.
Errori di backup:
L'esecuzione di backup paralleli nello stesso BLOB comporta il mancato completamento di uno dei backup con conseguente errore Inizializzazione non riuscita .
Utilizzare i log degli errori seguenti per facilitare la risoluzione degli errori di backup:
Impostare il flag di traccia 3051 per abilitare la registrazione in un log degli errori specifico con il formato seguente in:
BackupToUrl-instname-dbname-action-PID<>><><.log Where <action> is one of:
DB
FILELISTONLY
LABELONLY
HEADERONLY
VERIFYONLY
È anche possibile trovare informazioni esaminando il registro eventi di Windows - In Registri applicazioni con il nome "SQLBackupToUrl".
Quando si esegue il ripristino da un backup compresso, è possibile che venga visualizzato l'errore seguente:
Si è verificata un'eccezione SqlException 3284. Gravità: 16, Stato: 5
Il segno di file di messaggio nel dispositivo 'https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_0.bak' non è allineato. Eseguire nuovamente l'istruzione RESTORE con le stesse dimensioni del blocco utilizzate per creare il set di backup: '65536' potrebbe essere un possibile valore.Per risolvere il problema, eseguire nuovamente l'istruzione
BACKUP
con il valoreBLOCKSIZE = 65536
specificato.
Errore durante il backup a causa di BLOB con lease attivi: l'attività di backup non completata può generare BLOB con lease attivi.
Se si tenta di nuovo un'istruzione di backup, quest'ultimo potrebbe non essere completato e potrebbe essere visualizzato un errore simile al seguente:
Il backup all'URL ha ricevuto un'eccezione dall'endpoint remoto. Messaggio di eccezione: il server remoto ha restituito un errore: (412) Esiste attualmente un lease nel BLOB e nella richiesta non è stato specificato alcun ID lease.
Se un'istruzione RESTORE viene tentata in un file BLOB di backup con un lease attivo, l'operazione di ripristino non viene completata e viene visualizzato un errore simile al seguente:
Messaggio eccezione: Il server remoto ha restituito un errore: (409) Conflitto.
Quando si verifica un errore di questo tipo, i file BLOB devono essere eliminati. Per altre informazioni su questo scenario e su come risolvere il problema, vedere Eliminazione dei file BLOB di backup con lease attivi
Errori del proxy
Se si utilizzano server proxy per accedere a Internet, è possibile che si verifichino i problemi indicati di seguito:
Limitazione della connessione da parte dei server proxy
Nei server proxy possono essere presenti impostazioni che limitano il numero di connessioni al minuto. Il backup su URL è un processo multithread e pertanto può superare il limite. In questo caso, il server proxy termina la connessione. Per risolvere il problema, modificare le impostazioni del proxy in modo che non venga utilizzato in SQL Server. Di seguito sono riportati alcuni esempi di tipi o messaggi di errore visualizzati nel log degli errori:
Scrivere su "http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak" failed: il backup nell'URL ha ricevuto un'eccezione dall'endpoint remoto. Messaggio di eccezione: Impossibile leggere dati dalla connessione del trasporto. La connessione è stata chiusa.
Si è verificato un errore di I/O non irreversibile nel file "http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak:" Impossibile raccogliere l'errore dall'endpoint remoto.
Messaggio 3013, livello 16, stato 1, riga 2
Interruzione anomala di BACKUP DATABASE in corso.
BackupIoRequest::ReportIoError: errore di scrittura nel dispositivo di backup 'http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak'. Errore del sistema operativo: Il backup nell'URL ha ricevuto un'eccezione dall'endpoint remoto. Messaggio di eccezione: Impossibile leggere dati dalla connessione del trasporto. La connessione è stata chiusa.
Se si abilita la registrazione dettagliata mediante il flag di traccia 3051, è inoltre possibile che nei log venga visualizzato il messaggio seguente:
Codice di stato HTTP 502, errore del proxy del messaggio di stato HTTP ( Il numero di richieste HTTP al minuto ha superato il limite configurato. Contattare l'amministratore del server ISA. )
Impostazioni proxy predefinite non rilevate:
A volte le impostazioni predefinite non vengono prelevate causando errori di autenticazione proxy, ad esempio quello illustrato di seguito: Si è verificato un errore di I/O non irreversibile nel file "http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak:" Il backup nell'URL ha ricevuto un'eccezione dall'endpoint remoto. Messaggio eccezione: il server remoto ha restituito un errore: (407) Autenticazione proxy obbligatoria.
Per risolvere il problema, creare un file di configurazione che consenta al processo di backup su URL di utilizzare le impostazioni predefinite del proxy effettuando i passaggi indicati di seguito.
Creare un file di configurazione denominato BackuptoURL.exe.config con il seguente codice XML:
<?xml version ="1.0"?> <configuration> <system.net> <defaultProxy enabled="true" useDefaultCredentials="true"> <proxy usesystemdefault="true" /> </defaultProxy> </system.net> </configuration>
Inserire il file di configurazione nella cartella Binn dell'istanza di SQL Server. Ad esempio, se SQL Server è installato nell'unità C del computer, posizionare il file di configurazione qui: C:\Programmi\Microsoft SQL Server\MSSQL12.<InstanceName>\MSSQL\Binn.
Risoluzione dei problemi relativi al backup gestito di SQL Server in Azure
Poiché Backup gestito di SQL Server è compilato in Backup nell'URL, i suggerimenti per la risoluzione di problemi descritti nelle sezioni precedenti vengono applicati ai database o alle istanze tramite Backup gestito di SQL Server. Le informazioni sulla risoluzione dei problemi relativi al backup gestito di SQL Server in Azure sono descritte in dettaglio in Risoluzione dei problemi relativi al backup gestito di SQL Server in Azure.