Solucionar problemas de backup do banco de dados do SQL Server usando o Backup do Azure

Este artigo fornece informações sobre a solução de problemas dos bancos de dados do SQL Server em execução nas máquinas virtuais do Azure.

Para obter mais informações sobre o processo e as limitações de backup, consulte Sobre o Backup do SQL Server nas VMs do Azure.

Permissões do SQL Server

Para configurar a proteção de um banco de dados do SQL Server em uma máquina virtual, você deve instalar a extensão AzureBackupWindowsWorkload nessa máquina virtual. Se você receber a mensagem de erro, UserErrorSQLNoSysadminMembership, isso significa que a Instância do SQL Server não possui as permissões de backup necessárias. Para corrigir esse erro, siga as etapas em Definir permissões da VM.

Solucionar problemas de descoberta e configuração

Quando a criação e a configuração de um cofre dos Serviços de Recuperação são concluídas, a descoberta de bancos de dados e a configuração do backup é um processo de duas etapas.

Backup Goal - SQL Server in Azure VM

Durante a configuração de backup, se a VM do SQL e suas instâncias não estiverem visíveis na Descoberta de Bancos de Dados nas VMs e Configurar o backup (consulte a imagem acima), verifique se:

Etapa 1: Descoberta de Banco de Dados nas VMs

  • Se a VM não estiver listada na lista de VMs descobertas e também não estiver registrada para backup do SQL em outro cofre, siga as etapas de Descoberta de backup do SQL Server.

Etapa 2: Configurar Backup

  • Se o cofre no qual a VM do SQL está registrada for o mesmo cofre usado para proteger os bancos de dados, siga as etapas em Configurar Backup.

Se a VM do SQL precisar ser registrada no novo cofre, ela deverá ter o registro cancelado do cofre antigo. O cancelamento do registro de uma VM do SQL do cofre requer que todas as fontes de dados protegidas tenham a proteção interrompida e, em seguida, você pode excluir os dados de backup. A exclusão de dados de backup é uma operação destrutiva. Depois de examinar e tomar todas as precauções para cancelar o registro da VM do SQL, registre essa mesma VM com um novo cofre e repita a operação de backup.

Solução de problemas de Backup e Recuperação

Às vezes, qualquer falha aleatória pode ocorrer em operações de backup e restauração ou essas operações podem ficar paradas. Isso pode ocorrer devido a programas antivírus em sua VM. Sugerimos as seguintes etapas como melhor prática:

  1. Exclua estas pastas da verificação do antivírus:

    C:\Program Files\Azure Workload Backup C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.RecoveryServices.WorkloadBackup.AzureBackupWindowsWorkload

    Substitua C:\ pela letra do SystemDrive.

  2. Exclua os três processos a seguir em execução em uma VM da verificação antivírus:

    • IaasWLPluginSvc.exe
    • IaaSWorkloadCoordinatorService.exe
    • TriggerExtensionJob.exe
  3. O SQL também oferece algumas diretrizes para trabalhar com programas antivírus. Confira este artigo para obter detalhes.

Instância com falha em uma VM com várias instâncias do SQL Server

Você poderá restaurar para uma VM do SQL somente se todas as instâncias do SQL em execução na VM forem relatadas como íntegras. Se uma ou mais instâncias forem "defeituosas", a VM não aparecerá como um destino de restauração. Portanto, isso pode ser um possível motivo pelo qual uma VM de várias instâncias pode não aparecer na lista suspensa "servidor" durante a operação de restauração.

Você pode validar a "Prontidão de Backup" de todas as instâncias do SQL na VM, em Configurar backup:

Validate backup readiness

Se você quiser disparar uma restauração nas instâncias íntegras do SQL, execute as seguintes etapas:

  1. Entre na VM do SQL e vá para C:\Program Files\Azure Workload Backup\bin.

  2. Crie um arquivo JSON chamado ExtensionSettingsOverrides.json (se ainda não estiver presente). Se esse arquivo já estiver presente na VM, continue usando o mesmo.

  3. Adicione o seguinte conteúdo ao arquivo JSON e salve-o:

    {
                  "<ExistingKey1>":"<ExistingValue1>",
                    …………………………………………………… ,
              "whitelistedInstancesForInquiry": "FaultyInstance_1,FaultyInstance_2"
            }
    
            Sample content:        
            { 
              "whitelistedInstancesForInquiry": "CRPPA,CRPPB "
            }
    
    
  4. Dispare a operação Redescobrir Bancos de Dados nos servidores afetados do portal do Azure (o mesmo local em que a prontidão de backup pode ser vista). A VM começará a aparecer como destino para operações de restauração.

    Rediscover DBs

  5. Remova a entrada whitelistedInstancesForInquiry do arquivo ExtensionSettingsOverrides.json depois que a operação de restauração for concluída.

Mensagens de erro

Tipo de backup sem suporte

Severidade Descrição Possíveis causas Ação recomendada
Aviso As configurações atuais para este banco de dados não dão suporte a determinados tipos de backup presentes na política associada.
  • Apenas uma operação de backup completo de banco de dados pode ser executada no banco de dados mestre. O backup diferencial e o backup de log de transações não são possíveis.
  • Qualquer banco de dados no modelo de recuperação simples não permite o backup de logs de transações.
  • Modifica as configurações de banco de dados, de modo que todos os tipos de backup na política têm suporte. Ou altera a política atual para incluir somente os tipos de backup com suporte. Caso contrário, os tipos de backup sem suporte serão ignorados durante o backup agendado ou o trabalho de backup falhará para backup sob demanda.

    UserErrorSQLPODoesNotSupportBackupType

    Mensagem de erro Possíveis causas Ação recomendada
    Este banco de dados SQL não dá suporte para o tipo de backup solicitado. Ocorre quando o modelo de recuperação de banco de dados não permite o tipo de backup solicitado. O erro pode ocorrer nas seguintes situações:
    • Um banco de dados usando um modelo de recuperação simples não permite o backup de log.
    • Não são permitidos backups de log e diferenciais para um banco de dados mestre.
    Para obter mais detalhes, consulte a documentação Modelos de recuperação do SQL Server.
    Se o backup de log falhar para o banco de dados no modelo de recuperação simples, tente uma destas opções:
    • Se o banco de dados estiver no modo de recuperação simples, desabilite os backups de log.
    • Use a documentação do SQL Server para alterar o modelo de recuperação do banco de dados para full ou bulk logged.
    • Se você não quiser alterar o modelo de recuperação e tiver uma política padrão para fazer backup de vários bancos de dados que não podem ser alterados, ignore o erro. Os backups diferenciais e completos funcionarão por agendamento. Os backups de log serão ignorados, o que é esperado neste caso.
    Se for um banco de dados mestre e você tiver configurado o backup de log ou diferencial, use qualquer uma das etapas a seguir:
    • Use o portal para alterar o agendamento da política de backup do banco de dados mestre para full.
    • Se você tiver uma política padrão para fazer backup de vários bancos de dados que não podem ser alterados, ignore o erro. O backup completo funcionará por agendamento. Backups de log ou diferenciais não ocorrerão, o que é esperado neste caso.

    OperationCancelledBecauseConflictingOperationRunningUserError

    Mensagem de erro Possíveis causas Ação recomendada
    Operação cancelada como uma operação conflitante já em execução no mesmo banco de dados. Você pode receber esse erro quando o trabalho de backup é disparado sob demanda ou tem conflitos com uma operação de backup já em execução, disparada pela extensão de Backup do Azure no mesmo banco de dados.
    Confira os cenários em que esse código de erro pode ser exibido:
    • O Backup completo está em execução no banco de dados e outro Backup completo é disparado.
    • O Backup diferencial está em execução no banco de dados e outro Backup diferencial é disparado.
    • O Backup de log está em execução no banco de dados e outro Backup de log é disparado.
    Depois que a operação conflitante falhar, reinicie a operação.

    UserErrorFileManipulationIsNotAllowedDuringBackup

    Mensagem de erro Possíveis causas Ações recomendadas
    O backup e as operações de manipulação de arquivos (como ALTER DATABASE ADD FILE) e alterações de criptografia em um banco de dados devem ser serializadas. Confira os casos em que esse código de erro pode surgir:
    • Adicionar ou descartar arquivos em um banco de dados enquanto um backup está ocorrendo.
    • Reduzir arquivos enquanto os backups de banco de dados estão ocorrendo.
    • Um backup de banco de dados por outro produto de backup configurado para o banco de dados está em andamento e um trabalho de backup é disparado pela extensão de Backup do Azure.
    Desabilite o outro produto de backup para resolver o problema.

    UserErrorSQLPODoesNotExist

    Mensagem de erro Possíveis causas Ações recomendadas
    Banco de dados SQL não existe. O banco de dados foi excluído ou renomeado. Verifique se o banco de dados foi excluído ou renomeado acidentalmente.

    Se o banco de dados foi excluído acidentalmente, para continuar os backups, restaure o banco de dados para o local original.

    Se você excluiu o banco de dados e não precisa de backups futuros, selecione, no cofre dos Serviços de Recuperação, Parar backup com Manter Dados de Backup ou Excluir Dados de Backup. Para obter mais informações, consulte Gerenciar e monitorar bancos de dados do SQL Server com backup.

    UserErrorSQLLSNValidationFailure

    Mensagem de erro Possíveis causas Ações recomendadas
    A cadeia de logs está desfeita. O banco de dados ou a VM é submetido a backup através de outra solução de backup, que trunca a cadeia de logs.
    • Verifique se outra solução de backup ou script está em uso. Nesse caso, pare a outra solução de backup.
    • Se o backup foi um backup de log sob demanda, dispare um backup completo para iniciar uma nova cadeia de logs. Para backups de log agendados, nenhuma ação será necessária, pois o serviço de Backup do Azure acionará automaticamente um backup completo para corrigir esse problema.

    UserErrorOpeningSQLConnection

    Mensagem de erro Possíveis causas Ações recomendadas
    O Backup do Azure não pode conectar a instância do SQL. O Backup do Azure não pode conectar a Instância do SQL Server. Use os detalhes adicionais no menu de erros do portal do Azure para restringir as causas raízes. Consulte Solucionar problemas de backup do SQL para corrigir o erro.
    • Se as configurações padrão do SQL não permitirem conexões remotas, altere as configurações. Consulte os seguintes artigos para obter informações sobre como alterar as configurações:

    UserErrorParentFullBackupMissing

    Mensagem de erro Possíveis causas Ações recomendadas
    O primeiro backup completo está faltando para essa fonte de dados. O backup completo está faltando para o banco de dados. Backups de log e diferenciais fazem parte de um backup completo, portanto, certifique-se de fazer backups completos antes de disparar backups de log ou diferenciais. Dispare um backup completo sob demanda.

    UserErrorBackupFailedAsTransactionLogIsFull

    Mensagem de erro Possíveis causas Ações recomendadas
    Não é possível fazer backup como log de transações para a fonte de dados que está completo. O espaço de log transacional do banco de dados está completo. Para corrigir esse problema, consulte a documentação do SQL Server.

    UserErrorCannotRestoreExistingDBWithoutForceOverwrite

    Mensagem de erro Possíveis causas Ações recomendadas
    Banco de dados com o mesmo nome já existe no local de destino O destino da restauração de destino já possui um banco de dados com o mesmo nome.
    • Alterar o nome do banco de dados de destino.
    • Ou use a opção forçar substituição na página de restauração.

    UserErrorRestoreFailedDatabaseCannotBeOfflined

    Mensagem de erro Possíveis causas Ações recomendadas
    A restauração falhou porque o banco de dados não pôde ficar offline. Ao fazer uma restauração, o banco de dados de destino precisará ficar offline. O Backup do Azure não pode colocar esses dados offline. Use os detalhes adicionais no menu de erros do portal do Azure para restringir as causas raízes. Para obter mais informações, consulte a documentação do SQL Server.

    WlExtGenericIOFaultUserError

    Mensagem de erro Possíveis causas Ações recomendadas
    Um erro de entrada/saída durante a operação. Verifique os erros comuns de E/S na máquina virtual. Permissões de acesso ou restrições de espaço no destino. Verifique os erros comuns de E/S na máquina virtual. Verifique se a unidade de destino / compartilhamento de rede no computador:
  • tem permissão de leitura/gravação para a conta NT AUTHORITY\SYSTEM no computador.
  • tem espaço suficiente para a operação ser concluída com êxito.
    Para obter mais informações, consulte Restaurar como arquivos.
  • UserErrorCannotFindServerCertificateWithThumbprint

    Mensagem de erro Possíveis causas Ações recomendadas
    Não é possível localizar o certificado do servidor com impressão digital no destino. O banco de dados mestre na instância de destino não possui uma impressão digital de criptografia válida. Importe a impressão digital válida do certificado usada na instância de origem para a instância de destino.

    UserErrorRestoreNotPossibleBecauseLogBackupContainsBulkLoggedChanges

    Mensagem de erro Possíveis causas Ações recomendadas
    O backup de log usado para a recuperação contém alterações bulk-logged. Ele não pode ser usado para parar em um ponto arbitrário de acordo com as diretrizes do SQL. Quando um banco de dados está no modo de recuperação bulk-logged, os dados entre uma transação bulk-logged e a próxima transação de log não podem ser recuperados. Escolha um ponto diferente no tempo para a recuperação. Saiba mais.

    FabricSvcBackupPreferenceCheckFailedUserError

    Mensagem de erro Possíveis causas Ações recomendadas
    A preferência de backup para o Grupo de Disponibilidade AlwaysOn do SQL não pode ser atendida, pois alguns nós do Grupo de Disponibilidade não estão registrados. Os nós necessários para executar backups não estão registrados ou estão inacessíveis.
    • Certifique-se de que todos os nós necessários para executar backups desse banco de dados estejam registrados e íntegros e, em seguida, repita a operação.
    • Altere a preferência de backup para o grupo de disponibilidade Always On do SQL Server.

    VMNotInRunningStateUserError

    Mensagem de erro Possíveis causas Ações recomendadas
    A VM do SQL Server está desligada e inacessível para serviço de Backup do Azure. A VM está desligada. Verifique se a instância do SQL Server está em execução.

    GuestAgentStatusUnavailableUserError

    Mensagem de erro Possíveis causas Ações recomendadas
    O serviço de Backup do Azure usa agente convidado de VM do Azure para fazer backup, mas o agente convidado não está disponível no servidor de destino. O agente convidado não está habilitado ou não está íntegro. Instalar o agente convidado de VM manualmente.

    AutoProtectionCancelledOrNotValid

    Mensagem de erro Possíveis causas Ações recomendadas
    Intenção de proteção automática foi removida ou não é mais válida. Quando você habilita a proteção automática em uma instância do SQL Server, os trabalhos de Configurar Backup são executados para todos os bancos de dados nessa instância. Se você desabilitar a proteção automática, enquanto os trabalhos estão em execução, os trabalhos Em andamento são cancelados com esse código de erro. Habilite a proteção automática mais uma vez para ajudar a proteger todos os bancos de dados restantes.

    CloudDosAbsoluteLimitReached

    Mensagem de erro Possíveis causas Ações recomendadas
    A operação está bloqueada, pois você atingiu o limite de operações permitidas em 24 horas. Quando você atingir o limite máximo permitido para uma operação em um intervalo de 24 horas, esse erro será exibido.
    Por exemplo: se você atingiu o limite do número de trabalhos de backup de configuração que podem ser disparados por dia e tentar configurar o backup em um novo item, você verá esse erro.
    Normalmente, a repetição da operação após 24 horas resolve este problema. No entanto, se o problema persistir, você poderá entrar em contato com o suporte da Microsoft para obter ajuda.

    CloudDosAbsoluteLimitReachedWithRetry

    Mensagem de erro Possíveis causas Ações recomendadas
    A operação está bloqueada pois o cofre atingiu seu limite máximo para essas operações permitidas em um intervalo de 24 horas. Quando você atingir o limite máximo permitido para uma operação em um intervalo de 24 horas, esse erro será exibido. Esse erro geralmente aparece quando há operações em escala, como modificar a política ou proteção automática. Ao contrário do caso do CloudDosAbsoluteLimitReached, não há muito que você possa fazer para resolver esse estado. Na verdade, o serviço de Backup do Azure tentará as operações novamente internamente para todos os itens em questão.
    Por exemplo: se você tiver muitas fontes de dados protegidas por uma política e tentar modificar essa política, ela irá disparar trabalhos de proteção de configuração para cada um dos itens protegidos e, às vezes, poderá atingir o limite máximo permitido para essas operações por dia.
    O serviço de backup do Azure repetirá essa operação automaticamente após 24 horas.

    WorkloadExtensionNotReachable

    Mensagem de erro Possíveis causas Ações recomendadas
    Falha na operação de extensão de carga de trabalho do AzureBackup. A VM está desligada ou a VM não pode entrar em contato com o serviço de Backup do Azure devido a problemas de conectividade com a Internet.
  • Verifique se a VM está em execução e se tem conectividade com a Internet.
  • Registrar novamente a extensão na VM do SQL Server.
  • UserErrorVMInternetConnectivityIssue

    Mensagem de erro Possíveis causas Ações recomendadas
    A VM não pode entrar em contato com o serviço de Backup do Azure devido a problemas de conectividade com a Internet. A VM precisa de conectividade de saída com o Serviço de Backup do Azure, Armazenamento do Azure ou serviços do Microsoft Entra.
  • Se você usar o NSG para restringir a conectividade, deverá usar a marca de serviço AzureBackup para permitir o acesso de saída ao Serviço de Backup do Azure e, da mesma forma, para os serviços da ID do Microsoft Entra (AzureActiveDirectory) e Armazenamento do Azure(Armazenamento). Siga estas etapas para conceder acesso.
  • Verifique se o DNS está resolvendo os pontos de extremidade do Azure.
  • Verifique se a VM está atrás de um balanceador de carga que está bloqueando o acesso à Internet. Ao atribuir o IP público às VMs, a descoberta funcionará.
  • Verifique se não há firewall/antivírus/proxy bloqueando chamadas para os três serviços de destino acima.
  • UserErrorOperationNotAllowedDatabaseMirroringEnabled

    Mensagem de erro Causa possível Ação recomendada
    Não há suporte para o backup de bancos de dados que participam de uma sessão de espelhamento no AzureWorkloadBackup. Quando você habilita a operação de espelhamento em um banco de dados SQL, esse erro aparece. Atualmente, o Backup do Azure não dá suporte a bancos de dados com esse recurso habilitado. Você pode remover a sessão de espelhamento de banco de dados do banco de dados para que a operação seja concluída com êxito. Como alternativa, se o banco de dados já estiver protegido, Interrompa a operação de backup no banco de dados.

    UserErrorWindowsWLExtFailedToStartPluginService

    Mensagem de erro Causa possível Recomendação
    Falha na operação com o erro UserErrorWindowsWLExtFailedToStartPluginService. A extensão de carga de trabalho do Backup do Azure não consegue iniciar o serviço de plug-in de backup de carga de trabalho na Máquina Virtual do Azure devido a uma configuração incorreta da conta de serviço. Etapa 1:

    Verifique se o usuário NT Service\AzureWLBackupPluginSvc tem permissões de Leitura em:
    - C:\windows\Microsoft.NET \assembly\GAC_32
    - C:\windows\Microsoft.NET \assembly\GAC_64
    - C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config.

    Se as permissões estiverem ausentes, atribua permissões de Leitura nesses diretórios.

    Etapa 2:

    Verifique se NT Service\AzureWLBackupPluginSvc tem os direitos de Ignorar verificação completa acessando Política de segurança local>Atribuição de direito de usuário>Ignorar verificação completa. Todos devem ser selecionados por padrão.

    Se Todos e NT Service\AzureWLBackupPluginSvc estiverem ausentes, adicione o usuário NT Service\AzureWLBackupPluginSvc e tente reiniciar o serviço ou disparar uma operação de backup ou restauração para uma fonte de dados.

    Falhas no novo registro

    Verifique se um ou mais dos seguintes sintomas existem, antes de acionar a operação de novo registro:

    • Todas as operações (como backup, restauração e configuração de backup) falham na VM com um dos seguintes códigos de erro: WorkloadExtensionNotReachable , UserErrorWorkloadExtensionNotInstalled, WorkloadExtensionNotPresent, WorkloadExtensionDidntDequeueMsg.

    • Se a área de Status de backup para o item de backup estiver mostrando Não acessível, descarte todas as outras causas que possam resultar no mesmo status:

      • Falta de permissão para realizar as operações relacionadas ao backup na VM.
      • Desligamento da VM, para que os backups não ocorram.
      • Problemas de rede

      re-registering VM

    • No caso de um grupo de disponibilidade Always On, os backups começaram a falhar após a alteração da preferência de backup ou após um failover.

    Esses sintomas podem surgir devido a uma ou mais das seguintes razões:

    • Uma extensão foi excluída ou desinstalada no portal.
    • Uma extensão foi desinstalada do Painel de Controle na VM em Desinstalar ou Alterar um Programa.
    • A VM foi restaurada retroativamente por meio da restauração de disco in-loco.
    • A VM foi desligada por um período prolongado, portanto, a configuração de extensão expirou.
    • A VM foi excluída e outra VM foi criada com o mesmo nome e no mesmo grupo de recursos que a VM excluída.
    • Um dos nós do grupo de disponibilidade não recebeu a configuração de backup completa. Isso pode acontecer quando o grupo de disponibilidade é registrado no cofre ou quando um novo nó é adicionado.

    Nos cenários anteriores, recomendamos que você acione uma operação de novo registro na VM. Veja aqui as instruções sobre como executar essa tarefa no PowerShell.

    Limite de tamanho para arquivos

    O tamanho total da cadeia de caracteres dos arquivos depende não apenas do número de arquivos, mas também de seus nomes e caminhos. Para cada arquivo do banco de dados, obtenha o nome do arquivo lógico e o caminho físico. Você pode usar esta consulta de SQL:

    SELECT mf.name AS LogicalName, Physical_Name AS Location FROM sys.master_files mf
                   INNER JOIN sys.databases db ON db.database_id = mf.database_id
                   WHERE db.name = N'<Database Name>'"
    

    Agora, organize-os no seguinte formato:

    [{"path":"<Location>","logicalName":"<LogicalName>","isDir":false},{"path":"<Location>","logicalName":"<LogicalName>","isDir":false}]}
    

    Veja um exemplo:

    [{"path":"F:\\Data\\TestDB12.mdf","logicalName":"TestDB12","isDir":false},{"path":"F:\\Log\\TestDB12_log.ldf","logicalName":"TestDB12_log","isDir":false}]}
    

    Se o tamanho da cadeia de caracteres do conteúdo exceder 20.000 bytes, os arquivos do banco de dados serão armazenados de maneira diferente. Durante a recuperação, você não poderá definir o caminho do arquivo de destino para restauração. Os arquivos serão restaurados para o caminho SQL padrão fornecido pelo SQL Server.

    Substituir o caminho do arquivo de restauração de destino padrão

    Você pode substituir o caminho do arquivo de restauração de destino durante a operação de restauração, colocando um arquivo JSON que contém o mapeamento do arquivo de banco de dados para o caminho de restauração de destino. Crie um arquivo database_name.json e coloque-o no local C:\Program Files\Azure Workload Backup\bin\plugins\SQL*.

    O conteúdo do arquivo deve estar neste formato:

    [
      {
        "Path": "<Restore_Path>",
        "LogicalName": "<LogicalName>",
        "IsDir": "false"
      },
      {
        "Path": "<Restore_Path>",
        "LogicalName": "LogicalName",
        "IsDir": "false"
      },  
    ]
    

    Veja um exemplo:

    [
      {
       "Path": "F:\\Data\\testdb2_1546408741449456.mdf",
       "LogicalName": "testdb7",
       "IsDir": "false"
      },
      {
        "Path": "F:\\Log\\testdb2_log_1546408741449456.ldf",
        "LogicalName": "testdb7_log",
        "IsDir": "false"
      },  
    ]
    

    No conteúdo anterior, você pode obter o nome lógico do arquivo de banco de dados usando a seguinte consulta SQL:

    SELECT mf.name AS LogicalName FROM sys.master_files mf
                    INNER JOIN sys.databases db ON db.database_id = mf.database_id
                    WHERE db.name = N'<Database Name>'"
    

    Esse arquivo deve ser colocado antes de você disparar a operação de restauração.

    Próximas etapas

    Para obter mais informações sobreo Backup do Azure para VMs SQL.