Compartilhar via


Solucionar problemas de bancos de dados espelhados do Fabric do servidor flexível do Banco de Dados do Azure para PostgreSQL

Este artigo aborda as etapas de solução de problemas para espelhar o servidor flexível do Banco de Dados do Azure para PostgreSQL.

Solucionar problemas de mensagens de erro/aviso durante a seleção da tabela para espelhamento

Ao criar um novo banco de dados espelhado, na página Escolher dados , você poderá receber alguns comentários visuais sobre tabelas específicas no banco de dados de origem. A tabela a seguir fornece uma lista de possíveis problemas, incluindo a mensagem exibida e a descrição relacionada sobre como resolver o problema.

Código de status Tipo de status Message Description
SCHEMA_DOES_NOT_EXIST ERRO O esquema {} não existe Determinado esquema não existe. Poderia ter sido removido enquanto Fabric estava puxando informações relevantes da tabela. Repita.
TABLE_DOES_NOT_EXIST ERRO No esquema {}, a tabela {} não existe. Determinada tabela não existe. Poderia ter sido removido enquanto Fabric estava puxando informações relevantes da tabela. Repita.
FORBIDDEN_CHARS_IN_COLUMN_NAME ERRO Tabela {}.{} contém caracteres proibidos em nome de colunas {} Determinada coluna tem caractere sem suporte no nome. 1
UNSUPPORTED_DATA_TYPE ERRO Tabela {}.{} tem tipo de dados sem suporte na coluna {} Uma (ou mais) colunas da tabela têm tipos de dados sem suporte no momento. 3
FORBIDDEN_CHARS_IN_TABLE_NAME ERRO Tabela {}.{} contém caracteres proibidos no nome O nome da tabela tem caracteres sem suporte. 1
NOT_REGULAR_TABLE ERRO Table {}.{} não é uma tabela regular Não há suporte para o tipo de tabela para espelhamento. 2
HAS_PRIMARY_KEY OKEY Tabela {}.{} tem uma chave primária A tabela é uma tabela regular e tem uma chave primária válida usada para espelhamento.
HAS_UNIQUE_INDEX OKEY Tabela {}.{} tem um índice exclusivo adequado A tabela não tem uma chave primária, mas tem um índice exclusivo que deve ser usado para espelhamento.
NO_INDEX_FULL_IDENTITY AVISO A tabela {}.{} não tem um índice exclusivo adequado. Usando a identidade completa A tabela não tem uma chave primária ou um índice exclusivo, portanto REPLICA IDENTITY FULL , é necessário dar suporte ao espelhamento, o que pode causar problemas de desempenho.

1 Não há suporte para identificadores de objeto com um caractere de espaço (' ').

2 Este tipo de tabela não tem suporte para espelhamento. Atualmente, não há suporte para exibições, exibições materializadas, tabelas estrangeiras e tabelas particionadas.

3 Para obter uma lista de tipos de dados sem suporte, consulte Limitações. Há suporte apenas para colunas com os seguintes tipos:

  • bigint
  • bigserial
  • boolean
  • bytea
  • character
  • character varying
  • date
  • double precision
  • integer
  • numeric
  • real
  • serial
  • oid
  • money
  • smallint
  • smallserial
  • text
  • time without time zone
  • time with time zone (* não como uma chave primária)
  • timestamp without time zone
  • timestamp with time zone
  • uuid

No Postgres, dois valores de "fuso horário com fuso horário" que correspondem exatamente ao mesmo momento, mas em fusos horários diferentes, são considerados diferentes. Por exemplo: 06:24:00.59+05 e 05:24:00.59+04 correspondem ao mesmo tempo de época, mas o Postgres os trata de forma diferente.

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

Motivo Resultado Resolução recomendada
Capacidade da malha pausada/excluída Paradas de espelhamento 1. Retomar ou atribuir capacidade do portal do Azure
2. Vá para o item de banco de dados espelhado do Fabric. Na barra de ferramentas, selecione Parar replicação.
3. Inicie a replicação selecionando o banco de dados Espelho para o item espelhado no portal do Fabric.
Capacidade da malha retomada O espelhamento não será retomado 1. Vá para o item de banco de dados espelhado do Fabric. Na barra de ferramentas, selecione Parar replicação.
2. Inicie a replicação selecionando o banco de dados Espelho para o item espelhado no portal do Fabric.
Área de trabalho excluída O espelhamento é interrompido automaticamente Se o espelhamento ainda estiver ativo no servidor flexível do Banco de Dados do Azure para PostgreSQL, conecte-se usando um administrador de servidor e execute os seguintes comandos no servidor PostgreSQL: select azure_cdc.list_tracked_publications();, em seguida, use o nome da publicação retornado e execute select azure_cdc.stop_publication(<publication_name>);
A capacidade de avaliação do fabric expirou O espelhamento é interrompido automaticamente Veja a capacidade de avaliação do Fabric expirar.
Capacidade de malha excedida Pausas de espelhamento Aguarde até que o estado de sobrecarga seja superior ou atualize sua capacidade. Saiba mais em Ações que você pode executar para se recuperar de situações de sobrecarga. O espelhamento continua quando a capacidade é recuperada.
Quaisquer outros erros de recursos O espelhamento está desabilitado Para garantir que os recursos de computação não sejam afetados e minimizar o impacto no servidor flexível do Banco de Dados do Azure para PostgreSQL, o espelhamento desabilita quaisquer erros de recurso persistentes.
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.

Consultas SQL para solução de problemas

Se você estiver enfrentando problemas de espelhamento, execute as verificações de nível de servidor a seguir usando exibições e funções do sistema para validar a configuração.

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

    select * from azure_cdc.tracked_publications;
    

    Verifique se a publicação está ativa e se o instantâneo foi gerado. Você também pode verificar se os lotes de alteração subsequentes foram gerados consultando:

    select * from azure_cdc.tracked_batches;
    
  2. Se a exibição azure_cdc.tracked_publications não mostrar nenhum progresso no processamento de alterações incrementais, execute a seguinte consulta SQL para verificar se há algum problema relatado:

    SELECT * FROM pg_stat_activity WHERE state = 'idle in transaction';
    
  3. Se não houver nenhum problema relatado, execute o comando a seguir para examinar a configuração atual do banco de dados PostgreSQL espelhado. Confirme se ele foi habilitado corretamente.

    SELECT * FROM pg_replication_slots;
    

    As colunas de chave a serem procuradas aqui são slot_name e active. Qualquer valor além t (true) indica um possível problema.

  4. Entre em contato com o suporte se a solução de problemas for necessária.

Identidade gerenciada

A SAMI (Identidade Gerenciada Atribuída pelo Sistema) do servidor flexível do Banco de Dados do Azure para PostgreSQL precisa ser habilitada e deve ser a identidade primária. Para obter mais informações, consulte a identidade gerenciada atribuída pelo sistema para o servidor flexível postgreSQL.

Após a habilitação, se o status de configuração do SAMI for desabilitado posteriormente e habilitado novamente, o espelhamento do servidor flexível do Banco de Dados do Azure para PostgreSQL para o Fabric OneLake falhará.

Verifique se o SAMI está habilitado com a seguinte consulta: show azure.service_principal_id;

Permissões SAMI

Não remova as permissões de colaborador do SAMI (System Assigned Managed Identity) do servidor flexível do Banco de Dados do Azure para PostgreSQL no item de banco de dados espelhado do Fabric.

Se você remover permissões SAMI acidentalmente, o servidor flexível do Banco de Dados do Azure para PostgreSQL não funcionará conforme o esperado. Nenhum dado novo pode ser espelhado do banco de dados de origem.

Se você remover permissões sami de servidor flexível do Banco de Dados do Azure para PostgreSQL ou permissões não estiverem configuradas corretamente, use as etapas a seguir.

  1. Adicione o SAMI do servidor flexível como um usuário selecionando a opção ... de reticências no item de banco de dados espelhado.
  2. Selecione a opção Gerenciar Permissões .
  3. Insira o nome do servidor flexível do Banco de Dados do Azure para PostgreSQL. Forneça permissões de leitura e gravação.