Práticas recomendadas e solução de problemas de backup do SQL Server para URLSQL Server Backup to URL Best Practices and Troubleshooting

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure (somente a Instância Gerenciada) nãoSQL Data Warehouse do Azure nãoParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure SQL Data Warehouse noParallel Data Warehouse

Este tópico inclui práticas recomendadas e dicas de solução de problemas para backup e restaurações do SQL Server no serviço de Blob do Windows Azure.This topic includes best practices and troubleshooting tips for SQL Server backup and restores to the Windows Azure Blob service.

Para obter mais informações sobre como usar o serviço de armazenamento de Blob do Windows Azure para operações de backup ou restauração do SQL Server, consulte:For more information about using Windows Azure Blob storage service for SQL Server backup or restore operations, see:

Gerenciando backupsManaging Backups

A lista a seguir inclui recomendações gerais para gerenciar backups:The following list includes general recommendations to manage backups:

  • O nome de arquivo exclusivo para cada backup é recomendável para evitar a substituição acidental dos blobs.Unique file name for every backup is recommended to prevent accidentally overwriting the blobs.

  • Ao criar um contêiner, é recomendável definir o nível de acesso para privado, de forma que apenas os usuários ou as contas que podem fornecer as informações sobre autenticação necessárias possam ler ou gravar os blobs no contêiner.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.

  • Para os bancos de dados SQL ServerSQL Server em uma instância do SQL ServerSQL Server em execução em uma Máquina Virtual do Microsoft Azure, use uma conta de armazenamento na mesma região que a máquina virtual para evitar custos com transferência de dados entre regiões.For SQL ServerSQL Server databases on an instance of SQL ServerSQL 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. O uso da mesma região também assegura o desempenho ideal para operações de backup e restauração.Using the same region also ensures optimal performance for backup and restore operations.

  • A atividade de backup com falha pode resultar em um arquivo de backup inválido.Failed backup activity can result in an invalid backup file. Recomendamos a identificação periódica de backup com falha e exclusão dos arquivos de blob.We recommend periodic identification of failed backups and deleting the blob files. Para obter mais informações, consulte Deleting Backup Blob Files with Active Leases.For more information, see Deleting Backup Blob Files with Active Leases

  • O uso da opção WITH COMPRESSION durante o backup pode minimizar os custos com armazenamento e transações de armazenamento.Using the WITH COMPRESSION option during backup can minimize your storage costs and storage transaction costs. Ele também pode diminuir o tempo necessário para concluir o processo de backup.It can also decrease the time taken to complete the backup process.

  • Defina os argumentos MAXTRANSFERSIZE e BLOCKSIZE como recomendado em Backup do SQL Server em URL.Set MAXTRANSFERSIZE and BLOCKSIZE arguments as reccomended at SQL Server Backup to URL.

Tratando arquivos grandesHandling Large Files

  • A operação de backup do SQL ServerSQL Server usa vários threads para otimizar a transferência de dados para os serviços de armazenamento de Blob do Windows Azure.The SQL ServerSQL Server backup operation uses multiple threads to optimize data transfer to Windows Azure Blob storage services. No entanto, o desempenho depende de vários fatores, como largura de banda do ISV e tamanho do banco de dados.However the performance depends on various factors, such as ISV bandwidth and size of the database. Se você pretende fazer backup de bancos de dados ou grupos de arquivos grandes em um banco de dados do SQL Server no local, é recomendável que você teste a taxa de transferência primeiro.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. O SLA para armazenamento do Azure tem tempos de processamento máximos para blobs que você pode levar em consideração.Azure SLA for Storage has maximum processing times for blobs that you can take into consideration.

  • O uso da opção WITH COMPRESSION, como recomendado na seção Gerenciando o backup, é muito importante ao fazer backup de arquivos grandes.Using the WITH COMPRESSION option as recommended in the Managing Backup section, it is very important when backing up large files.

Solução de problemas de backup para ou restauração de URLTroubleshooting Backup To or Restore from URL

Estas são algumas maneiras rápidas de solucionar problemas de erros ao fazer backup ou restauração do serviço de armazenamento de Blob do Windows Azure.Following are some quick ways to troubleshoot errors when backing up to or restoring from the Windows Azure Blob storage service.

Para evitar erros devido às opções sem suporte ou às limitações, examine a lista de limitações e as informações de suporte aos comandos BACKUP e RESTORE no artigo Backup e restauração do SQL Server com o Serviço de Armazenamento de Blobs do 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.

Erros de autenticação:Authentication Errors:

  • A WITH CREDENTIAL é uma opção nova e necessária para fazer backup ou restauração no serviço de Armazenamento de Blobs do Microsoft Azure.The WITH CREDENTIAL is a new option and required to back up to or restore from the Windows Azure Blob storage service. As falhas relacionadas à credencial podem ser as seguintes:Failures related to credential could be the following:

    A credencial especificada no comando BACKUP ou RESTORE não existe.The credential specified in the BACKUP or RESTORE command does not exist. Para evitar esse problema, inclua instruções T-SQL para criar a credencial caso não exista nenhuma na instrução de backup.To avoid this issue, you can include T-SQL statements to create the credential if one does not exist in the backup statement. Este é um exemplo que você pode usar: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> ;  
    
  • A credencial existem, mas a conta de logon usada para executar o comando de backup não tem permissões para acessar as credenciais.The credential exists but the login account that is used to run the backup command does not have permissions to access the credentials. Use uma conta de logon na função db_backupoperator com permissões Alterar qualquer credencial .Use a login account in the db_backupoperator role with Alter any credential permissions.

  • Verifique o nome da conta de armazenamento e os valores de chave.Verify the storage account name and key values. As informações armazenadas na credencial devem corresponder aos valores de propriedade da conta de armazenamento do Windows Azure que você está usando nas operações de backup e restauração.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.

Erros/falhas de backup:Backup Errors/Failures:

  • Os backups paralelos no mesmo Blob ocasionam a falha de um dos backups com o erro Falha na inicialização .Parallel backups to the same blob cause one of the backups to fail with an Initialization failed error.

  • Use os seguintes logs de erro para facilitar a solução de problemas de backup:Use the following error logs to help with troubleshooting backup errors:

    • Defina o sinalizador de rastreamento 3051 para ativar o registro em um log de erros específico com o seguinte formato:Set trace flag 3051 to turn on logging to a specific error log with the following format in:

      BackupToUrl-\<instname>-\<dbname>-action-\<PID>.log, em que \<action> é um dos seguintes:BackupToUrl-\<instname>-\<dbname>-action-\<PID>.log Where \<action> is one of the following:

      • DBDB
      • FILELISTONLYFILELISTONLY
      • LABELONLYLABELONLY
      • HEADERONLYHEADERONLY
      • VERIFYONLYVERIFYONLY
    • Você também pode encontrar informações analisando o Log de Eventos do Windows nos logs de aplicativo com o nome SQLBackupToUrl.You can also find information by reviewing the Windows Event Log - Under Application logs with the name SQLBackupToUrl.

    • Considere COMPRESSION, MAXTRANSFERSIZE, BLOCKSIZE e vários argumentos de URL ao fazer backup de bancos de dados grandes.Consider COMPRESSION, MAXTRANSFERSIZE, BLOCKSIZE and multiple URL arguments when backing up large databases. Consulte Fazendo backup de um VLDB para o Armazenamento de Blobs do AzureSee Backing up a VLDB to Azure Blob Storage

      Msg 3202, Level 16, State 1, Line 1
      Write on "https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_0.bak" failed: 1117(The request could not be performed because of an I/O device error.)
      Msg 3013, Level 16, State 1, Line 1
      BACKUP DATABASE is terminating abnormally.
      
      BACKUP DATABASE TestDb
      TO URL = 'https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_0.bak',
      URL = 'https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_1.bak',
      URL = 'https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_2.bak'
      WITH COMPRESSION, MAXTRANSFERSIZE = 4194304, BLOCKSIZE = 65536;  
      
  • Ao fazer a restauração em um backup compactado, você verá o seguinte erro: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' is not aligned. Reissue the Restore statement with the same block size used to create the backupset: '65536' looks like a possible value.

      Para corrigir esse erro, emita novamente a instrução RESTORE com BLOCKSIZE = 65536 especificado.To solve this error, reissue the RESTORE statement with BLOCKSIZE = 65536 specified.

  • Erro durante o backup devido a blobs que têm concessão ativa: A atividade de backup com falha pode resultar em blobs com concessões ativas.Error during backup due to blobs that have active lease on them: Failed backup activity can result in blobs with active leases.

    Se houver uma nova tentativa de uso de uma instrução de backup, a operação de backup pode falhar com um erro semelhante ao seguinte:If a backup statement is reattempted, backup operation might fail with an error similar to the following:

    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 for feita uma nova tentativa de uso de uma instrução de restauração em um arquivo de blob de backup que tenha uma concessão ativa, a operação de restauração falhará com um erro semelhante a: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:

    Exception Message: The remote server returned an error: (409) Conflict..

    Quando esse erro ocorre, os arquivos de blob precisam ser excluídos.When such error occurs, the blob files need to be deleted. Para obter mais informações sobre esse cenário e como corrigir o problema, consulte Deleting Backup Blob Files with Active LeasesFor more information on this scenario and how to correct this problem, see Deleting Backup Blob Files with Active Leases

Erros de proxyProxy Errors

Se você estiver usando servidores proxy para acessar a Internet, poderá ver os seguintes problemas:If you are using Proxy Servers to access the internet, you may see the following issues:

Conexão limitada por servidores proxy:Connection throttling by Proxy Servers:

Os servidores proxy podem ter configurações que limitam o número de conexões por minuto.Proxy Servers can have settings that limit the number of connections per minute. O processo de Backup para URL é multi-threaded e, portanto, pode ir além desse limite.The Backup to URL process is a multi-threaded process and hence can go over this limit. Se isso acontecer, o servidor proxy elimina a conexão.If this happens, the proxy server kills the connection. Para resolver esse problema, altere as configurações de proxy para que o SQL Server não use o proxy.To resolve this issue, change the proxy settings so SQL Server is not using the proxy. A seguir estão alguns exemplos dos tipos ou mensagens de erro que você pode ver no log de erros:Following are some examples of the types or error messages you may see in the error log:

Write on "https://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak" failed: Backup to URL received an exception from the remote endpoint. Exception Message: Unable to read data from the transport connection: The connection was closed.
A nonrecoverable I/O error occurred on file "https://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak:" Error could not be gathered from Remote Endpoint.  
  
Msg 3013, Level 16, State 1, Line 2  
  
BACKUP DATABASE is terminating abnormally.  
BackupIoRequest::ReportIoError: write failure on backup device https://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak'. Operating system error Backup to URL received an exception from the remote endpoint. Exception Message: Unable to read data from the transport connection: The connection was closed.

Se você ativar o log detalhado usando o sinalizador de rastreamento 3051, também poderá ver a seguinte mensagem nos logs:If you turn on the verbose logging using the trace flag 3051 you may also see the following message in the logs:

HTTP status code 502, HTTP Status Message Proxy Error (The number of HTTP requests per minute exceeded the configured limit. Contact your ISA Server administrator.)

Configurações de proxy padrão não escolhidas:Default Proxy Settings not picked up:

Às vezes, as configurações padrão não são escolhidas, causando erros de autenticação de proxy, como mostrado abaixo: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 "https://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.

Para resolver esse problema, crie um arquivo de configuração que permite que o processo de Backup para URL use as configurações de proxy padrão usando as seguintes etapas: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. Crie um arquivo de configuração chamado BackuptoURL.exe.config com o seguinte conteúdo XML:Create a configuration file named BackuptoURL.exe.config with the following xml content:

    <?xml version ="1.0"?>  
    <configuration>   
                    <system.net>   
                                    <defaultProxy enabled="true" useDefaultCredentials="true">   
                                                    <proxy usesystemdefault="true" />   
                                    </defaultProxy>   
                    </system.net>  
    </configuration>  
    
  2. Coloque o arquivo de configuração na pasta Binn da instância do SQL ServerSQL Server.Place the configuration file in the Binn folder of the SQL ServerSQL Server Instance. Por exemplo, se o SQL ServerSQL Server estiver instalado na unidade C do computador, coloque o arquivo de configuração em C:\Program Files\Microsoft SQL Server\MSSQL13.\<InstanceName>\MSSQL\Binn.For example, if my SQL ServerSQL Server is installed on the C drive of the machine, place the configuration file in C:\Program Files\Microsoft SQL Server\MSSQL13.\<InstanceName>\MSSQL\Binn.

Consulte TambémSee Also

Restaurando de backups armazenados no Microsoft AzureRestoring From Backups Stored in Microsoft Azure
BACKUP (Transact-SQL)BACKUP (Transact-SQL)
RESTORE (Transact-SQL)RESTORE (Transact-SQL)