Procedure consigliate e risoluzione dei problemi per il backup di SQL Server nell'URLSQL Server Backup to URL Best Practices and Troubleshooting

In questo argomento si applica a: SìSQL ServernonDatabase SQL di AzurenonAzure SQL Data Warehouse non Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

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.This topic includes best practices and troubleshooting tips for SQL Server backup and restores to the Windows Azure Blob service.

Per ulteriori informazioni sull'utilizzo del servizio di archiviazione BLOB di Windows Azure per le operazioni di backup e ripristino di SQL Server, vedere:For more information about using Windows Azure Blob storage service for SQL Server backup or restore operations, see:

Gestione dei backupManaging Backups

Nell'elenco seguente sono inclusi i consigli generali sulla gestione dei backup:The following list includes general recommendations to manage backups:

  • Per evitare la sovrascrittura accidentale dei BLOB, è consigliabile l'utilizzo di un nome file univoco per ogni backup.Unique file name for every backup is recommended to prevent accidentally overwriting the blobs.

  • 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.When creating a container, it is recommended that you set the access level to private, so only users or accounts that can provide the required authentication information can read or write the blobs in the container.

  • Per i database di SQL Server in un'istanza di SQL Server in esecuzione in una macchina virtuale di Windows Azure, utilizzare un account di archiviazione nella stessa area della macchina virtuale per evitare i costi di trasferimento dei dati tra le aree.For SQL Server databases on an instance of SQL Server running in a Windows Azure Virtual Machine, use a storage account in the same region as the virtual machine to avoid data transfer costs between regions. L'utilizzo della stessa area garantisce anche prestazioni ottimali per le operazioni di backup e ripristino.Using the same region also ensures optimal performance for backup and restore operations.

  • Un'attività di backup non completata correttamente può generare un file di backup non valido.Failed backup activity can result in an invalid backup file. Sono consigliate l'identificazione periodica dei backup non completati e l'eliminazione dei file BLOB.We recommend periodic identification of failed backups and deleting the blob files. Per altre informazioni, vedere Eliminazione dei file BLOB di backup con lease attiviFor more information, see Deleting Backup Blob Files with Active Leases

  • L'utilizzo dell'opzione WITH COMPRESSION durante il backup consente di ridurre i costi di archiviazione e quelli delle transazioni di archiviazione.Using the WITH COMPRESSION option during backup can minimize your storage costs and storage transaction costs. Inoltre, tramite questa opzione è possibile diminuire il tempo necessario per completare il processo di backup.It can also decrease the time taken to complete the backup process.

Gestione di file di grandi dimensioniHandling Large Files

  • Nell'operazione di backup di SQL ServerSQL Server vengono utilizzati più thread per ottimizzare il trasferimento dei dati ai servizi di archiviazione BLOB di Windows Azure.The SQL ServerSQL Server backup operation uses multiple threads to optimize data transfer to Windows Azure Blob storage services. Le prestazioni, tuttavia, dipendono da vari fattori, ad esempio la larghezza di banda del fornitore di software indipendente e le dimensioni del database.However the performance depends on various factors, such as ISV bandwidth and size of the 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.If you plan to back up large databases or filegroups from an on-premise SQL Server database, it is recommended that you do some throughput testing first. I contratti di servizio della risorsa di archiviazione di Azure presentano tempi di elaborazione massimi per i BLOB che è possibile prendere in considerazione.Azure SLA for Storage has maximum processing times for blobs that you can take into consideration.

  • 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.Using the WITH COMPRESSION option as recommended in the Managing Backup section, it is very important when backing up large files.

Risoluzione dei problemi di backup nell'URL e di ripristino dallo stessoTroubleshooting Backup To or Restore from URL

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.Following are some quick ways to troubleshoot errors when backing up to or restoring from the Windows Azure Blob storage service.

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 Microsoft Azure .To avoid errors due to unsupported options or limitations, review the list of limitations, and support for BACKUP and RESTORE commands information in the SQL Server Backup and Restore with Microsoft Azure Blob Storage Service article.

Errori di autenticazione:Authentication Errors:

  • 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.WITH CREDENTIAL is a new option and required to back up to or restore from the Windows Azure Blob storage service. Di seguito sono riportati i possibili errori correlati alle credenziali:Failures related to credential could be the following:

    Le credenziali specificate nel comando BACKUP o RESTORE non esistono.The credential specified in the BACKUP or RESTORE command does not exist. Per evitare questo problema, è possibile includere istruzioni T-SQL per creare le credenziali qualora non siano presenti nell'istruzione di backup.To avoid this issue, you can include T-SQL statements to create the credential if one does not exist in the backup statement. Di seguito è riportato un esempio pratico:The following is an example you can use:

    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.The credential exists but the login account that is used to run the backup command does not have permissions to access the credentials. Usare un account di accesso nel ruolo db_backupoperator con autorizzazioni Modifica qualsiasi credenziale .Use a login account in the db_backupoperator role with Alter any credential permissions.

  • Verificare il nome dell'account di archiviazione e i valori di chiave.Verify the storage account name and key values. 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.The information stored in the credential must match the property values of the Windows Azure storage account you are using in the backup and restore operations.

    Errori di backup:Backup Errors/Failures:

  • L'esecuzione di backup paralleli nello stesso BLOB comporta il mancato completamento di uno dei backup con conseguente errore Inizializzazione non riuscita .Parallel backups to the same blob cause one of the backups to fail with an Initialization failed error.

  • Utilizzare i log degli errori seguenti per facilitare la risoluzione degli errori di backup:Use the following error logs to help with troubleshooting backup errors:

    • Impostare il flag di traccia 3051 per abilitare la registrazione in un log degli errori specifico con il formato seguente in:Set trace flag 3051 to turn on logging to a specific error log with the following format in:

      BackupToUrl-<nomeist>-<nomedb>-azione-<PID.log Dove <azione> è uno dei valori seguenti:BackupToUrl-<instname>-<dbname>-action-<PID>.log Where <action> is one of:

      • DBDB

      • FILELISTONLYFILELISTONLY

      • LABELONLYLABELONLY

      • HEADERONLYHEADERONLY

      • VERIFYONLYVERIFYONLY

    • Inoltre, è possibile trovare informazioni esaminando i registri denominati "SQLBackupToUrl" presenti in Registro eventi di Windows - Applicazione.You can also find information by reviewing the Windows Event Log - Under Application logs with the name ‘SQLBackupToUrl’.

  • Quando si esegue il ripristino da un backup compresso, è possibile che venga visualizzato l'errore seguente:When restoring from a compressed backup, you might see the following error:

    • SqlException 3284 occurred. Severity: 16 State: 5
      Message Filemark on device 'https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_0.bak'(Messaggio contrassegno di file nel dispositivo 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.Message Filemark on device 'https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_0.bak' is not aligned. Reissue the Restore statement with the same block size used to create the backupset: '65536' looks like a possible value.

      Per risolvere il problema, eseguire nuovamente l'istruzione BACKUP con il valore BLOCKSIZE = 65536 specificato.To solve this error, reissue the BACKUP statement with BLOCKSIZE = 65536 specified.

  • Errore durante il backup a causa di BLOB con lease attivi: l'attività di backup non completata può generare BLOB con lease attivi.Error during backup due to blobs that have active lease on them: Failed backup activity can result in blobs with active leases.

    Se si tenta di nuovo un'istruzione di backup, quest'ultimo potrebbe non essere completato e potrebbe essere visualizzato un errore simile al seguente:If a backup statement is reattempted, backup operation might fail with an error similar to the following:

    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.Backup to URL received an exception from the remote endpoint. Exception Message: The remote server returned an error: (412) There is currently a lease on the blob and no lease ID was specified in the request.

    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:If a restore statement is attempted on a backup blob file that has an active lease, the restore operation fails with an error similar to the following:

    Messaggio eccezione: Il server remoto ha restituito un errore: (409) Conflitto.Exception Message: The remote server returned an error: (409) Conflict..

    Quando si verifica un errore di questo tipo, i file BLOB devono essere eliminati.When such error occurs, the blob files need to be deleted. Per altre informazioni su questo scenario e su come risolvere il problema, vedere Eliminazione dei file BLOB di backup con lease attiviFor more information on this scenario and how to correct this problem, see Deleting Backup Blob Files with Active Leases

Errori del proxyProxy Errors

Se si utilizzano server proxy per accedere a Internet, è possibile che si verifichino i problemi indicati di seguito:If you are using Proxy Servers to access the internet, you may see the following issues:

Limitazione della connessione da parte dei server proxyConnection throttling by Proxy Servers:

Nei server proxy possono essere presenti impostazioni che limitano il numero di connessioni al minuto.Proxy Servers can have settings that limit the number of connections per minute. Il backup su URL è un processo multithread e pertanto può superare il limite.The Backup to URL process is a multi-threaded process and hence can go over this limit. In questo caso, il server proxy termina la connessione.If this happens, the proxy server kills the connection. Per risolvere il problema, modificare le impostazioni del proxy in modo che non venga utilizzato in SQL Server.To resolve this issue, change the proxy settings so SQL Server is not using the proxy. Di seguito sono riportati alcuni esempi di tipi o messaggi di errore visualizzati nel log degli errori:Following are some examples of the types or error messages you may see in the error log:

  • Impossibile scrivere su "http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak": Il backup su URL ha ricevuto un'eccezione dall'endpoint remoto.Write on "http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak" failed: Backup to URL received an exception from the remote endpoint. Messaggio di eccezione: Impossibile leggere dati dalla connessione del trasporto. La connessione è stata chiusa.Exception Message: Unable to read data from the transport connection: The connection was closed.

  • Si è verificato un errore di I/O irreversibile nel file "http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak:" Impossibile recuperare l'errore dall'endpoint remoto.A nonrecoverable I/O error occurred on file "http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak:" Error could not be gathered from Remote Endpoint.

    Messaggio 3013, livello 16, stato 1, riga 2Msg 3013, Level 16, State 1, Line 2

    Interruzione anomala di BACKUP DATABASE in corso.BACKUP DATABASE is terminating abnormally.

  • BackupIoRequest::ReportIoError: errore di scrittura nel dispositivo di backup "http://storageaccount.blob.core.window.net/container/BackupAzurefile.bak".BackupIoRequest::ReportIoError: write failure on backup device http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak'. Errore del sistema operativo: Il backup nell'URL ha ricevuto un'eccezione dall'endpoint remoto.Operating system error Backup to URL received an exception from the remote endpoint. Messaggio di eccezione: Impossibile leggere dati dalla connessione del trasporto. La connessione è stata chiusa.Exception Message: Unable to read data from the transport connection: The connection was closed.

    Se si abilita la registrazione dettagliata mediante il flag di traccia 3051, è inoltre possibile che nei log venga visualizzato il messaggio seguente:If you turn on the verbose logging using the trace flag 3051 you may also see the following message in the logs:

    Codice di stato HTTP 502. Messaggio di stato HTTP: errore del proxy (Il numero di richieste HTTP al minuto supera il limite configurato.HTTP status code 502, HTTP Status Message Proxy Error ( The number of HTTP requests per minute exceeded the configured limit. Contattare l'amministratore di ISA Server).Contact your ISA Server administrator. ))

    Impostazioni proxy predefinite non rilevate:Default Proxy Settings not picked up:

    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:" Il backup all'URL ha ricevuto un'eccezione dall'endpoint remoto. Messaggio di eccezione: Errore del server remoto: (407) Richiesta autenticazione proxy.Sometimes the default settings are not picked up causing proxy authentication errors such as the one shown below:A nonrecoverable I/O error occurred on file "http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak:" Backup to URL received an exception from the remote endpoint. Exception Message: The remote server returned an error: (407) Proxy Authentication Required.

    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.To resolve this issue, create a configuration file that allows the Backup to URL process to use the default proxy settings using the following steps:

  1. Creare un file di configurazione denominato BackuptoURL.exe.config con il seguente codice XML:Create a configuration file named BackuptoURL.exe.config with the following xml:

    \<?xml version ="1.0"?>  
    <configuration>   
                    \<system.net>   
                                    <defaultProxy enabled="true" useDefaultCredentials="true">   
                                                    <proxy usesystemdefault="true" />   
                                    </defaultProxy>   
                    \</system.net>  
    </configuration>  
    
  2. Inserire il file di configurazione nella cartella Binn dell'istanza di SQL Server.Place the configuration file in the Binn folder of the SQL Server Instance. Ad esempio, se SQL Server viene installato nell'unità C del computer, inserire il file di configurazione in: C:\Programmi\Microsoft SQL Server\MSSQL13.<NomeIstanza\MSSQL\Binn.For example, if my SQL Server is installed on the C drive of the machine, place the configuration file here: C:\Program Files\Microsoft SQL Server\MSSQL13.<InstanceName>\MSSQL\Binn.

Vedere ancheSee Also

Ripristino da backup archiviati in Microsoft AzureRestoring From Backups Stored in Microsoft Azure
BACKUP (Transact-SQL)BACKUP (Transact-SQL)
RESTORE (Transact-SQL)RESTORE (Transact-SQL)