Partilhar via


Práticas recomendadas de backup e restauração (serviço de armazenamento de Blob do Windows Azure)

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.

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:

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

  • Para os bancos de dados de uma instância do SQL Server em execução em uma máquina virtual do Windows 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 Excluindo arquivos de blob de backup com arrendamentos ativos

  • 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 para otimizar a transferência de dados para os serviços de armazenamento de Blob do Windows 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 SLAs de armazenamento do Windows Azure possuem tempos de processamento máximos para os blobs que você pode levar em consideração.

  • Usar a opção WITH COMPRESSION como recomendado na seção Gerenciando o backup é muito importante ao fazer backup de arquivos grandes.

Otimizando restaurações

Para reduzir o tempo de gravação da restauração, adicione o direito de usuário Executar tarefas de manutenção de volume à conta de usuário do SQL Server. Para obter mais informações, consulte Inicialização de arquivos de bancos de dados

Considerações sobre desempenho

O desempenho do backup e da restauração pode variar dependendo da largura de banda da rede, do tamanho do banco de dados e do local do serviço de armazenamento do Windows Azure relativo ao local. Para avaliar o desempenho do backup e da restauração do seu ambiente, é recomendável que você teste o backup e as restaurações, e avalie a produção e o desempenho. Os seguintes itens devem ser considerados ao fazer backup no serviço de armazenamento do Blob do Windows Azure:

  • Os tempos de backup e de restauração são proporcionais à largura de banda da rede.

  • A largura mínima de banda da rede para o backup é 1 MB por segundo. O backup pode apresentar falha com erros de tempo limite se a largura de banda for inferior a 1 MB por segundo.

  • A hora da restauração também é proporcional à latência de rede, especialmente se você estiver tentando restaurar um arquivo de uma região do Windows Azure geograficamente diferente da instância do SQL Server que você está tentando restaurar. Nesses casos, o teste se torna muito importante para assegurar que atenderá aos requisitos de RTO.

Solução de problemas de backup ou restauração no serviço de armazenamento de Blob do Windows Azure

Estas são algumas maneiras rápidas de solucionar problemas ao fazer backup ou restaurações do serviço de armazenamento do Blob do Windows Azure.

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 Blob do Windows Azure.

Erros de autenticação:

  • WITH CREDENTIAL é uma nova opção, necessário para fazer backup ou restauração no serviço de armazenamento de Blob do Windows 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 Alter any credential.

  • 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 Windows 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 <action> é uma das opções a seguir:

      • DB

      • FILELISTONLY

      • LABELONLY

      • HEADERONLY

      • VERIFYONLY

    • Você também pode localizar informações analisando o Log de Eventos do Windows nos logs de aplicativo com o nome ‘SQLBackupToUrl’.

  • Erro durante o backup devido a blobs que têm o arrendamento ativo neles: a atividade de backup com falha pode resultar em blobs com arrendamentos ativos.

    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:

    A opção backup a URL recebeu uma exceção do ponto de extremidade remoto. Mensagem de exceção: O servidor remoto retornou um erro: (412) Há um arrendamento no blob e nenhuma ID de arrendamento 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 um arrendamento ativo, a operação de restauração falhará com um erro semelhante ao seguinte:

    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 Excluindo arquivos de blob de backup com arrendamentos ativos

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:

  • Falha ao gravar em “http://storageaccount.blob.core.windows. net/container/BackupAzurefile.bak": 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 irrecuperável de E/S no arquivo “http://storageaccount.blob.core.windows. net/container/BackupAzurefile.bak:" o erro não pôde ser coletado 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:

Código de status HTTP 502, Erro de proxy da mensagem de status HTTP (o número de solicitações HTTP por minuto excedeu o limite configurado. Contate o administrador do ISA Server. )

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

Às vezes as configurações padrão não são escolhidas causando erros da autenticação do proxy como aquele mostrado abaixo:Ocorreu um erro irrecuperável de E/S 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 o SQL Server estiver instalado na unidade C do computador, coloque o arquivo de configuração aqui: C:\Arquivos de Programas\Microsoft SQL Server\MSSQL11.<Nome_da_Instância>\MSSQL\Binn.