Partilhar via


Resolver problemas de cópia de segurança de bases de dados do SQL Server com o Azure Backup

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

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

Permissões do SQL Server

Para configurar a proteção para 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 o erro UserErrorSQLNoSysadminMembership, isso significa que sua instância do SQL Server não tem as permissões de backup necessárias. Para corrigir esse erro, siga as etapas em Definir permissões de VM.

Resolver problemas de descoberta e configuração

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

Meta de backup - SQL Server na VM do Azure

Durante a configuração de backup, se a SQL VM e suas instâncias não estiverem visíveis nos DBs de Descoberta em VMs e Configurar Backup (consulte a imagem acima), certifique-se de que:

Etapa 1: DBs de descoberta em VMs

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

Etapa 2: Configurar o backup

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

Se a VM SQL precisar ser registrada no novo cofre, ela deverá ser cancelada do cofre antigo. O cancelamento do registro de uma VM SQL do cofre exige que todas as fontes de dados protegidas sejam interrompidas e, em seguida, você pode excluir os dados de backup. A exclusão de dados de backup é uma operação destrutiva. Depois de revisar e tomar todas as precauções para cancelar o registro da VM SQL, registre essa mesma VM em um novo cofre e tente novamente a operação de backup.

Solucionar problemas de backup e recuperação

Às vezes, falhas aleatórias podem acontecer em operações de backup e restauração ou essas operações podem ficar presas. Isso pode ser devido a programas antivírus em sua VM. Como prática recomendada, sugerimos as seguintes etapas:

  1. Exclua as seguintes pastas da verificação antivírus:

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

    Substitua C:\ pela letra do seu 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. SQL também oferece algumas diretrizes sobre como trabalhar com programas antivírus. Para obter mais detalhes, veja este artigo.

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

Você pode restaurar para uma VM SQL somente se todas as instâncias SQL em execução na VM forem relatadas como íntegras. Se uma ou mais instâncias estiverem "defeituosas", a VM não aparecerá como um destino de restauração. Portanto, essa pode ser uma possível razão pela qual uma VM de várias instâncias pode não aparecer no menu suspenso "servidor" durante a operação de restauração.

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

Validar a prontidão do backup

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

  1. Entre na VM 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.

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

    {
                  "<ExistingKey1>":"<ExistingValue1>",
                    …………………………………………………… ,
              "whitelistedInstancesForInquiry": "FaultyInstance_1,FaultyInstance_2"
            }
    
            Sample content:        
            { 
              "whitelistedInstancesForInquiry": "CRPPA,CRPPB "
            }
    
    
  4. Acione a operação Rediscover DBs no servidor afetado a partir do portal do Azure (o mesmo local onde a prontidão do backup pode ser vista). A VM começará a aparecer como destino para operações de restauração.

    Redescobrir DBs

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

Mensagens de erro

Tipo de backup não suportado

Gravidade Description Causas possíveis Ação recomendada
Aviso As configurações atuais desse banco de dados não oferecem suporte a determinados tipos de backup presentes na política associada.
  • Somente uma operação completa de backup do 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.
  • Modifique as configurações do banco de dados para que todos os tipos de backup na política sejam suportados. Ou altere a política atual para incluir apenas os tipos de backup suportados. Caso contrário, os tipos de backup sem suporte serão ignorados durante o backup agendado ou a tarefa de backup falhará para backup sob demanda.

    UserErrorSQLPODoesNotSupportBackupType

    Mensagem de Erro Causas possíveis Ação recomendada
    Este banco de dados SQL não suporta 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 acontecer nas seguintes situações:
    • Um banco de dados que está usando um modelo de recuperação simples não permite backup de log.
    • Backups diferenciais e de log não são permitidos para um banco de dados mestre.
    Para obter mais detalhes, consulte a documentação de 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, desative os backups de log.
    • Use a documentação do SQL Server para alterar o modelo de recuperação de banco de dados para log completo ou em massa.
    • 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. Seus backups completos e diferenciais funcionarão de acordo com a programação. 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 diferencial ou de log, use uma das seguintes etapas:
    • Use o portal para alterar o agendamento da política de backup para o banco de dados mestre, para completo.
    • 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. Seu backup completo funcionará de acordo com a programação. Backups diferenciais ou de log não acontecerão, o que é esperado neste caso.

    OperationCancelledBecauseConflictingOperationRunningUserError

    Mensagem de Erro Causas possíveis Ação recomendada
    Operação cancelada porque uma operação conflitante já estava em execução no mesmo banco de dados. Você pode receber esse erro quando o trabalho de backup acionado sob demanda ou agendado tiver conflitos com uma operação de backup já em execução acionada pela extensão de Backup do Azure no mesmo banco de dados.
    A seguir estão os cenários em que esse código de erro pode ser exibido:
    • O backup completo está sendo executado no banco de dados e outro backup completo é acionado.
    • O backup de comparação está sendo executado no banco de dados e outro backup de comparação é acionado.
    • O backup de log está sendo executado no banco de dados e outro backup de log é acionado.
    Depois que a operação conflitante falhar, reinicie a operação.

    UserErrorFileManipulationIsNotAllowedDuringBackup

    Mensagem de Erro Causas possíveis Ações recomendadas
    As operações de manipulação de arquivos de backup (como ALTER DATABASE ADD FILE) e as alterações de criptografia em um banco de dados devem ser serializadas. A seguir estão os casos em que esse código de erro pode aparecer:
    • Adicionar ou soltar arquivos em um banco de dados enquanto um backup está acontecendo.
    • Redução de arquivos enquanto os backups de banco de dados estão acontecendo.
    • 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 é acionado pela extensão de Backup do Azure.
    Desative o outro produto de backup para resolver o problema.

    UserErrorSQLPODoesNotExist

    Mensagem de Erro Causas possíveis Ações recomendadas
    O 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 acidentalmente ou renomeado.

    Se a base de dados tiver sido eliminada acidentalmente, para continuar as cópias de segurança, restaure a base de dados para a localização original.

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

    UserErrorSQLLSNValidationFailure

    Mensagem de Erro Causas possíveis Ações recomendadas
    A cadeia de registos está quebrada. O backup do banco de dados ou da VM é feito por meio de outra solução de backup, que trunca a cadeia de logs.
    • Verifique se outra solução de backup ou script está em uso. Em caso afirmativo, pare a outra solução de backup.
    • Se o backup foi um backup de log sob demanda, acione um backup completo para iniciar uma nova cadeia de logs. Para backups de log agendados, nenhuma ação é necessária porque o serviço de Backup do Azure acionará automaticamente um backup completo para corrigir esse problema.

    UserErrorOpeningSQLConnection

    Mensagem de Erro Causas possíveis Ações recomendadas
    O Backup do Azure não consegue se conectar à instância SQL. O Backup do Azure não pode se conectar à instância do SQL Server. Use os detalhes adicionais no menu de erro do portal do Azure para restringir as causas raiz. Consulte a solução de problemas do backup 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 Causas possíveis Ações recomendadas
    O primeiro backup completo está faltando para essa fonte de dados. O backup completo está faltando para o banco de dados. Os backups de log e diferenciais são pais de um backup completo, portanto, certifique-se de fazer backups completos antes de acionar backups diferenciais ou de log. Acione um backup completo sob demanda.

    UserErrorBackupFailedAsTransactionLogIsFull

    Mensagem de Erro Causas possíveis Ações recomendadas
    Não é possível fazer backup, pois o log de transações da fonte de dados está cheio. O espaço de log transacional do banco de dados está cheio. Para corrigir esse problema, consulte a documentação do SQL Server.

    UserErrorCannotRestoreExistingDBWithoutForceOverwrite

    Mensagem de Erro Causas possíveis Ações recomendadas
    O banco de dados com o mesmo nome já existe no local de destino O destino de restauração de destino já tem um banco de dados com o mesmo nome.
    • Altere 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 Causas possíveis Ações recomendadas
    O restauro falhou, porque não foi possível colocar a base de dados offline. Enquanto você está fazendo uma restauração, o banco de dados de destino precisa ser colocado offline. O Backup do Azure não pode colocar esses dados offline. Use os detalhes adicionais no menu de erro do portal do Azure para restringir as causas raiz. Para obter mais informações, veja a documentação do SQL Server.

    WlExtGenericIOFaultUserError

    Mensagem de Erro Causas possíveis Ações Recomendadas
    Ocorreu um erro de entrada/saída durante a operação. Verifique se há erros comuns de E/S na máquina virtual. Permissões de acesso ou restrições de espaço no destino. Verifique se há erros comuns de E/S na máquina virtual. Certifique-se de que a unidade de destino / compartilhamento de rede na máquina:
  • tem permissão de leitura/gravação para a conta NT AUTHORITY\SYSTEM na máquina.
  • tem espaço suficiente para que a operação seja concluída com êxito.
    Para obter mais informações, consulte Restaurar como arquivos.
  • UserErrorCannotFindServerCertificateWithThumbprint

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

    UserErrorRestoreNotPossibleBecauseLogBackupContainsBulkLoggedChanges

    Mensagem de Erro Causas possíveis Ações recomendadas
    A cópia de segurança do registo utilizada para recuperação contém alterações registadas em massa. Ele não pode ser usado para parar em um ponto arbitrário no tempo de acordo com as diretrizes 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 no tempo diferente para a recuperação. Mais informações.

    FabricSvcBackupPreferenceCheckFailedUserError

    Mensagem de Erro Causas possíveis Ações recomendadas
    Não é possível respeitar a preferência de cópia de segurança do Grupo de Disponibilidade AlwaysOn do SQL, uma vez que alguns nós do Grupo de Disponibilidade não estão registados. Os nós necessários para executar backups não estão registrados ou estão inacessíveis.
    • Verifique se todos os nós necessários para executar backups desse banco de dados estão registrados e íntegros e, em seguida, tente novamente a operação.
    • Altere a preferência de backup para o grupo de disponibilidade Always On do SQL Server.

    VMNotInRunningStateUserError

    Mensagem de Erro Causas possíveis Ações recomendadas
    A VM do SQL Server é desligada e não está acessível ao serviço de Backup do Azure. A VM é desligada. Verifique se a instância do SQL Server está em execução.

    GuestAgentStatusUnavailableUserError

    Mensagem de Erro Causas possíveis Ações recomendadas
    O serviço de Backup do Azure usa o agente convidado da 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. Instale o agente convidado da VM manualmente.

    AutoProtectionCancelledOrNotValid

    Mensagem de Erro Causas possíveis Ações recomendadas
    A 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, Configurar trabalhos de backup são executados para todos os bancos de dados nessa instância. Se você desabilitar a proteção automática enquanto os trabalhos estiverem em execução, os trabalhos em andamento serã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 Causas possíveis Ações recomendadas
    A operação é bloqueada porque você atingiu o limite do número de operações permitidas em 24 horas. Quando você atinge o limite máximo permitido para uma operação em um período de 24 horas, esse erro aparece.
    Por exemplo: se você tiver atingido o limite para o número de tarefas de backup de configuração que podem ser acionadas por dia e tentar configurar o backup em um novo item, verá esse erro.
    Normalmente, tentar novamente a operação após 24 horas resolve esse problema. No entanto, se o problema persistir, pode contactar o suporte da Microsoft para obter ajuda.

    CloudDosAbsoluteLimitReachedWithRetry

    Mensagem de Erro Causas possíveis Ações recomendadas
    A operação é bloqueada porque o cofre atingiu seu limite máximo para tais operações permitidas em um período de 24 horas. Quando você atinge o limite máximo permitido para uma operação em um período de 24 horas, esse erro aparece. Esse erro geralmente aparece quando há operações em escala, como modificar a política ou a proteção automática. Ao contrário do caso de CloudDosAbsoluteLimitReached, não há muito que você possa fazer para resolver esse estado. Na verdade, o serviço de Backup do Azure tentará novamente as operações internamente para todos os itens em questão.
    Por exemplo: se você tiver um grande número de fontes de dados protegidas com uma política e tentar modificá-la, ela acionará trabalhos de configuração de proteçã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á automaticamente essa operação após 24 horas.

    WorkloadExtensionNotReachable

    Mensagem de Erro Causas possíveis Ações recomendadas
    Falha na operação de extensão de carga de trabalho do AzureBackup. A VM é 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 funcionamento e se tem conectividade com a Internet.
  • Registre novamente a extensão na VM do SQL Server.
  • UserErrorVMInternetConnectivityIssue

    Mensagem de Erro Causas possíveis 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, o Armazenamento do Azure ou os 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 Microsoft Entra ID (AzureActiveDirectory) e Azure Storage(Storage). Siga estas etapas para conceder acesso.
  • Verifique se o DNS está resolvendo pontos de extremidade do Azure.
  • Verifique se a VM está atrás de um balanceador de carga bloqueando o acesso à Internet. Ao atribuir IP público às VMs, a descoberta funcionará.
  • Verifique se não há nenhum firewall/antivírus/proxy que esteja bloqueando chamadas para os três serviços de destino acima.
  • UserErrorOperationNotAllowedDatabaseMirroringEnabled

    Mensagem de Erro Causa possível Ação recomendada
    A cópia de segurança de bases de dados que participam numa sessão de espelhamento de bases de dados não é suportada pelo 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 oferece 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
    Operação falhando com UserErrorWindowsWLExtFailedToStartPluginService erro. A extensão de carga de trabalho do Backup do Azure não consegue iniciar o serviço de plug-in de backup da carga de trabalho na Máquina Virtual do Azure devido à configuração incorreta da conta de serviço. Passo 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.

    Passo 2:

    Verifique se o NT Service\AzureWLBackupPluginSvc tem os direitos de verificação transversal de Bypass indo para a verificação transversal de Bypass de Atribuição de Direitos> de Usuário da Política>de Segurança Local. Todos devem ser selecionados por padrão.

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

    Falhas no novo registo

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

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

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

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

      re-registrar VM

    • No caso de um grupo de disponibilidade Always On, os backups começaram a falhar depois que você alterou a preferência de backup ou após um failover.

    Estes sintomas podem surgir por uma ou mais das seguintes razões:

    • Uma extensão foi excluída ou desinstalada do portal.
    • Uma extensão foi desinstalada do Painel de Controle na VM em Desinstalar ou Alterar um Programa.
    • A VM foi restaurada no tempo por meio da restauração de disco in-loco.
    • A VM foi desligada por um longo período, portanto, a configuração de extensão nela 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. Consulte aqui para obter instruções sobre como executar essa tarefa no PowerShell.

    Limite de tamanho para ficheiros

    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 de banco de dados, obtenha o nome do arquivo lógico e o caminho físico. Você pode usar esta consulta 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}]}
    

    Eis 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 de banco de dados serão armazenados de forma 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 database_name.json arquivo e coloque-o no local C:\Program Files\Azure Workload Backup\bin\plugins\SQL*.

    O conteúdo do ficheiro deve estar neste formato:

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

    Eis 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 acionar a operação de restauração.

    Próximos passos

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