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.
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:
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.Exclua os três processos a seguir em execução em uma VM da verificação antivírus:
- IaasWLPluginSvc.exe
- IaaSWorkloadCoordinatorService.exe
- TriggerExtensionJob.exe
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:
Se você quiser acionar uma restauração nas instâncias SQL íntegras, execute as seguintes etapas:
Entre na VM 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.Adicione o seguinte conteúdo no arquivo JSON e salve o arquivo:
{ "<ExistingKey1>":"<ExistingValue1>", …………………………………………………… , "whitelistedInstancesForInquiry": "FaultyInstance_1,FaultyInstance_2" } Sample content: { "whitelistedInstancesForInquiry": "CRPPA,CRPPB " }
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.
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. | 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:
|
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 | 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:
|
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:
|
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. |
|
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.
|
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. |
|
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: 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. |
|
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. |
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. | 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 diretiva de GPO (Objeto de Diretiva de Grupo) restringe os pacotes de codificação necessários para comunicação TLS. |
Recomendação para a causa 1: Recomendação para a causa 2: Remova a VM do GPO ou desative/remova a diretiva de GPO como uma solução alternativa. Como alternativa, modifique o GPO de tal forma que ele permita os conjuntos de codificação necessários. |
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
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.