Práticas recomendadas e solução de problemas de backup do SQL Server para URL

Este tópico inclui melhores práticas e dicas de solução de problemas para backup e restaurações do SQL Server no serviço de Blobs do Azure.

Para obter mais informações sobre como usar o serviço de Armazenamento de Blobs do Azure para operações de backup ou restauração do SQL Server, confira:

Gerenciando backups

A lista a seguir inclui recomendações gerais para gerenciar backups:

  • O nome de arquivo exclusivo para cada backup é recomendável para evitar a substituição acidental dos 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.

  • Para os bancos de dados SQL Server em uma instância do SQL Server em execução em uma máquina virtual do 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. O uso da mesma região também assegura o desempenho ideal para operações de backup e restauração.

  • A atividade de backup com falha pode resultar em um arquivo de backup inválido. Recomendamos a identificação periódica de backup com falha e exclusão dos arquivos de blob. Para obter mais informações, consulte 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. Ele também pode diminuir o tempo necessário para concluir o processo de backup.

Tratando arquivos grandes

  • A operação de backup do SQL Server usa vários threads a fim de otimizar a transferência de dados para os serviços de Armazenamento de Blobs do Azure. No entanto, o desempenho depende de vários fatores, como largura de banda do ISV e tamanho do banco de dados. 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. Os SLA do Armazenamento do Azure têm tempos máximos de processamento para blobs que você pode levar em consideração.

  • O uso da opção WITH COMPRESSION, como recomendado na seção Gerenciando o backup, é muito importante ao fazer backup de arquivos grandes.

Solução de problemas de backup para ou restauração de URL

Veja a seguir algumas maneiras rápidas de solucionar problemas de erros ao fazer backup ou restauração do serviço de Armazenamento de Blobs do Azure.

Para evitar erros devido a opções ou limitações sem suporte, examine a lista de limitações e o suporte para informações de comandos BACKUP e RESTORE no artigo Backup e Restauração do SQL Server com Armazenamento de Blobs do Azure Service.

Erros de autenticação:

  • WITH CREDENTIAL é uma nova opção e é necessária para fazer backup ou restauração do serviço de Armazenamento de Blobs do Azure. As falhas relacionadas à credencial podem ser as seguintes:

    A credencial especificada no comando BACKUP ou RESTORE não existe. Para evitar esse problema, inclua instruções T-SQL para criar a credencial caso não exista nenhuma na instrução de backup. Este é um exemplo que você pode usar:

    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. Use uma conta de logon na função db_backupoperator com permissões Alterar qualquer credencial .

  • Verifique o nome da conta de armazenamento e os valores de chave. As informações armazenadas na credencial devem corresponder aos valores de propriedade da conta de armazenamento do Azure que você está usando nas operações de backup e restauração.

Erros/falhas de backup:

  • Os backups paralelos no mesmo Blob ocasionam a falha de um dos backups com o erro Falha na inicialização .

  • Use os seguintes logs de erro para facilitar a solução de problemas de backup:

    • Defina o sinalizador de rastreamento 3051 para ativar o registro em um log de erros específico com o seguinte formato:

      BackupToUrl-instname-dbname-action-PID.log<<>>>< Onde <a ação> é uma das seguintes:

      • DB

      • FILELISTONLY

      • LABELONLY

      • HEADERONLY

      • VERIFYONLY

    • Você também pode encontrar informações examinando o Log de Eventos do Windows – Em Logs de aplicativo com o nome 'SQLBackupToUrl'.

  • Ao fazer a restauração em um backup compactado, você verá o seguinte erro:

    • SqlException 3284. Severidade: 16 Estado: 5
      A marca de arquivo de mensagem no dispositivo 'https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_0.bak' não está alinhada. Emita novamente a instrução Restore com o mesmo tamanho de bloco usado para criar o conjunto de backup: '65536' parece um valor possível.

      Para corrigir esse erro, emita novamente a instrução BACKUP com BLOCKSIZE = 65536 especificada.

  • 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.

    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:

    O backup para a URL recebeu uma exceção do ponto de extremidade remoto. Mensagem de exceção: o servidor remoto retornou um erro: (412) No momento, há uma concessão no blob e nenhuma ID de concessão foi especificada na solicitação.

    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:

    Mensagem de exceção: O servidor remoto retornou um erro: (409) Conflito.

    Quando esse erro ocorre, os arquivos de blob precisam ser excluídos. Para obter mais informações sobre esse cenário e como corrigir o problema, consulte Deleting Backup Blob Files with Active Leases

Erros de proxy

Se você estiver usando servidores proxy para acessar a Internet, poderá ver os seguintes problemas:

Conexão limitada por servidores proxy:

Os servidores proxy podem ter configurações que limitam o número de conexões por minuto. O processo de Backup para URL é multi-threaded e, portanto, pode ir além desse limite. Se isso acontecer, o servidor proxy elimina a conexão. Para resolver esse problema, altere as configurações de proxy para que o SQL Server não use o proxy. A seguir estão alguns exemplos dos tipos ou mensagens de erro que você pode ver no log de erros:

  • Escreva em "http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak" falha: o backup para URL recebeu uma exceção do ponto de extremidade remoto. Mensagem de exceção: não é possível ler dados da conexão de transporte: a conexão foi fechada.

  • Ocorreu um erro de E/S não recuperável no arquivo "http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak:" Não foi possível coletar o erro do ponto de extremidade remoto.

    Msg 3013, Nível 16, Estado 1, Linha 2

    BACKUP DATABASE está sendo encerrado de forma anormal.

  • BackupIoRequest::ReportIoError: falha de gravação no dispositivo de backup 'http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak'. Erro de sistema operacional: a opção Backup para URL recebeu uma exceção do ponto de extremidade remoto. Mensagem de exceção: não é possível ler dados da conexão de transporte: a conexão foi fechada.

Se você ativar o log detalhado usando o sinalizador de rastreamento 3051, também poderá ver a seguinte mensagem nos logs:

HTTP status código 502, Erro de Proxy de Mensagem de Status HTTP ( O número de solicitações HTTP por minuto excedeu o limite configurado. Contate o administrador do servidor ISA. )

Configurações de proxy padrão não escolhidas:

Às vezes, as configurações padrão não são selecionadas causando erros de autenticação de proxy, como o mostrado abaixo: Ocorreu um erro de E/S não recuperável no arquivo "http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak:" O backup para URL recebeu uma exceção do ponto de extremidade remoto. Mensagem de exceção: o servidor remoto retornou um erro: (407)Autenticação de Proxy Necessária.

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:

  1. Crie um arquivo de configuração chamado BackuptoURL.exe.config com o seguinte xml:

    <?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 Server. Por exemplo, se meu SQL Server estiver instalado na unidade C do computador, coloque o arquivo de configuração aqui: C:\Arquivos de Programas\Microsoft SQL Server\MSSQL12.<InstanceName>\MSSQL\Binn.

Solucionar problemas de backup gerenciado do SQL Server para Azure

Como o backup gerenciado do SQL Server é criado com base no Backup para URL, as dicas de solução de problemas descritas nas seções anteriores aplicam-se a bancos de dados ou instâncias que usam o Backup Gerenciado do SQL Server. Informações sobre como solucionar problemas SQL Server Backup Gerenciado no Azure são descritas em detalhes em Solução de problemas SQL Server Backup Gerenciado no Azure.

Consulte Também

Restaurar de backups armazenados no Azure