Partilhar via


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

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

Para resolução de problemas do espelhamento configurado automaticamente para a base de dados SQL Fabric, consulte Resolução de espelhamento a partir da base de dados SQL Fabric.

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

As alterações na capacidade do Fabric ou no espaço de trabalho podem afetar o espelhamento. Para obter mais informações, reveja os efeitos sobre o espelhamento de Alterações na capacidade de malha.

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

Motivo Result Resolução recomendada
Espaço de trabalho excluído O espelhamento para automaticamente e desativa 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á desativado para a base de dados afetada Para garantir que os seus recursos de computação não são afetados e para proteger a sua base de dados Azure SQL de origem, o espelhamento será desativado em quaisquer erros persistentes. Revise sys.dm_change_feed_errors e resolva os erros subjacentes antes de reativar a base de dados para espelhamento.
Configuração "Os utilizadores podem aceder a dados armazenados no OneLake com aplicações externas ao Fabric" desativada "Replicador - As tabelas não podem alcançar o status de replicação" Habilite a configuração Locatário , os utilizadores podem acessar dados armazenados no OneLake com aplicativos externos ao Fabric.

Para cenários adicionais de solução de problemas, consulte Solucionar problemas de bancos de dados espelhados de malha - Microsoft Fabric.

Consultas T-SQL para solução de problemas

Se você estiver enfrentando problemas de espelhamento, execute as seguintes verificações no nível do 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. Se o sys.dm_change_feed_log_scan_sessions Detran não apresentar 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 problemas relatados, execute o procedimento armazenado a seguir para revisar a configuração atual do Banco de Dados SQL do Azure espelhado. Confirme se ele foi ativado corretamente.

    EXEC sp_help_change_feed;
    

    As principais colunas a procurar aqui são as table_name e state. Qualquer valor além 4 indica um problema potencial.

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

    1. No portal do Fabric, selecione o botão "..." opção de reticências no item de banco de dados espelhado.
    2. Selecione a opção Gerenciar permissões .
    3. Confirme que o nome de identidade gerida é apresentado com permissões de Leitura e Gravação.
    4. Certifique-se de que o AppId que aparece corresponde ao ID da identidade gerida do seu servidor lógico Azure SQL Database.
  5. Entre em contato com o suporte se a solução de problemas for necessária.

Identidade gerenciada

Deve estar ativada a Identidade Gerida Atribuída ao Sistema (SAMI) ou a Identidade Gerida Atribuída pelo Utilizador (UAMI) do servidor lógico Azure SQL, e uma delas deve ser a identidade principal.

Observação

O suporte para Identidade Gerida Atribuída pelo Utilizador (UAMI) está atualmente em fase de pré-visualização.

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

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 geridas

Tanto a Identidade Gerida Atribuída ao Sistema (SAMI) como a Identidade Gerida Atribuída pelo Utilizador (UAMI) para o servidor lógico Azure SQL devem ter permissões de Leitura e Escrita no item da base de dados espelhada no Microsoft Fabric.

Quando você cria o banco de dados espelhado a partir do portal de malha, a permissão é concedida automaticamente. Se você encontrar erro Unable to grant required permission to the source server. User does not have permission to reshare durante a instalação, certifique-se de ter uma função de membro ou administrador no espaço de trabalho com privilégio suficiente. Quando usar API ou CI/CD para criar a base de dados espelhada, certifique-se de que concede a permissão explicitamente.

Por favor, não remova as permissões de Leitura e Escrita SAMI e/ou UAMI nos itens da base de dados espelhada do Fabric. Se remover acidentalmente as permissões, o espelhamento do Azure SQL Database não funciona como esperado. Nenhum novo dado pode ser espelhado do banco de dados de origem.

Se remover permissões SAMI e/ou UAMI da base de dados SQL do Azure, ou se as permissões não estiverem configuradas corretamente, consulte os passos descritos na secção do tutorial para configurar.

Erros de permissões obsoletas com logins do Microsoft Entra

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

Os usuários de banco de dados criados usando logons do Microsoft Entra podem sofrer atrasos ao receber 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 visualização atual, os comandos a seguir devem ser usados para resolver esses problemas.

  • Solte o usuário do banco de dados de usuários.
  • Execute DBCC FREESYSTEMCACHE('TokenAndPermUserStore') para limpar 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 de usuários, recrie o usuário com base no login.

Uso do log de transações

O uso do log de transações para um banco de dados ativado para espelhamento pode continuar a aumentar e impedir o truncamento do log. Quando o tamanho do log de transações atinge o limite máximo definido, as gravações no banco de dados falham. Para proteger contra isso, o espelhamento aciona a reconfiguração automática de todo o banco de dados quando o espaço de log usado excede um limite do espaço de log total configurado. Para diagnosticar isso e saber mais sobre a repropagação automática, consulte Repropagação automática para bancos de dados espelhados de malha do Banco de Dados SQL do Azure.

A re-semeadura foi iniciada automaticamente

O Espelhamento de Fabric do Azure SQL Database pode ser reiniciado automaticamente sob determinadas condições, tanto no nível individual da tabela como para todo o banco de dados. Para saber mais, reseed automático para bancos de dados espelhados de malha do Banco de Dados SQL do Azure.