Compartilhar via


Solucionar problemas de bancos de dados espelhados do Fabric do Banco de Dados SQL do Azure

Este artigo aborda as etapas de solução de problemas de solução de problemas para espelhamento do Banco de Dados SQL do Azure.

Para solucionar problemas do espelhamento configurado automaticamente para o Banco de Dados SQL do Fabric, consulte Solucionar problemas de espelhamento do Banco de Dados SQL do Fabric.

Alterações na capacidade ou no espaço de trabalho do Fabric

Alterações na capacidade ou no espaço de trabalho do Fabric podem afetar o espelhamento. Para obter mais informações, examine os efeitos no espelhamento em decorrência das alterações na capacidade do Fabric.

Solução de problemas do Banco de Dados SQL do Azure

Motivo Resultado Resolução recomendada
Área de trabalho excluída O espelhamento é interrompido automaticamente e desabilita o feed de alterações no Banco de Dados SQL do Azure Caso o espelhamento ainda esteja ativo no Banco de Dados SQL do Azure, execute o seguinte procedimento armazenado no Banco de Dados SQL do Azure: exec sp_change_feed_disable_db;.
Erros persistentes O espelhamento está desabilitado para o banco de dados afetado Para garantir que os recursos de computação não sejam afetados e proteger o Banco de Dados SQL do Azure de origem, o espelhamento será desabilitado em quaisquer erros persistentes. Revise sys.dm_change_feed_errors e resolva os erros subjacentes antes de reativar o banco de dados para espelhamento.
A configuração "Os usuários podem acessar dados armazenados no OneLake com aplicativos externos ao Fabric" está desabilitada. "Replicador – Tabelas não conseguem alcançar o estado de replicação" Habilite a configuração do locatário Os usuários podem acessar dados armazenados no OneLake com aplicativos externos ao Fabric.

Para mais cenários de solução de problemas, consulte Solucionar problemas de bancos de dados espelhados do Fabric – Microsoft Fabric.

Consultas T-SQL para solução de problemas

Se você estiver enfrentando problemas de espelhamento, execute as seguintes verificações de nível de banco de dados usando DMVs (Exibições de Gerenciamento Dinâmico) e procedimentos armazenados para validar a configuração.

  1. Execute a seguinte consulta para verificar se as alterações fluem corretamente:

    SELECT * FROM sys.dm_change_feed_log_scan_sessions;
    
  2. Caso o DMV sys.dm_change_feed_log_scan_sessions não mostre nenhum progresso no processamento de alterações incrementais, execute a seguinte consulta T-SQL para verificar se há algum problema relatado:

    SELECT * FROM sys.dm_change_feed_errors;
    
  3. Se não houver nenhum problema relatado, execute o procedimento armazenado a seguir para examinar a configuração atual do Banco de Dados SQL do Azure espelhado. Confirme se ele foi habilitado corretamente.

    EXEC sp_help_change_feed;
    

    As colunas de chave a serem procuradas aqui são table_name e state. Qualquer valor além de 4 indica um problema potencial.

  4. Se a replicação ainda não estiver funcionando, verifique se o objeto de identidade gerenciado correto tem permissões.

    1. No portal do Fabric, selecione "..." Opção de reticências no item de banco de dados espelhado.
    2. Selecione a opção Gerenciar Permissões .
    3. Confirme se o nome da identidade gerenciada aparece com permissões de leitura e gravação.
    4. Verifique se a AppId que aparece corresponde à ID da identidade gerenciada do servidor lógico do Banco de Dados SQL do Azure.
  5. Entre em contato com o suporte se a solução de problemas for necessária.

Identidade gerenciada

A SAMI (Identidade Gerenciada Atribuída ao Sistema) ou a UAMI (Identidade Gerenciada Atribuída ao Usuário) do servidor lógico do SQL do Azure devem ser habilitadas e uma delas deve ser a identidade primária.

Observação

O suporte à UAMI (Identidade Gerenciada Atribuída ao Usuário) está atualmente em versão prévia.

Verifique a identidade primária correta usando a seguinte consulta Transact-SQL:

SELECT * FROM sys.dm_server_managed_identities;

Para obter mais informações, consulte Criar um servidor do Banco de Dados SQL do Azure.

Permissões para identidades gerenciadas

Tanto a SAMI (Identidade Gerenciada Atribuída ao Sistema) quanto a UAMI (Identidade Gerenciada Atribuída pelo Usuário) para o servidor lógico do SQL do Azure devem ter permissões de leitura e gravação no item de banco de dados espelhado no Microsoft Fabric.

Quando você cria o banco de dados espelhado do portal do Fabric, a permissão é concedida automaticamente. Se você encontrar um erro Unable to grant required permission to the source server. User does not have permission to reshare durante a instalação, verifique se você tem uma função de membro ou administrador no workspace com privilégio suficiente. Ao usar a API ou CI/CD para criar o banco de dados espelhado, conceda a permissão explicitamente.

Não remova as permissões SAMI e/ou UAMI de Leitura e Gravação em itens de banco de dados espelhados do Fabric. Se você remover acidentalmente as permissões, o espelhamento do Banco de Dados SQL do Azure não funcionará conforme o esperado. Nenhum dado novo pode ser espelhado do banco de dados de origem.

Se você remover as permissões SAMI e/ou UAMI do Banco de Dados SQL do Azure ou as permissões não estiverem configuradas corretamente, consulte as etapas descritas na seção do tutorial para configurá-lo.

Erros de permissões obsoletas com logons do Microsoft Entra

Antes de usar a autenticação do ID do Microsoft Entra, examine as limitações nos principais de servidor do Microsoft Entra.

Os usuários de banco de dados criados usando logons do Microsoft Entra podem sofrer atrasos ao receberem funções e permissões. Isso pode resultar em um erro como o seguinte no portal do Fabric:

"The database cannot be mirrored to Fabric due to below error: Unable to retrieve SQL Server managed identities. A database operation failed with the following error: 'VIEW SERVER SECURITY STATE permission was denied on object 'server', database 'master'. The user does not have permission to perform this action.' VIEW SERVER SECURITY STATE permission was denied on object 'server', database 'master'. The user does not have permission to perform this action. SqlErrorNumber=300,Class=14,State=1, Activity ID: ..."

Durante a versão prévia atual, os comandos a seguir devem ser usados para resolver esses problemas.

  • Remova o usuário do banco de dados do usuário.
  • Execute DBCC FREESYSTEMCACHE('TokenAndPermUserStore') para limpar os caches de segurança no banco de dados.
  • Execute DBCC FLUSHAUTHCACHE para limpar o cache de contexto de autenticação federada.
  • No banco de dados do usuário, crie novamente o usuário com base no logon.

Uso do log de transações

O uso de log de transações para um banco de dados habilitado para espelhamento pode continuar aumentando e impedindo o truncamento do log. Depois que o tamanho do log de transações atingir o limite máximo definido, as gravações no banco de dados falharão. Para se proteger disso, o espelhamento dispara a reutilização automática de todo o banco de dados quando o espaço de log usado excede um limite de espaço de log total configurado. Para diagnosticar isso e saber mais sobre o ressegamento automático, consulte o Reseed automático para bancos de dados espelhados do Fabric do Banco de Dados SQL do Azure.

O processo de re-semeadura foi iniciado automaticamente

O espelhamento de malha do Banco de Dados SQL do Azure pode ser reutilizado automaticamente em determinadas condições, no nível de tabela individual ou em todo o banco de dados. Para saber mais, reposição automática para bancos de dados espelhados do serviço Fabric do Banco de Dados SQL do Azure.