Todos os produtos
Search
Central de documentação

Data Transmission Service:Migrar dados do PolarDB for PostgreSQL para o AnalyticDB for PostgreSQL

Última atualização: Oct 16, 2026

Utilize o Data Transmission Service (DTS) para migrar dados de um cluster PolarDB for PostgreSQL para uma instância AnalyticDB for PostgreSQL. O DTS oferece suporte a migração de schema, migração completa de dados e migração incremental de dados, proporcionando flexibilidade para executar uma migração em lote única ou uma migração contínua com tempo de inatividade reduzido.

Escolher uma estratégia de migração

Selecione a estratégia de migração adequada ao seu cenário antes de configurar a tarefa.

Estratégia

Funcionamento

Quando usar

Migração de schema + migração completa de dados

Copia a estrutura da tabela e todos os dados existentes uma única vez e, em seguida, interrompe o processo

Migração offline com uma janela de manutenção que permite pausar gravações na source

Migração de schema + migração completa de dados + migração incremental de dados

Copia os dados existentes e replica as alterações continuamente

Migração online com tempo de inatividade mínimo

Importante

Caso selecione apenas a migração completa de dados (sem migração incremental), não grave novos dados na instância de source durante a migração. Caso contrário, ocorrerá inconsistência de dados entre os bancos de dados de source e de destino.

Pré-requisitos

Antes de começar, certifique-se de que você possui:

  • Uma instância de destino AnalyticDB for PostgreSQL com mais espaço em disco do que a instância de source PolarDB for PostgreSQL. Consulte {{XREF_0}}.

  • O parâmetro wal_level do cluster de source PolarDB for PostgreSQL definido como logical. Consulte {{XREF_1}}.

  • Um banco de dados criado na instância de destino AnalyticDB for PostgreSQL para receber os dados migrados. Consulte {{XREF_2}}.

Faturamento

Tipo de migração

Taxa de configuração de link

Taxa de transferência de dados

Migração de schema e migração completa de dados

Gratuita

Gratuita

Migração incremental de dados

Cobrada. Consulte {{XREF_3}}.

—

Permissões de conta de banco de dados

Banco de dados

Permissões necessárias

Como conceder

Cluster de source PolarDB for PostgreSQL

Conta privilegiada

{{XREF_4}}

Instância de destino AnalyticDB for PostgreSQL

Permissões de leitura e gravação no banco de dados de destino ou permissão RDS_SUPERUSER

{{XREF_5}} e {{XREF_6}}

Operações SQL suportadas para migração incremental

Operações DML

Operação

Comportamento no destino

INSERT

Replicado conforme o original

UPDATE

Convertido para REPLACE INTO. Se a chave primária for atualizada, será convertido para DELETE + INSERT.

DELETE

Replicado conforme o original

Operações DDL

A migração de DDL está disponível apenas em tarefas criadas após 1º de outubro de 2020.

Importante

Para tarefas criadas antes de 12 de maio de 2023, crie um trigger e uma função no banco de dados de source para capturar informações de DDL antes de configurar a tarefa. Consulte Usar triggers e funções para implementar migração incremental de DDL para PostgreSQL.

Operações DDL suportadas (requer uma conta privilegiada no banco de dados de source):

  • CREATE TABLE e DROP TABLE

  • ALTER TABLE, incluindo: RENAME TABLE, ADD COLUMN, ADD COLUMN DEFAULT, ALTER COLUMN TYPE, DROP COLUMN, ADD CONSTRAINT, ADD CONSTRAINT CHECK e ALTER COLUMN DROP DEFAULT

  • TRUNCATE TABLE (a versão do PostgreSQL de source deve ser 11 ou posterior)

  • CREATE INDEX ON TABLE

Cenários de DDL não suportados:

  • Palavras-chave adicionais, como CASCADE ou RESTRICT, em instruções DDL

  • Instruções DDL em sessões onde SET session_replication_role = replica é executado

  • Instruções DDL executadas chamando uma FUNCTION ou outros métodos

  • Lotes que contêm instruções DML e DDL simultaneamente (o DDL não é migrado)

  • Instruções DDL para objetos não incluídos no escopo da migração

Dados do tipo bit não são suportados durante a migração incremental de dados.

Limitações

Revise as limitações a seguir antes de configurar a tarefa de migração.

Limitações do banco de dados de source

  • As tabelas a serem migradas devem ter uma chave primária ou um índice único não nulo.

  • Se o banco de dados de source tiver transações de longa duração e a tarefa incluir migração incremental, o write-ahead log (WAL) gerado antes do commit dessas transações pode acumular e esgotar o espaço em disco no banco de dados de source.

  • O cluster PolarDB for PostgreSQL deve suportar e ter ativado o Failover de Slot de Replicação Lógica.

    Importante

    Se o cluster de source não suportar Failover de Slot de Replicação Lógica — por exemplo, se o Database Engine for PostgreSQL 14 — um failover de alta disponibilidade (HA) na source poderá causar falha irrecuperável na tarefa de migração.

  • Não execute operações DDL que alterem a estrutura do banco de dados ou da tabela durante a migração de schema ou a migração completa de dados. Caso contrário, a tarefa de migração falhará.

  • Um único dado que exceda 256 MB após uma alteração incremental causará falha irrecuperável na tarefa de migração. Nesse caso, reconfigure a tarefa de migração.

Limitações de escopo

  • Uma única tarefa de migração migra apenas um banco de dados. Configure uma tarefa separada para cada banco de dados adicional.

  • O DTS não oferece suporte a: tabelas de extensão TimescaleDB, tabelas com herança entre schemas ou tabelas com índices únicos baseados em expressões.

  • Schemas criados pela instalação de plugins não podem ser migrados e não aparecem no console durante a configuração da tarefa.

  • O DTS não migra os seguintes tipos de objetos: DATATYPE, SEQUENCE, INDEX, PROCEDURE, FUNCTION, VIEW, OPERATOR, DEFAULT_CONSTRAINT, UK, PK, RULE, DOMAIN, AGGREGATE, EXTENSION, FK e TRIGGER.

  • As tabelas de destino não suportam tabelas AO (append-optimized).

  • Para tabelas particionadas, inclua tanto a tabela pai quanto todas as suas tabelas filhas como objetos de migração. No PostgreSQL, a tabela pai não armazena dados diretamente — todos os dados residem nas tabelas filhas. A omissão das tabelas filhas causa inconsistência de dados.

Limitações de consistência de dados

  • Durante a migração de schema, o DTS migra chaves estrangeiras da source para o destino.

  • Durante a migração completa e a migração incremental de dados, o DTS desativa temporariamente as verificações de restrições e as operações em cascata de chaves estrangeiras no nível da sessão. Se ocorrerem operações de atualização ou exclusão em cascata na source enquanto a tarefa estiver em execução, poderá haver inconsistência de dados.

  • A migração completa de dados utiliza operações INSERT concorrentes, o que causa fragmentação de tabela no destino. Como resultado, o espaço da tabela de destino fica maior do que o da source após a migração completa.

  • Se uma tabela possuir chave primária, a coluna de chave primária no destino deve corresponder à da source. Se a tabela não tiver chave primária, a coluna de chave primária no destino deve corresponder à chave de distribuição.

  • A chave única (incluindo a coluna de chave primária) da tabela de destino deve conter todas as colunas da chave de distribuição.

  • Se os schemas das tabelas de source e de destino forem inconsistentes, ou se você utilizar mapeamento de colunas para uma migração de tabela não completa, os dados das colunas que existem apenas na source serão perdidos.

  • O DTS valida o conteúdo dos dados, mas não valida metadados como sequences. Valide os metadados separadamente após a migração.

Requisitos para migração incremental

Antes de gravar dados no banco de dados de source para migração incremental, execute o seguinte comando em cada tabela a ser migrada:

do language plpgsql $$
declare
  nsp name;
  rel name;
  val int8;
begin
  for nsp,rel in select nspname,relname from pg_class t2 , pg_namespace t3 where t2.relnamespace=t3.oid and t2.relkind='S'
  loop
    execute format($_$select last_value from %I.%I$_$, nsp, rel) into val;
    raise notice '%',
    format($_$select setval('%I.%I'::regclass, %s);$_$, nsp, rel, val+1);
  end loop;
end;
$$;

Substitua schema e table pelo nome real do schema e da tabela. Execute este comando fora do horário de pico e evite operações de bloqueio de tabela durante sua execução.

Execute este comando nos seguintes cenários:

  • Quando a tarefa de migração for executada pela primeira vez.

  • Quando o objeto de migração for um schema e uma nova tabela for criada nesse schema ou uma tabela existente for reconstruída usando RENAME.

Se você ignorar o item de pré-verificação relacionado, o DTS executará automaticamente este comando durante a inicialização da instância.

Tratamento de sequences pós-migração

Após alternar seus negócios para a instância de destino, as sequences não iniciam automaticamente a partir do valor máximo das sequences correspondentes na source. Antes da alternância, consulte os valores máximos das sequences no banco de dados de source e defina-os como valores iniciais no destino.

Execute o seguinte comando no banco de dados de source para obter todos os valores das sequences:

do language plpgsql $$
declare
  nsp name;
  rel name;
  val int8;
begin
  for nsp,rel in select nspname,relname from pg_class t2 , pg_namespace t3 where t2.relnamespace=t3.oid and t2.relkind='S'
  loop
    execute format($_$select last_value from %I.%I$_$, nsp, rel) into val;
    raise notice '%',
    format($_$select setval('%I.%I'::regclass, %s);$_$, nsp, rel, val+1);
  end loop;
end;
$$;

A saída contém instruções SET para todas as sequences no banco de dados de source. Execute apenas as instruções relevantes para sua migração no banco de dados de destino.

Gerenciamento de slots de replicação

Durante a migração incremental, o DTS cria um slot de replicação com o prefixo dts_sync_ no banco de dados de source para replicar logs incrementais dos últimos 15 minutos. Quando uma tarefa de migração falha ou a instância é liberada, o DTS tenta limpar o slot de replicação automaticamente.

A limpeza manual é necessária nos seguintes casos:

  • Você alterou a senha da conta do banco de dados de source durante a migração.

  • Você removeu o endereço IP do DTS da lista de permissões de endereços IP do banco de dados de source durante a migração.

  • Ocorreu um failover no banco de dados de source — faça login no banco de dados secundário para limpar o slot manualmente.

Importante

Se o slot de replicação não for limpo, ele acumulará e consumirá espaço em disco continuamente, o que pode tornar o banco de dados de source indisponível.

Tabelas temporárias

O DTS cria as seguintes tabelas temporárias no banco de dados de source para obter instruções DDL, informações incrementais de estrutura de tabela e dados de heartbeat. Não exclua essas tabelas durante a migração — elas são excluídas automaticamente após a liberação da instância do DTS.

public.dts_pg_class, public.dts_pg_attribute, public.dts_pg_type, public.dts_pg_enum, public.dts_postgres_heartbeat, public.dts_ddl_command, public.dts_args_session e public.aliyun_dts_instance

Configurar uma tarefa de migração

Etapa 1: Abrir a lista de tarefas de migração

Abra a lista de tarefas de migração usando um dos métodos a seguir.

Pelo console do DTS:

  1. Faça login no console do DTS.

  2. No painel de navegação à esquerda, clique em Data Migration.

  3. No canto superior esquerdo, selecione a região onde a instância de migração está localizada.

Pelo console do DMS:

As etapas reais podem variar com base no modo e layout do seu console do DMS. Consulte Console do modo simples e Personalizar o layout e o estilo do console do DMS .
  1. Faça login no console do DMS.

  2. Na barra de menu superior, escolha Data + AI > Data Transmission (DTS) > Data Migration.

  3. À direita de Data Migration Tasks, selecione a região onde a instância de migração está localizada.

Etapa 2: Configurar bancos de dados de source e de destino

Configure os seguintes parâmetros na página de conexão dos bancos de dados de source e de destino.

Categoria Parâmetro Valor ou descrição
— Task Name O DTS gera um nome automaticamente. Insira um nome descritivo para facilitar a identificação. O nome não precisa ser único.
Source Database Select Existing Connection Selecione uma instância de banco de dados já registrada no sistema na lista suspensa para preencher automaticamente os campos de conexão. Se a instância não estiver registrada, preencha os campos manualmente. No console do DMS, este campo chama-se Select a DMS database instance.
Database Type PolarDB for PostgreSQL
Access Method Alibaba Cloud Instance
Instance Region Região onde reside o cluster de source PolarDB for PostgreSQL
Replicate Data Across Alibaba Cloud Accounts No (migração na mesma conta)
Instance ID ID do cluster de source PolarDB for PostgreSQL
Database Name Nome do banco de dados que contém os objetos a serem migrados
Database Account Conta do cluster de source PolarDB for PostgreSQL. Consulte {{XREF_7}}.
Database Password Senha da conta do banco de dados
Destination Database Select Existing Connection Selecione uma instância de banco de dados registrada ou preencha os campos manualmente. No console do DMS, este campo chama-se Select a DMS database instance.
Database Type AnalyticDB for PostgreSQL
Access Method Alibaba Cloud Instance
Instance Region Região onde reside a instância de destino AnalyticDB for PostgreSQL
Instance ID ID da instância de destino AnalyticDB for PostgreSQL
Database Name Nome do banco de dados na instância de destino que receberá os dados migrados
Database Account Conta da instância de destino AnalyticDB for PostgreSQL. Consulte {{XREF_8}}.
Database Password Senha da conta do banco de dados

Após concluir a configuração, clique em Test Connectivity and Proceed na parte inferior da página.

Certifique-se de que os intervalos de endereços IP do service DTS foram adicionados às configurações de segurança (lista de permissões) dos bancos de dados de source e de destino. Consulte Adicionar endereços IP de servidores DTS a uma lista de permissões .

Etapa 3: Configurar objetos de migração

Na página Configure Objects, defina os seguintes parâmetros.

Parâmetro

Descrição

Migration Types

Selecione os tipos de migração adequados ao seu cenário. Consulte Escolher uma estratégia de migração. Se você não selecionar Schema Migration, certifique-se de que o destino já possui o banco de dados e as tabelas alvo.

DDL and DML Operations to Be Synchronized

Selecione as operações SQL para migração incremental no nível da instância. Para configurar no nível da tabela, clique com o botão direito em um objeto de migração na caixa Selected Objects e selecione as operações na caixa de diálogo. Consulte {{XREF_9}}.

Processing Mode of Conflicting Tables

Precheck and Report Errors: Verifica se há tabelas com o mesmo nome no destino. Relata um erro e interrompe a tarefa se um conflito for encontrado. Para resolver conflitos de nomenclatura sem excluir a tabela de destino, use o mapeamento de nomes de objetos. Ignore Errors and Proceed: Ignora a verificação de conflitos. Durante a migração completa, os registros existentes no destino são mantidos. Durante a migração incremental, os registros da source sobrescrevem os registros do destino. Se os schemas das tabelas forem inconsistentes, a migração poderá falhar ou resultar em dados parciais. Use com cautela.

Storage Engine Type

Mecanismo de armazenamento para as tabelas de destino. Padrão: Beam. Disponível apenas quando a versão do kernel do AnalyticDB for PostgreSQL de destino é v7.0.6.6 ou posterior e Schema Migration está selecionado.

Capitalization of Object Names in Destination Instance

Política de distinção entre maiúsculas e minúsculas para nomes de objetos migrados (bancos de dados, tabelas, colunas). Padrão: DTS default policy. Consulte Distinção entre maiúsculas e minúsculas de nomes de objetos no banco de dados de destino.

Source Objects

Clique nos objetos a serem migrados na caixa Source Objects e, em seguida, clique na seta para a direita para movê-los para a caixa Selected Objects. Os objetos de migração são selecionados no nível da tabela.

Selected Objects

Para renomear um único objeto no destino, clique com o botão direito nele na caixa Selected Objects. Consulte Mapeamento individual de colunas de tabela. Para renomear vários objetos de uma só vez, clique em Batch Edit no canto superior direito. Consulte Mapear vários nomes de objetos simultaneamente. Para filtrar linhas com uma cláusula WHERE, clique com o botão direito na tabela e defina a condição. Consulte {{XREF_10}}.

O uso de mapeamento de nomes de objetos pode causar falha na migração de outros objetos que dependem do objeto renomeado.

Etapa 4: Configurar definições avançadas

Clique em Next: Advanced Settings para configurar os seguintes parâmetros.

Parâmetro Descrição
Dedicated Cluster for Task Scheduling Por padrão, o DTS agenda tarefas em um cluster compartilhado. Para um desempenho mais estável, adquira um cluster dedicado para executar tarefas de migração.
Retry Time for Failed Connections Duração durante a qual o DTS tenta reconectar se o banco de dados de source ou de destino estiver inacessível após o início da tarefa. Padrão: 720 minutos. Intervalo: 10–1440 minutos. Defina como mais de 30 minutos. Se o DTS reconectar dentro do período de nova tentativa, a tarefa será retomada automaticamente; caso contrário, a tarefa falhará.
Nota

Para várias instâncias do DTS compartilhando a mesma source ou destino, o tempo de nova tentativa é determinado pela tarefa criada mais recentemente. Haverá cobrança durante o período de nova tentativa.

Retry Time for Other Issues Duração durante a qual o DTS tenta novamente se ocorrer um erro que não seja de conectividade (como uma exceção DDL ou DML). Padrão: 10 minutos. Intervalo: 1–1440 minutos. Defina como mais de 10 minutos. Deve ser menor que Retry Time for Failed Connections.
Enable Throttling for Full Data Migration Limite a carga de leitura/gravação na source e no destino durante a migração completa definindo Queries per second (QPS) to the source database, RPS of Full Data Migration e Data migration speed for full migration (MB/s). Disponível apenas quando Full Data Migration estiver selecionado. O limitador também pode ser ajustado após o início da tarefa.
Enable Throttling for Incremental Data Migration Limite a carga durante a migração incremental definindo RPS of Incremental Data Migration e Data migration speed for incremental migration (MB/s). Disponível apenas quando Incremental Data Migration estiver selecionado. O limitador também pode ser ajustado após o início da tarefa.
Environment Tag Identifique a instância com um rótulo de ambiente para facilitar a identificação. Opcional.
Configure ETL Ative o processamento de extração, transformação e carga (ETL). Selecione Yes para inserir instruções de processamento de dados no editor de código. Consulte Configurar ETL em uma tarefa de migração ou sincronização de dados. Selecione No para pular. Consulte O que é ETL?
Monitoring and Alerting Selecione Yes para configurar um limiar de alerta e destinatários de notificação. O DTS envia alertas se uma migração falhar ou se a latência exceder o limiar. Selecione No para pular.

Etapa 5: Configurar validação de dados

Clique em Next: Data Validation para configurar uma tarefa de validação de dados. Consulte Configurar validação de dados.

Etapa 6: Configurar campos da tabela de destino (opcional)

Clique em Next: Configure Database and Table Fields para definir o Type, a Primary Key Column e a Distribution Key para as tabelas de destino no AnalyticDB for PostgreSQL.

Esta etapa está disponível apenas quando Schema Migration estiver selecionado. Defina Definition Status como All para visualizar e editar todas as tabelas.
  • Primary Key Column: Selecione uma ou mais colunas. Várias colunas formam uma chave primária composta.

  • Distribution Key: Selecione uma ou mais colunas da Primary Key Column. Consulte {{XREF_11}} e {{XREF_12}}.

Etapa 7: Salvar configurações e executar pré-verificação

Clique em Next: Save Task Settings and Precheck.

Para visualizar os parâmetros da API para esta configuração, passe o mouse sobre o botão Next: Save Task Settings and Precheck e clique em Preview OpenAPI parameters .

Antes do início da tarefa de migração, o DTS realiza uma pré-verificação. A tarefa só começa após passar na pré-verificação.

Se a pré-verificação falhar, clique em View Details ao lado do item com falha, corrija o problema e clique em Precheck Again.

Se aparecer um aviso:

  • Para avisos que não podem ser ignorados, corrija o problema subjacente e execute a pré-verificação novamente.

  • Para avisos que podem ser ignorados, clique em Confirm Alert Details > Ignore > OK > Precheck Again para prosseguir. Ignorar avisos pode causar inconsistência de dados.

Etapa 8: Adquirir a instância

  1. Quando a Success Rate atingir 100%, clique em Next: Purchase Instance.

  2. Na página Purchase, defina os seguintes parâmetros.

    Parâmetro

    Descrição

    Resource Group Settings

    Grupo de recursos para a instância. Padrão: grupo de recursos padrão. Consulte O que é Resource Management?

    Instance Class

    Especificação do link de migração que determina a velocidade da migração. Consulte Especificações de link de migração de dados.

  3. Leia e selecione Data Transmission Service (Pay-as-you-go) Service Terms.

  4. Clique em Buy and Start e, em seguida, clique em OK na caixa de diálogo de confirmação.

Verificar status da migração

Após o início da tarefa, monitore seu progresso na página de lista Data Migration Tasks.

  • Apenas migração completa: A tarefa para automaticamente quando a migração completa é concluída. O Status muda para Completed.

  • Inclui migração incremental: A tarefa continua em execução após a migração completa. O Status mostra Running durante a migração incremental.

Antes de alternar seus negócios para a instância de destino:

  1. Verifique se os dados estão consistentes entre a source e o destino.

  2. Valide sequences e outros metadados manualmente — o DTS não valida metadados.

  3. Encerre ou libere a tarefa do DTS, ou use o comando REVOKE para revogar as permissões de gravação do DTS no destino. Isso impede que a recuperação automática do DTS (que funciona por até 7 dias) sobrescreva os dados de destino.

Se a tarefa falhar, o suporte técnico do DTS tentará a recuperação dentro de 8 horas. Durante a recuperação, a tarefa pode ser reiniciada ou ter seus parâmetros ajustados. Apenas os parâmetros da tarefa do DTS são modificados — os parâmetros do banco de dados permanecem inalterados. Consulte {{XREF_13}} .

Próximos passos