Procedure consigliate relative al backup e al ripristino (servizio di archiviazione BLOB di Windows Azure)
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 Windows Azure.
Per ulteriori informazioni sull'utilizzo del servizio di archiviazione BLOB di Windows Azure per le operazioni di backup e ripristino di SQL Server, vedere:
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 BLOB di Windows Azure, è 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 in un'istanza di SQL Server in esecuzione in una macchina virtuale di Windows Azure, utilizzare un account di archiviazione nella stessa regione della macchina virtuale per evitare i costi di trasferimento dei dati tra le regioni. 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 ulteriori 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
Nell'operazione di backup di SQL Server vengono utilizzati più thread per ottimizzare il trasferimento dei dati ai servizi di archiviazione BLOB di Windows 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. I contratti di servizio della risorsa di archiviazione Windows Azure presentano tempi di elaborazione massimi per i BLOB che è possibile prendere in considerazione.
L'utilizzo dell'opzione WITH COMPRESSION come consigliato nella sezione Gestione dei backup è molto importante quando si esegue il backup di file di grandi dimensioni.
Ottimizzazione dei ripristini
Per ridurre il tempo di scrittura di un'operazione di ripristino, aggiungere il diritto utente Esecuzione attività di manutenzione volume all'account utente di SQL Server. Per ulteriori informazioni, vedere Inizializzazione di file di database
Considerazioni sulle prestazioni
Le prestazioni di backup e ripristino possono variare a seconda della larghezza di banda di rete, delle dimensioni del database e del percorso del servizio di archiviazione Windows Azure relativo al percorso locale. Per valutare le prestazioni di backup e ripristino per l'ambiente, è consigliabile verificare le operazioni di backup e ripristino e misurare la velocità effettiva e le prestazioni. È consigliabile considerare gli elementi seguenti durante il backup nel servizio di archiviazione BLOB di Windows Azure:
I tempi di backup e ripristino sono proporzionali alla larghezza di banda di rete.
La larghezza di banda di rete minima di backup è 1 MB al secondo. È possibile che l'operazione di backup venga interrotta con errori di timeout, se la larghezza di banda è inferiore a 1 MB al secondo.
Il tempo di ripristino è inoltre proporzionale alla latenza di rete, in particolare se si tenta di ripristinare un file da una regione di Windows Azure geograficamente diversa dall'istanza di SQL Server in cui si tenta di eseguire il ripristino. In questi casi, la verifica diventa un aspetto molto importante per assicurarsi che sia possibile soddisfare i requisiti RTO.
Risoluzione dei problemi di backup nel servizio di archiviazione BLOB di Windows Azure o 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 Windows Azure o del ripristino dallo stesso.
Per evitare errori a causa di opzioni o limitazioni non supportate, esaminare l'elenco delle limitazioni e le informazioni sul supporto dei comandi BACKUP e RESTORE nell'articolo Backup e ripristino di SQL Server con il servizio di archiviazione BLOB di Windows Azure.
Errori di autenticazione:
WITH CREDENTIAL è una nuova opzione ed è necessaria per le operazioni di backup nel servizio di archiviazione BLOB di Windows Azure e di ripristino dallo stesso. Di seguito sono riportati i possibili errori correlati alle credenziali:
Le credenziali specificate nel comando RESTORE o BACKUP 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. Utilizzare un account di accesso nel ruolo db_backupoperator con le autorizzazioni Alter any credential.
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 Windows Azure utilizzati 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-<nomeist>-<nomedb>-azione-<PID>.log dove <azione> è uno degli elementi seguenti:
DB
FILELISTONLY
LABELONLY
HEADERONLY
VERIFYONLY
Inoltre, è possibile trovare informazioni esaminando i registri denominati "SQLBackupToUrl" presenti in Registro eventi di Windows - Applicazione.
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 nell'URL ha ricevuto un'eccezione dall'endpoint remoto. Messaggio eccezione: Il server remoto ha restituito un errore: (412) Attualmente esiste un lease nel BLOB ma 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 ulteriori 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:
Impossibile scrivere su "http://storageaccount.blob.core.windows. net/container/BackupAzurefile.bak": Il backup su URL ha ricevuto un'eccezione dall'endpoint remoto. Messaggio di eccezione: Impossibile leggere dati dalla connessione del trasporto. La connessione è stata chiusa.
Errore di I/O irreversibile nel file "http://storageaccount.blob.core.windows. net/container/BackupAzurefile.bak": Impossibile recuperare 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. Messaggio di stato HTTP: errore del proxy (Il numero di richieste HTTP al minuto supera il limite configurato. Contattare l'amministratore di ISA Server). )
Impostazioni proxy predefinite non rilevate:
Talvolta le impostazioni predefinite non vengono rilevate, causando errori di autenticazione del proxy come quello indicato di seguito:Errore di I/O irreversibile nel file "http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak": Impossibile recuperare l'errore dall'endpoint remoto. Messaggio di eccezione: Errore del server remoto: (407) Richiesta autenticazione proxy.
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 viene installato nell'unità C del computer, inserire il file di configurazione in: C:\Programmi\Microsoft SQL Server\MSSQL11.<NomeIstanza>\MSSQL\Binn.