Todos os produtos
Search
Central de documentação

Data Transmission Service:Sincronização unidirecional entre clusters do PolarDB for PostgreSQL (Compatible with Oracle)

Última atualização: Jul 10, 2026

Use o Data Transmission Service (DTS) para configurar um pipeline de dados contínuo e unidirecional de um cluster de origem PolarDB for PostgreSQL (Compatible with Oracle) para um cluster de destino. O pipeline abrange a sincronização de schema, a carga completa de dados e a captura de alterações incrementais (CDC) por meio da replicação lógica do PostgreSQL.

Pré-requisitos

Antes de começar, verifique se você tem:

Importante

Se o Database Engine do cluster de origem for Oracle syntax compatible 2.0, ele não oferece suporte ao Logical Replication Slot Failover. Um failover de alta disponibilidade (HA) nesse tipo de cluster faz com que a instância de sincronização falhe e se torne irrecuperável.

Faturamento

Tipo de sincronização

Preço

Sincronização de schema e sincronização completa de dados

Gratuito

Sincronização incremental de dados

Pago. Para mais informações, consulte Visão geral do faturamento

Objetos de sincronização suportados

Objeto

Detalhes

SCHEMA, TABLE

Inclui PRIMARY KEY, UNIQUE KEY, FOREIGN KEY, tipos de dados integrados e DEFAULT CONSTRAINT

VIEW, PROCEDURE

Requer PostgreSQL versão 11 ou posterior. O suporte varia conforme o tipo de banco de dados de destino — verifique o console para obter detalhes

Operações SQL suportadas

Tipo de operação

Instruções

DML

INSERT, UPDATE, DELETE

DDL

CREATE TABLE, DROP TABLE

DDL

ALTER TABLE — inclui RENAME TABLE, ADD COLUMN, ADD COLUMN DEFAULT, ALTER COLUMN TYPE, DROP COLUMN, ADD CONSTRAINT, ADD CONSTRAINT CHECK, ALTER COLUMN DROP DEFAULT

DDL

CREATE INDEX ON TABLE

As instruções DDL não são sincronizadas nos seguintes cenários:

  • A instrução contém CASCADE ou RESTRICT

  • Uma transação contém instruções DML e DDL simultaneamente

  • Apenas parte das instruções DDL de uma transação está dentro do escopo de sincronização

  • A instrução DDL é executada a partir de uma sessão criada por SET session_replication_role = replica

  • A instrução DDL é executada via chamada de FUNCTION

  • Nenhum schema está definido na instrução DDL (nesse caso, o schema public é usado conforme SHOW search_path)

  • A instrução DDL contém IF NOT EXISTS

Permissões de conta de banco de dados

Banco de dados

Permissão necessária

Como criar e conceder

Cluster de origem PolarDB for PostgreSQL (Compatible with Oracle)

Conta privilegiada

Criar uma conta de banco de dados

Cluster de destino PolarDB for PostgreSQL (Compatible with Oracle)

Proprietário do banco de dados

Criar uma conta de banco de dados e Gerenciamento de banco de dados. O proprietário do banco de dados é especificado durante a criação do banco de dados

Limitações

Revise estas limitações antes de iniciar. Algumas restrições exigem ação no banco de dados de origem antes da configuração do DTS.

Limitações do banco de dados de origem

Largura de banda O servidor que hospeda o banco de dados de origem deve ter largura de banda de saída suficiente. Largura de banda insuficiente reduz a velocidade de sincronização.

Tabelas sem chave primária ou restrição UNIQUE Ative o recurso Exactly-Once write ao configurar a tarefa. Sem isso, dados duplicados podem aparecer no banco de dados de destino. Para mais informações, consulte Sincronizar tabelas sem chaves primárias e restrições únicas.

Mais de 1.000 tabelas com mapeamento de nomes Se os objetos de sincronização forem tabelas com mapeamento de nomes de tabela ou coluna aplicado, e uma única tarefa exceder 1.000 tabelas, divida as tabelas em várias tarefas ou configure a tarefa para sincronizar todo o banco de dados. Exceder esse limite pode causar um erro de solicitação ao enviar a tarefa.

Retenção de WAL Ative o WAL e defina o período de retenção com base nos tipos de sincronização da sua tarefa:

  • Apenas sincronização incremental: retenha logs WAL por mais de 24 horas

  • Sincronização completa e incremental: retenha logs WAL por pelo menos 7 dias. Após a conclusão da sincronização completa, defina o período de retenção para mais de 24 horas

Se o DTS não conseguir obter logs WAL, a tarefa falhará. Em casos extremos, pode ocorrer inconsistência ou perda de dados. Problemas causados por um período de retenção de WAL inferior ao requisito do DTS não são cobertos pelo Acordo de Nível de Serviço (SLA).

Transações de longa duração Transações de longa duração fazem com que o WAL acumule até que essas transações sejam confirmadas. Isso pode esgotar o espaço em disco no banco de dados de origem durante a sincronização incremental.

Operações DDL durante a sincronização Não execute operações DDL que alterem a estrutura do banco de dados ou da tabela durante a sincronização de schema ou a sincronização completa de dados. Essa ação causa falha na tarefa.

Gravações durante sincronização apenas completa Não grave novos dados no cluster de origem se a tarefa executar apenas a sincronização completa de dados. Isso resultará em inconsistência de dados. Para manter a consistência em tempo real, inclua a sincronização de schema, a sincronização completa de dados e a sincronização incremental de dados na tarefa.

Único dado incremental maior que 256 MB Se um único dado exceder 256 MB após uma alteração incremental, a instância de sincronização poderá falhar e não será recuperável. Reconfigure a instância de sincronização.

Outras limitações

Um banco de dados por tarefa Uma única tarefa de sincronização pode sincronizar apenas um banco de dados. Configure uma tarefa separada para cada banco de dados adicional.

Objetos não suportados 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 sincronizados e não aparecem no console durante a configuração da tarefa.

Campos do tipo SERIAL Se uma tabela contiver um campo de tipo de dados SERIAL, o banco de dados de origem cria automaticamente uma sequence para esse campo. Ao configurar os Source Objects, se você selecionar Schema Synchronization como tipo de sincronização, selecione também Sequence ou sincronize todo o schema. Caso contrário, a instância de sincronização poderá falhar.

Requisito REPLICA IDENTITY FULL Execute o seguinte comando em cada tabela a ser sincronizada no banco de dados de origem antes de gravar dados nela. Isso garante a consistência dos dados. Não bloqueie as tabelas durante a execução deste comando para evitar deadlocks.

ALTER TABLE schema.table REPLICA IDENTITY FULL;

Substitua schema e table pelos nomes reais do schema e da tabela. Execute este comando fora do horário de pico.

Este comando é necessário nos seguintes cenários:

  • Na primeira execução da instância

  • Você selecionou granularidade no nível de schema para seleção de objetos, e uma nova tabela é criada no schema ou uma tabela existente é reconstruída usando o comando RENAME

  • Você usa o recurso de modificar objetos de sincronização

Se você ignorar os itens de pré-verificação relacionados, o DTS executa automaticamente este comando durante a inicialização da instância.

Tabelas temporárias no banco de dados de origem O DTS cria as seguintes tabelas temporárias no banco de dados de origem para obter instruções DDL, estruturas de tabelas incrementais e informações de heartbeat. Não exclua essas tabelas durante a sincronização — excluí-las torna a tarefa anormal. O DTS exclui automaticamente essas tabelas após a liberação da instância:

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, public.aliyun_dts_instance

Tabela de heartbeat O DTS adiciona uma tabela de heartbeat chamada dts_postgres_heartbeat ao banco de dados de origem para manter métricas precisas de latência de sincronização incremental.

Slot de replicação O DTS cria um slot de replicação com o prefixo dts_sync_ no banco de dados de origem. Este slot retém logs incrementais dos últimos 15 minutos. Quando a tarefa de sincronização falha ou a instância é liberada, o DTS tenta limpar o slot automaticamente.

Importante

Se você alterar a senha da conta do banco de dados de origem ou remover o endereço IP do DTS da lista de permissões do banco de dados de origem durante a sincronização, o slot de replicação não poderá ser limpo automaticamente. Limpe manualmente o slot de replicação no banco de dados de origem para evitar acúmulo de espaço em disco, o que pode tornar o banco de dados de origem indisponível. Se ocorrer um failover no banco de dados de origem, faça login no banco de dados secundário para limpar manualmente o slot.

Amazon slot查询信息

Sequences após alternância de negócios Após alternar seus negócios para a instância de destino, as sequences não continuam a partir do valor máximo na origem. Atualize o valor da sequence no banco de dados de destino antes da alternância de negócios. Para mais informações, consulte Atualizar o valor da sequence no banco de dados de destino.

Impacto de desempenho da sincronização completa A sincronização completa de dados executa operações INSERT simultâneas, o que consome recursos de leitura e gravação nos bancos de dados de origem e de destino e causa fragmentação de tabela no destino. O espaço da tabela de destino será maior que o da origem após a sincronização completa. Avalie o desempenho antes de sincronizar e execute fora do horário de pico, quando a carga de CPU de ambos os bancos de dados estiver abaixo de 30%.

Precisão FLOAT e DOUBLE O DTS lê valores FLOAT e DOUBLE usando ROUND(COLUMN, PRECISION). Se nenhuma precisão explícita for definida, o DTS usa uma precisão padrão de 38 para FLOAT e 308 para DOUBLE. Verifique se essa precisão atende aos seus requisitos de negócios.

Recuperação automática do DTS O DTS tenta recuperar automaticamente tarefas com falha por até sete dias. Antes de alternar seus negócios para a instância de destino, encerre ou libere a tarefa, ou use o comando REVOKE para revogar as permissões de gravação da conta do DTS na instância de destino. Sem essa etapa, a recuperação automática pode fazer com que os dados de origem substituam os dados do destino após a alternância.

Chaves estrangeiras, triggers e event triggers Para tarefas de sincronização completa ou incremental envolvendo tabelas com chaves estrangeiras, triggers ou event triggers, o DTS define temporariamente session_replication_role como replica no nível da sessão:

  • Se a conta do banco de dados de destino for uma conta privilegiada ou tiver permissões de superusuário, o DTS define isso automaticamente

  • Se a conta de destino não tiver essas permissões, defina manualmente session_replication_role como replica no banco de dados de destino antes da execução da tarefa

Durante esse período, operações de atualização ou exclusão em cascata no banco de dados de origem podem causar inconsistência de dados. Após a liberação da tarefa do DTS, defina session_replication_role de volta para origin.

Sincronização de schema e chaves estrangeiras Durante a sincronização de schema, o DTS sincroniza chaves estrangeiras da origem para o destino. Durante a sincronização completa e incremental, o DTS desativa temporariamente as verificações de restrição e operações em cascata de chave estrangeira no nível da sessão. Pode ocorrer inconsistência de dados se operações de atualização ou exclusão em cascata forem executadas na origem enquanto a tarefa estiver ativa.

Recuperação de falha de tarefa Se uma tarefa falhar, a equipe de suporte do DTS tentará restaurá-la dentro de oito horas. Durante a restauração, eles podem reiniciar a tarefa ou ajustar parâmetros da tarefa do DTS (não parâmetros do banco de dados). Os parâmetros que podem ser ajustados estão listados em Modificar parâmetros da instância.

Tabelas particionadas Inclua tanto a tabela pai quanto todas as suas partições filhas como objetos de sincronização. Tabelas particionadas do PostgreSQL armazenam dados apenas nas partições filhas, não na tabela pai. Se as partições filhas forem excluídas, seus dados não serão sincronizados, resultando em inconsistência de dados.

Configurar uma tarefa de sincronização unidirecional

Etapa 1: Acessar a lista de tarefas de sincronização de dados

Acesse a lista de tarefas de sincronização da sua região de destino usando um dos seguintes consoles.

Console do DTS

  1. Faça login no console do DTS.console do DTS

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

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

Console do DMS

As etapas reais podem variar com base no modo e layout do console do DMS. Para mais informações, consulte

Console do modo simples

e

Personalizar o layout e o estilo do console do DMS

.

  1. Faça login no console do DMS.console do DMS

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

  3. À direita de Data Synchronization Tasks, selecione a região da instância de sincronização.

Etapa 2: Criar uma tarefa e configurar conexões de banco de dados

  1. Clique em Create Task.

  2. Configure os bancos de dados de origem e de destino usando os seguintes parâmetros.

Configurações da tarefa

Parâmetro

Descrição

Task Name

O DTS gera um nome automaticamente. Especifique um nome descritivo para facilitar a identificação. O nome não precisa ser exclusivo

Banco de dados de origem

Parâmetro

Descrição

Select Existing Connection

Selecione uma instância de banco de dados registrada na lista suspensa para preencher automaticamente os detalhes da conexão. Se você não registrou a instância, configure os campos abaixo manualmente. No console do DMS, este campo é rotulado como Select a DMS database instance

Database Type

Selecione PolarDB (Compatible with Oracle)

Access Method

Selecione Alibaba Cloud Instance

Instance Region

Selecione a região onde o cluster de origem reside

Replicate Data Across Alibaba Cloud Accounts

Selecione No se o cluster de origem pertencer à conta atual da Alibaba Cloud

Instance ID

Selecione o ID do cluster de origem

Database Name

Insira o nome do banco de dados de origem que contém os objetos a serem sincronizados

Database Account

Insira a conta do banco de dados. Para requisitos de permissão, consulte Permissões de conta de banco de dados

Database Password

Insira a senha da conta do banco de dados

Banco de dados de destino

Parâmetro

Descrição

Select Existing Connection

Selecione uma instância de banco de dados registrada na lista suspensa. Se você não registrou a instância, configure os campos abaixo manualmente. No console do DMS, este campo é rotulado como Select a DMS database instance

Database Type

Selecione PolarDB (Compatible with Oracle)

Access Method

Selecione Alibaba Cloud Instance

Instance Region

Selecione a região onde o cluster de destino reside

Instance ID

Selecione o ID do cluster de destino

Database Name

Insira o nome do banco de dados de destino que receberá os dados

Database Account

Insira a conta do banco de dados. Para requisitos de permissão, consulte Permissões de conta de banco de dados

Database Password

Insira a senha da conta do banco de dados

  1. Clique em Test Connectivity and Proceed.

Adicione os blocos CIDR dos servidores DTS às configurações de segurança dos bancos de dados de origem e de destino, automaticamente ou manualmente, para permitir o acesso. Para mais informações, consulte Adicionar a lista de permissões de endereços IP dos servidores DTS .
Se a origem ou o destino for um banco de dados autogerenciado (ou seja, Access Method não é Alibaba Cloud Instance ), clique também em Test Connectivity na caixa de diálogo CIDR Blocks of DTS Servers .

Etapa 3: Configurar objetos de sincronização

  1. Na página Configure Objects, configure as seguintes definições.

Parâmetro

Descrição

Synchronization Types

O DTS sempre seleciona Incremental Data Synchronization. Por padrão, selecione também Schema Synchronization e Full Data Synchronization. Após a aprovação da pré-verificação, o DTS inicializa o cluster de destino com os dados completos dos objetos de origem selecionados como linha de base para a sincronização incremental

Synchronization Topology

Selecione One-way Synchronization

Processing Mode of Conflicting Tables

Precheck and Report Errors (padrão): verifica se há tabelas com os mesmos nomes no banco de dados de destino. Se alguma for encontrada, um erro é relatado durante a pré-verificação e a tarefa não inicia. Para resolver o conflito sem excluir ou renomear a tabela, mapeie-a para um nome diferente no destino. Para mais informações, consulte Mapeamento de nomes de colunas de tabelas de banco de dados. Ignore Errors and Proceed: ignora a verificação de nomes iguais. Use com cautela — selecionar esta opção pode causar inconsistência de dados: durante a sincronização completa, o DTS retém o registro de destino e ignora o registro de origem quando os valores de chave primária ou única entram em conflito; durante a sincronização incremental, o DTS substitui o registro de destino pelo registro de origem. Se os schemas das tabelas forem inconsistentes, a inicialização de dados pode falhar. Isso pode resultar em sincronização apenas parcial dos dados ou falha completa da sincronização. Use com cautela

Capitalization of Object Names in Destination Instance

Configura a política de maiúsculas/minúsculas para nomes de bancos de dados, tabelas e colunas no destino. O padrão é DTS default policy. Para mais informações, consulte Política de maiúsculas/minúsculas para nomes de objetos de destino

Source Objects

Na caixa Source Objects, clique nos objetos para selecioná-los e, em seguida, clique em 向右 para movê-los para a caixa Selected Objects. Selecione objetos no nível de schema ou tabela. Se você selecionar apenas tabelas, outros objetos como views, triggers e stored procedures não serão sincronizados. Se uma tabela contiver um tipo de dados SERIAL e você selecionar Schema Synchronization, selecione também Sequence ou todo o schema

Selected Objects

Para renomear um único objeto no destino, clique com o botão direito nele na caixa Selected Objects. Para mais informações, consulte Mapear um único nome de objeto. Para renomear vários objetos, clique em Batch Edit no canto superior direito da caixa. Para mais informações, consulte Mapear vários nomes de objetos em massa. Para selecionar operações SQL específicas para um banco de dados ou tabela, clique com o botão direito no objeto e selecione as operações na caixa de diálogo. Para operações suportadas, consulte Operações SQL suportadas. Para filtrar dados usando uma cláusula WHERE, clique com o botão direito em uma tabela e especifique as condições de filtro. Para mais informações, consulte Definir condições de filtro. Se você usar mapeamento de nomes de objetos, objetos dependentes podem falhar na sincronização

  1. Clique em Next: Advanced Settings e configure as seguintes opções.

Parâmetro Descrição
Dedicated Cluster for Task Scheduling Por padrão, o DTS usa um cluster compartilhado. Para maior estabilidade, adquira um cluster dedicado. Para mais informações, consulte O que é um cluster dedicado do DTS?
Retry Time for Failed Connections Se a conexão com o banco de dados de origem ou de destino falhar após o início da tarefa, o DTS começa a tentar novamente imediatamente. A duração padrão de nova tentativa é de 720 minutos. Defina um valor entre 10 e 1.440 minutos; recomenda-se 30 minutos ou mais. Se a conexão for restaurada dentro desse período, a tarefa será retomada automaticamente.
Nota

Se várias instâncias do DTS compartilharem uma origem ou destino, o DTS usará a menor duração de nova tentativa configurada entre todas as instâncias. O DTS cobra pelo tempo de execução da tarefa durante as novas tentativas de conexão

Retry Time for Other Issues Se ocorrer um problema que não seja de conexão (como um erro de execução DDL ou DML), o DTS tenta novamente imediatamente. O padrão é 10 minutos. Defina um valor entre 1 e 1.440 minutos; recomenda-se 10 minutos ou mais. Este valor deve ser menor que Retry Time for Failed Connections
Enable Throttling for Full Data Synchronization Limita a taxa de sincronização completa para reduzir a pressão no banco de dados de destino. Defina 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 se Full Data Synchronization estiver selecionado. Você também pode ajustar essa taxa enquanto a instância está em execução
Enable Throttling for Incremental Data Synchronization Limita a taxa de sincronização incremental. Defina RPS of Incremental Data Synchronization e Data synchronization speed for incremental synchronization (MB/s)
Environment Tag Selecione uma tag de ambiente para identificar a instância. Nenhuma seleção é necessária para esta tarefa
Configure ETL Escolha se deseja ativar o recurso de extração, transformação e carga (ETL). Selecione Yesalert notifications e insira instruções de processamento de dados no editor de código, ou selecione No para desativá-lo. Para mais informações, consulte O que é ETL? e Configurar ETL em uma tarefa de migração ou sincronização de dados
Monitoring and Alerting Selecione Yes para receber notificações quando a sincronização falhar ou a latência exceder o limiar. Defina o limiar de alerta e os contatos. Para mais informações, consulte Configurar monitoramento e alertas durante a configuração da tarefa. Selecione No para pular alertas
  1. Clique em Next: Data Validation para configurar uma tarefa de validação de dados. Para mais informações, consulte Configurar validação de dados.

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

  • Para visualizar os parâmetros da API para esta tarefa, passe o mouse sobre Next: Save Task Settings and Precheck e clique em Preview OpenAPI parameters na dica de ferramenta.

  • Clique em Next: Save Task Settings and Precheck para salvar e iniciar a pré-verificação.

O DTS realiza uma pré-verificação antes do início da tarefa. A tarefa só inicia após a aprovação da pré-verificação.
Se a pré-verificação falhar, clique em View Details ao lado do item com falha, corrija o problema conforme solicitado e execute a pré-verificação novamente.
Se a pré-verificação gerar avisos:
Para avisos não ignoráveis, clique em View Details , corrija o problema e execute a pré-verificação novamente.
Para avisos ignoráveis, clique em Confirm Alert Details > Ignore > OK e, em seguida, clique em Precheck Again . Ignorar avisos de pré-verificação pode levar a inconsistências de dados. Prossiga com cautela.

Etapa 5: Adquirir a instância

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

  2. Na página Purchase, selecione o método de faturamento e a classe da instância.

Parâmetro

Descrição

Billing Method

Subscription: pagamento antecipado por uma duração fixa. Custo-benefício para tarefas contínuas e de longo prazo. Pagamento conforme o uso: faturamento horário pelo uso real. Adequado para tarefas de curto prazo ou de teste; libere a instância a qualquer momento para parar o faturamento

Resource Group Settings

O grupo de recursos para a instância. O padrão é default resource group. Para mais informações, consulte O que é Resource Management?

Instance Class

Determina o nível de desempenho da sincronização. Selecione uma classe com base nos seus requisitos de throughput. Para mais informações, consulte Especificações de link de sincronização de dados

Subscription Duration

(Apenas faturamento por assinatura) Opções mensais: 1–9 meses. Opções anuais: 1, 2, 3 ou 5 anos

  1. Marque a caixa de seleção Data Transmission Service (Pay-as-you-go) Service Terms.

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

Monitore o progresso da tarefa na página de sincronização de dados.