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.
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:
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.Exclua os três processos a seguir em execução em uma VM da verificação antivírus:
- IaasWLPluginSvc.exe
- IaaSWorkloadCoordinatorService.exe
- TriggerExtensionJob.exe
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:
Se você quiser disparar uma restauração nas instâncias íntegras do SQL, execute as seguintes etapas:
Entre na VM do SQL e vá para
C:\Program Files\Azure Workload Backup\bin
.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.Adicione o seguinte conteúdo ao arquivo JSON e salve-o:
{ "<ExistingKey1>":"<ExistingValue1>", …………………………………………………… , "whitelistedInstancesForInquiry": "FaultyInstance_1,FaultyInstance_2" } Sample content: { "whitelistedInstancesForInquiry": "CRPPA,CRPPB " }
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.
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. | 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 oferece 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:
|
Se o backup de log falhar para o banco de dados no modelo de recuperação simples, tente uma destas opções:
|
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:
|
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:
|
Desabilite o outro produto de backup para resolver o problema. |
UserErrorSQLPODoesNotExist
Mensagem de erro | Possíveis causas | 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 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. |
|
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.
|
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. |
|
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: 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. |
|
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. |
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. | Causa 1: 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. Causa 2: uma política de Objeto de Política de Grupo (GPO) restringe os conjuntos de criptografia necessários para comunicação TLS. |
Recomendação para a causa 1: Recomendação para a causa 2: remova a VM do GPO ou desabilite/remova a política de GPO como uma solução alternativa. Como alternativa, modifique o GPO de forma que ele permita os conjuntos de criptografia necessários. |
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
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.