Erros conhecidos no serviço de migração para o Servidor Flexível do Banco de Dados do Azure para PostgreSQL

Este artigo contém números de mensagem de erro e as descrições usados na validação de pré-migração.

As tabelas a seguir fornecem uma lista abrangente de códigos de erro para o recurso de serviço de migração no Banco de Dados do Azure para PostgreSQL. Esses códigos de erro ajudam você a solucionar problemas durante o processo de migração. Cada código de erro tem uma mensagem de erro e outros detalhes que fornecem mais contexto e diretrizes para resolver o problema.

Tempos limite da conexão

Sintomas

As falhas de migração geralmente se manifestam por meio de mensagens de erro que indicam problemas de conectividade. Esses problemas podem surgir durante o processo de transferência de dados. Quando essas falhas ocorrem, elas resultam nas seguintes mensagens de erro:

  • servidor fechou a conexão inesperadamente
  • Erro SSL SYSCALL: EOF detectado
  • EOF inesperado na conexão do cliente
  • não foi possível receber dados do cliente: conexão redefinida pelo par

Causa

A causa subjacente desses sintomas é um connection timeout. Isso geralmente ocorre quando o servidor ou o cliente espera receber dados dentro de um determinado período de tempo, mas nenhum dado é enviado ou recebido, levando a conexão a atingir o tempo limite. Os motivos específicos para um tempo limite de conexão podem variar, mas os fatores comuns incluem congestionamento de rede, configurações de rede mal configuradas ou configurações de tempo limite excessivamente agressivas.

No contexto do serviço de migração no Banco de Dados do Azure para PostgreSQL, um tempo limite de conexão entre a origem e o serviço de migração ou entre o serviço de migração e o destino pode interromper o processo de transferência de dados, resultando nos sintomas descritos acima.

Solução

  • Para resolver os problemas de tempo limite de conexão, ajuste os parâmetros TCP nos servidores de origem e de destino da seguinte maneira:

    • tcp_keepalives_idle=10
    • tcp_keepalives_interval=10
    • tcp_keepalives_count=60

Essas configurações ajudam a manter a conexão enviando sondas keepalive para evitar tempos limite devido à inatividade. É importante ressaltar que modificar esses parâmetros TCP não requer uma reinicialização das instâncias do PostgreSQL de origem ou de destino. As alterações podem ser aplicadas dinamicamente, permitindo uma continuação perfeita do serviço sem interromper as operações do banco de dados.

Conexão encerrada por causa do tempo limite de inatividade na transação

Sintomas

  • O serviço de migração encontra uma mensagem de encerramento de conexão.
  • Os logs exibem o erro: terminating connection due to idle-in-transaction timeout.

Causa

Esse erro ocorre quando uma conexão de banco de dados permanece ociosa em uma transação por mais tempo do que o valor especificado no idle_in_transaction_timeout parâmetro. O PostgreSQL encerra automaticamente essas conexões para evitar problemas de bloqueio de recursos.

Solução

  • Defina o idle_in_transaction_timeout parâmetro como 0 para desabilitar o tempo limite durante o processo de migração.
  • Exemplo de comando para aplicar essa configuração:
ALTER SYSTEM SET idle_in_transaction_timeout = 0;
  • Certifique-se de redefinir esse parâmetro para seu valor original após a migração para manter o desempenho do banco de dados e evitar conexões ociosas prolongadas.

Esgotamento de memória compartilhada

Sintomas

O processo de migração é interrompido inesperadamente. Os logs exibem o erro: out of shared memory.

Causa

Esse erro indica que o PostgreSQL esgotou a memória compartilhada alocada para bloqueios. Normalmente, ocorre quando o processo de migração envolve muitos bloqueios além da configuração atual do parâmetro max_locks_per_transaction.

Solução

  • Aumente o valor do parâmetro max_locks_per_transaction para comportar os outros bloqueios necessários durante o processo de migração.
  • Exemplo de comando para modificar essa configuração: ALTER SYSTEM SET max_locks_per_transaction = <<>>;
  • Certifique-se de que, max_locks_per_transaction * max_connections > Number of tables + Number of indexes
  • Se o problema persistir, considere aumentar o parâmetro shared_buffers para garantir que haja memória compartilhada suficiente disponível para o gerenciamento de bloqueios.

Uso de CREATE TYPE

Sintomas

O processo de migração é interrompido inesperadamente. Os logs exibem o erro: pg_restore: error: could not execute query: ERROR: must be superuser to create a base type .

Causa

Para criar um novo tipo base, você deve ser um superusuário (essa restrição é feita porque uma definição de tipo errônea pode confundir ou até mesmo falhar o servidor).

Solução

  • O tipo base personalizado deve ser excluído e/ou substituído por um tipo base reconhecido.
  • Mais detalhes aqui.

Códigos de erro de migração

Código de erro Mensagem de erro Solução
603000 Falha na conexão. A conexão com o servidor {serverName} não foi bem-sucedida. Verifique se o servidor de origem pode ser acessado a partir do servidor de destino ou de tempo de execução. Consulte o guia de rede para depurar problemas de conectividade.
603001 Erro de configuração SSL. O servidor {serverName} não suporta SSL. Verifique as configurações de SSL. Defina o modo SSL como preferir e repetir a migração. Consulte o guia de rede para depurar problemas de conectividade.
603100 Falha na autenticação. A senha do servidor {serverName} está incorreta. Digite a senha correta e tente novamente a migração. N/A
603101 O banco de dados existe no destino. O banco de dados {dbName} existe no servidor de destino. Verifique se o servidor de destino não tem o banco de dados e repita a migração. N/A
603102 Banco de dados de origem não encontrado. O banco de dados {dbName} não existe no servidor de origem. Forneça um banco de dados válido e repita a migração. N/A
603103 Função do Microsoft Entra não encontrada. A função {roleNames} do Microsoft Entra está ausente no servidor de destino. Crie a função Entra e repita a migração. N/A
603104 Função de replicação ausente. O usuário {0} não tem a função de replicação no servidor {1}. Conceda a função de replicação antes de repetir a migração. Use ALTER ROLE <rolename> WITH REPLICATION; para conceder a permissão necessária.
603105 Erro de configurações do GUC. Slots de replicação insuficientes no servidor de origem para migração. Aumente o max_replication_slots parâmetro GUC para {0} ou superior. O servidor de origem não tem slots de replicação suficientes disponíveis para executar a migração online. Use essa consulta SELECT * FROM pg_replication_slots WHERE active = false AND slot_type = 'logical'; para obter a lista de slots de replicação inativos e descartá-los usando SELECT pg_drop_replication_slot('slot_name'); antes de iniciar a migração. Como alternativa, defina o parâmetro 'max_replication_slots' como {0} ou superior. Certifique-se de que o max_wal_senders parâmetro também seja alterado para ser maior ou igual ao max_replication_slots' parameter.
603106 Erro de configurações do GUC. O max_wal_senders parâmetro GUC é definido como {0}. Verifique se ele corresponde ou excede o valor de 'max_replication_slots'. N/A
603107 Erro de configurações do GUC. O parâmetro de nível WAL do servidor de origem é definido como {0}. Defina o nível WAL do parâmetro GUC como 'lógico'. N/A
603108 Lista de permissões de extensões necessária. As extensões {0} não puderam ser instaladas no servidor de destino porque não estão na lista de permissões. Adicione as extensões à lista de permissões e tente a migração novamente. Defina a lista de permissões seguindo as etapas mencionadas em Extensões do PostgreSQL.
603109 Erro de configuração de bibliotecas de pré-carregamento compartilhadas. Adicione as extensões permitidas {0} a 'shared_preload_libraries' no servidor de destino e tente a migração novamente. Defina as bibliotecas de pré-carregamento compartilhadas seguindo as etapas mencionadas em Extensões do PostgreSQL. Isso requer uma reinicialização do servidor.
603110 Privilégios insuficientes. O usuário de migração não tem as permissões necessárias para acesso ao banco de dados. Verifique se o usuário de migração é proprietário dos bancos de dados de origem e tem privilégios de leitura e gravação e repita a migração. N/A
603111 Falha na limpeza do banco de dados de destino. Não é possível encerrar conexões ativas no banco de dados de destino durante a fase de pré-migração. Conceda a role pg_signal_backend ao usuário de migração e repita a migração. Adicione a função pg_signal_backend ao usuário de migração usando o comando "GRANT pg_signal_backend to <migration_user>"
603112 Erro de configurações do GUC. Falha ao definir o parâmetro GUC default_transaction_read_only para desativado. Verifique se o acesso de gravação do usuário está definido corretamente e repita a migração. Defina 'default_transaction_read_only' como OFF no servidor de origem por meio do portal do Azure ou por meio do comando psql (por exemplo, ALTER SYSTEM SET default_transaction_read_only = off).
603113 Falha na substituição. A transição não pode ser iniciada para o banco de dados "{dbName}", pois a migração já está com o status Concluído/Falhou/Cancelado. N/A
603114 Falha na substituição. A transição não pode ser iniciada para o banco de dados "{dbName}" no modo de migração offline. N/A
603115 Permissões de usuário insuficientes. O usuário de migração '{0}' não é membro da função azure_pg_admin. Adicione os privilégios necessários no servidor de destino e repita a migração. N/A
603116 Permissões de usuário insuficientes. O usuário de migração '{0}' não tem o privilégio para criar funções. Adicione os privilégios necessários no servidor de destino e repita a migração. Execute a consulta ALTER ROLE <rolename> WITH CREATEROLE; no servidor de destino.
603117 Permissões de usuário insuficientes. O usuário de migração '{0}' não tem os privilégios necessários para excluir o banco de dados '{dbName}' no servidor de destino. Remova o banco de dados manualmente do servidor de destino e repita a migração. N/A
603400 Versão de origem sem suporte. A migração das versões do PostgreSQL abaixo {0} não é suportada. Você deve usar outro método de migração.
603401 Incompatibilidade do agrupamento. O agrupamento {0} no banco de dados {1} não está disponível no servidor de destino. N/A
603402 Incompatibilidade do agrupamento. O agrupamento {0} da tabela {1} na coluna {2} não está presente no servidor de destino. Entre em contato com o suporte da Microsoft para adicionar os agrupamentos necessários.
603403 Incompatibilidade do agrupamento. O banco de dados de origem contém agrupamentos definidos pelo usuário. Descarte esses agrupamentos e repita a migração. N/A
603404 Foram detectados OIDs não suportados. Tabelas com 'WITH OIDs' detectadas no banco de dados {0}. Eles não são compatíveis com o PostgreSQL versão 12 e posterior. Visite notas de versão do PostgreSQL.
603405 Extensões não suportadas. O serviço de migração não dá suporte à migração de bancos de dados com {0} extensões no servidor de destino. N/A
603406 Extensões não suportadas. O PostgreSQL de destino {0} oferece suporte à versão 3.2.3 do POSTGIS, que é incompatível com a {1} de origem. Recomende a atualização do servidor de destino para a versão 11. Visite Alterações revolucionárias no PostGIS.
603407 Erro de esquema de extensão. As extensões {0} localizadas no esquema do sistema no servidor de origem não têm suporte no servidor de destino. Solte e recrie as extensões em um esquema que não seja do sistema e, em seguida, repita a migração. Visite Extensões do PostgreSQL.
603408 Extensões não suportadas. A versão 16 do servidor de destino não oferece suporte a {0} extensões. Migre para a versão 15 ou inferior e atualize assim que as extensões forem suportadas. N/A
603409 Há conversões de tipo definidas pelo usuário. O banco de dados de origem {0} contém conversões definidas pelo usuário que não podem ser migradas para o servidor de destino. N/A
603410 Erro de permissão da tabela do sistema. Os usuários têm acesso a tabelas do sistema, como pg_authid e pg_shadow, que não podem ser migradas para o destino. Revogue essas permissões e repita a migração. Validar as permissões padrão concedidas a pg_catalog tabelas/exibições (como pg_authid e pg_shadow) é essencial. No entanto, essas permissões não podem ser atribuídas ao destino. Especificamente, o usuário {1} possui {2} permissões, enquanto o usuário {3} possui {4} permissões. Para obter uma solução alternativa, visite Usuário, Funções e Permissões
603413 Idioma(s) não suportado(s). O serviço de migração não oferece suporte à migração de bancos de dados com {0} idiomas no servidor de destino. Remova o(s) idioma(s) e sua(s) função(ões) implementada(s). O servidor de destino não oferece suporte aos idiomas sem suporte. Tente desabilitar ou remover o respectivo idioma no servidor de origem antes de migrar para o servidor de destino.
603700 Falha na limpeza do banco de dados de destino. Não é possível encerrar conexões ativas no banco de dados de destino durante a fase de pré-migração/pós-migração. N/A
603701 Erro interno do servidor. Falha ao criar funções no servidor de destino. Entre em contato com o suporte da Microsoft para obter uma análise mais aprofundada.
603702 Erro interno do servidor. Falha no despejo de funções do servidor de origem. Entre em contato com o suporte da Microsoft para obter uma análise mais aprofundada.
603703 Erro interno do servidor. Falha na edição do arquivo de despejo de função global. Entre em contato com o suporte da Microsoft para obter uma análise mais aprofundada.
603704 Erro interno do servidor. Falha na transformação de todas as funções de origem um membro do usuário de migração de destino. Entre em contato com o suporte da Microsoft para obter uma análise mais aprofundada.
603705 Erro interno do servidor. Não foi possível restaurar as permissões concedidas/revogadas. Entre em contato com o suporte da Microsoft para obter uma análise mais aprofundada.
603706 Erro interno do servidor. Falha na limpeza do usuário de migração do servidor de destino. Seu usuário de migração de destino pode fazer parte de várias funções. Remova todas as funções desnecessárias do usuário de migração do servidor de destino e repita a migração. Entre em contato com o suporte da Microsoft para obter uma análise mais aprofundada.
603707 Erro interno do servidor. Falha ao conceder azure_pg_admin ao usuário administrador do servidor de origem. Entre em contato com o suporte da Microsoft para obter uma análise mais aprofundada.
603708 Erro interno do servidor. Falha na alteração do proprietário do esquema público para azure_pg_admin no banco de dados "{dbName}". Altere o proprietário do esquema público para azure_pg_admin manualmente e repita a migração. Entre em contato com o suporte da Microsoft para obter uma análise mais aprofundada.
603709 Falha na configuração da migração. Entre em contato com o suporte da Microsoft para obter uma análise mais aprofundada.