Todos os produtos
Search
Central de documentação

Data Transmission Service:Synchronize data from an ApsaraDB RDS for PostgreSQL instance to an ApsaraDB RDS for MySQL instance

Última atualização: Oct 15, 2026

O Data Transmission Service (DTS) permite sincronizar dados de uma instância ApsaraDB RDS for PostgreSQL para uma instância ApsaraDB RDS for MySQL.

Pré-requisitos

Faturamento

Tipo de sincronização

Custo

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

Gratuito.

Sincronização incremental de dados

Pago. Para mais informações, consulte Billing overview.

Topologias de sincronização suportadas

  • Sincronização unidirecional um para um

  • Sincronização unidirecional um para muitos

  • Sincronização em cascata unidirecional

  • Sincronização unidirecional muitos para um

Para mais informações, consulte Synchronization topologies.

Operações SQL sincronizáveis

Tipo de operação

Instrução SQL

DML (Data Manipulation Language)

INSERT, UPDATE e DELETE

Observações de uso

Comportamento de chaves estrangeiras

  • Durante a sincronização de schema, o DTS sincroniza as chaves estrangeiras do banco de dados de origem para o banco de dados de destino.

  • Nas fases de sincronização completa e incremental de dados, o DTS desativa temporariamente as verificações de restrição e as operações em cascata de chaves estrangeiras no nível da sessão.

Nota

A execução de operações de atualização e exclusão em cascata no banco de dados de origem durante a sincronização pode causar inconsistência de dados.

Requisitos do banco de dados de origem

Chaves primárias e restrições UNIQUE

As tabelas a serem sincronizadas devem ter restrições PRIMARY KEY ou UNIQUE, e todos os campos devem ser únicos. Caso contrário, o banco de dados de destino poderá conter registros de dados duplicados.

Nota

Se uma tabela de destino já existir porque a opção Schema Synchronization não foi selecionada no parâmetro Synchronization Types, garanta que a tabela tenha as mesmas restrições PRIMARY KEY ou NOT NULL UNIQUE da tabela de origem. Do contrário, o banco de dados de destino poderá conter registros duplicados.

Limite de quantidade de tabelas

Ao selecionar tabelas como objetos de sincronização e editá-las (por exemplo, renomeando tabelas ou colunas no banco de dados de destino), uma única tarefa de sincronização suporta até 5.000 tabelas. Para sincronizar mais de 5.000 tabelas, configure múltiplas tarefas ou sincronize o banco de dados inteiro.

Requisitos de log WAL

  • Defina o parâmetro wal_level como logical.

  • Sincronização apenas incremental: Retenha logs WAL por mais de 24 horas.

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

Aviso

Se o DTS não conseguir obter logs WAL devido a um período de retenção insuficiente, a tarefa poderá falhar. Em circunstâncias excepcionais, pode ocorrer inconsistência ou perda de dados. O cumprimento desses requisitos de retenção é necessário para que o DTS honre o Acordo de Nível de Serviço (SLA).

Operações no banco de dados de origem

  • Failover primário/secundário: Ative o recurso Logical Replication Slot Failover antes de executar um failover primário/secundário na instância ApsaraDB RDS for PostgreSQL de origem. Isso evita a interrupção de assinaturas lógicas e mantém a tarefa de sincronização em execução conforme o esperado. Para mais informações, consulte Logical Replication Slot Failover.

  • Registros de dados grandes: Se um único registro de dados a ser sincronizado da origem exceder 256 MB durante as alterações incrementais, a instância de sincronização falhará sem possibilidade de recuperação. Será necessário configurar a tarefa novamente.

  • Restrições de DDL: Não execute instruções DDL (Data Definition Language) para alterar schemas de bancos de dados ou tabelas durante as fases de sincronização de schema e sincronização completa de dados. Caso contrário, a tarefa falhará.

Transações de longa duração

Se o banco de dados de origem tiver transações de longa duração enquanto a sincronização incremental estiver em andamento, os logs WAL gerados antes do commit dessas transações podem se acumular. Esse acúmulo pode esgotar o espaço em disco do banco de dados de origem.

Atualizações de versão principal

Não realize atualizações de versão principal no banco de dados de origem enquanto uma instância de sincronização estiver em execução. Essa ação causa uma falha irrecuperável na instância e exige a reconfiguração da tarefa.

Requisitos do banco de dados de destino

Conjunto de caracteres para caracteres de 4 bytes

Se os dados a serem sincronizados contiverem caracteres que ocupam quatro bytes, como emojis ou caracteres raros, os bancos de dados e tabelas de destino devem usar o conjunto de caracteres utf8mb4.

Nota

Ao utilizar o recurso de sincronização de schema do DTS, defina o parâmetro da instância character_set_server no banco de dados de destino como utf8mb4.

Restrições de sincronização

Um banco de dados por tarefa

Cada tarefa de sincronização suporta dados de apenas um banco de dados. Para sincronizar dados de vários bancos, crie uma tarefa separada para cada um.

Herança entre schemas

O DTS não sincroniza tabelas com relacionamentos de herança entre diferentes schemas.

Tabelas novas ou renomeadas na sincronização no nível de schema

Ao selecionar um schema como objeto de sincronização e criar uma nova tabela ou renomear uma tabela existente com o comando RENAME, execute a seguinte instrução antes de gravar dados na tabela:

ALTER TABLE schema.table REPLICA IDENTITY FULL;

Substitua schema e table pelos nomes reais do schema e da tabela. Essa medida garante a consistência dos dados.

Nota

Execute essa operação fora dos horários de pico. Não bloqueie a tabela durante a execução desta instrução para evitar deadlocks.

Sensibilidade a maiúsculas e minúsculas em nomes de colunas no MySQL

Os nomes de colunas em bancos de dados MySQL não diferenciam maiúsculas de minúsculas. Se várias colunas no banco de dados de origem tiverem nomes que diferem apenas pela capitalização, elas serão gravadas na mesma coluna no banco de dados MySQL de destino durante a sincronização. Isso pode causar resultados inesperados.

Objetos gerenciados pelo DTS no banco de dados de origem

Tabelas temporárias

O DTS cria as seguintes tabelas temporárias no banco de dados de origem para armazenar instruções DDL incrementais, schemas de tabelas e informações de heartbeat. Não exclua essas tabelas durante a sincronização de dados. Elas são removidas automaticamente quando a instância do DTS é liberada.

  • 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

Nota

As instruções DDL obtidas por meio dessas tabelas temporárias não são gravadas no banco de dados de destino.

Tabela de heartbeat

O DTS adiciona uma tabela de heartbeat chamada dts_postgres_heartbeat ao banco de dados de origem para manter medições precisas da latência de sincronização.

Slot de replicação

O DTS cria um slot de replicação com o prefixo dts_sync_ no banco de dados de origem. Esse slot recupera logs incrementais do banco de dados de origem dos últimos 15 minutos.

Nota

O slot de replicação é excluído automaticamente quando a instância do DTS é liberada. No entanto, se você alterar a senha do banco de dados de origem ou remover os blocos CIDR dos servidores DTS da lista de permissões de endereços IP, o slot não poderá ser excluído automaticamente. Nesse caso, exclua manualmente o slot de replicação para evitar o acúmulo de logs.

Nota

Se a tarefa de sincronização de dados for liberada ou falhar, o DTS excluirá automaticamente o slot de replicação. Caso ocorra um failover primário/secundário na instância ApsaraDB RDS for PostgreSQL de origem, faça login no banco de dados secundário e exclua o slot de replicação manualmente.

Desempenho e operações

Considerações sobre desempenho

  • Avalie o impacto da sincronização nos bancos de dados de origem e de destino antes de iniciar. Sempre que possível, sincronize os dados fora dos horários de pico. Durante a sincronização completa inicial, o DTS utiliza recursos de leitura e gravação de ambos os bancos, o que pode aumentar a carga do servidor.

  • Operações INSERT simultâneas durante a sincronização completa inicial causam fragmentação nas tabelas de destino. Como resultado, o tablespace de destino fica maior que o tablespace de origem após a conclusão da sincronização completa.

DDL online com o Data Management Service (DMS)

Se apenas o DTS gravar dados nas tabelas do banco de dados de destino, utilize o DMS para executar operações DDL online nas tabelas de origem durante a sincronização. Para mais informações, consulte Perform lockless schema changes using lockless change tickets.

Aviso

A gravação de dados de outras fontes no banco de dados de destino durante a sincronização causa inconsistência de dados. Além disso, o uso do DMS para executar instruções DDL online enquanto outras fontes gravam no banco de dados de destino pode resultar em perda de dados.

Instruções DDL com falha

Se a execução de instruções DDL falhar no banco de dados de destino, a tarefa do DTS continuará em execução. Visualize as instruções DDL com falha nos logs da tarefa. Para mais informações, consulte View task logs.

Verificação pós-sincronização

Após a conclusão da sincronização de dados (quando o Status da instância mudar para Completed), execute o seguinte comando para verificar se os dados foram gravados na tabela de destino:

analyze table <Table name>
Nota

Se um failover de alta disponibilidade (HA) for acionado no banco de dados MySQL de origem, os dados poderão ser gravados apenas na memória, causando perda de dados.

Recuperação de falhas em tarefas do DTS

Em caso de falha em uma tarefa do DTS, a equipe de suporte técnico tentará restaurá-la dentro de 8 horas. Durante esse processo, a tarefa pode ser reiniciada e seus parâmetros modificados.

Nota

Apenas os parâmetros da tarefa podem ser modificados; os parâmetros do banco de dados permanecem inalterados. Os parâmetros passíveis de modificação incluem, mas não se limitam àqueles descritos na seção Modify instance parameters do tópico Modificar os parâmetros de uma instância DTS.

Requisitos específicos da origem

  • Origem ApsaraDB RDS for PostgreSQL: Não modifique o endpoint ou a zona da instância ApsaraDB RDS for PostgreSQL durante a sincronização de dados. Caso contrário, a tarefa falhará.

  • Origem PostgreSQL auto-gerenciado: Os valores dos parâmetros max_wal_senders e max_replication_slots devem ser maiores que a soma dos slots de replicação em uso no banco de dados PostgreSQL auto-gerenciado mais o número de instâncias do DTS a serem criadas para esse banco.

  • Origem Google Cloud SQL for PostgreSQL: Defina o parâmetro Database Account com uma conta de banco de dados que possua a permissão cloudsqlsuperuser. Selecione apenas objetos que a conta especificada tenha autorização para gerenciar. Alternativamente, conceda a permissão OWNER nos objetos selecionados à conta especificada.

    Nota

    Uma conta com a permissão cloudsqlsuperuser não consegue gerenciar dados pertencentes a outras contas que também possuem a permissão cloudsqlsuperuser.

Procedimento

  1. Acesse a página Data Synchronization do novo console DTS.

    Nota

    Alternativamente, faça login no console do DMS. Na barra de navegação superior, passe o ponteiro sobre Data + AI e escolha DTS (DTS) > Data Synchronization.

  2. No canto superior esquerdo da página, selecione a região onde reside a instância de sincronização de dados.

  3. Clique em Create Task. Configure os bancos de dados de origem e de destino.

    Aviso

    Após configurar os bancos de dados de origem e de destino, leia os Limits exibidos na página. O não cumprimento desses limites pode causar falha na tarefa ou inconsistência de dados.

    Nota

    Se a versão da instância ApsaraDB RDS for PostgreSQL de origem for 9,4 e você sincronizar apenas operações DML, será necessária apenas a permissão REPLICATION para a conta do banco de dados.

    Configurações da tarefa

    Parâmetro

    Valor

    Task Name

    O DTS gera automaticamente um nome para a tarefa. Especifique um nome descritivo que facilite a identificação da tarefa. Não é necessário que o nome seja único.

    Configurações do banco de dados de origem

    Parâmetro

    Valor

    Database Type

    Selecione PostgreSQL.

    Connection Type

    Selecione Alibaba Cloud Instance.

    Instance Region

    A região da instância ApsaraDB RDS for PostgreSQL de origem.

    Instance ID

    O ID da instância ApsaraDB RDS for PostgreSQL de origem.

    Database Name

    O nome do banco de dados de origem na instância ApsaraDB RDS for PostgreSQL.

    Database Account

    Uma conta privilegiada da instância ApsaraDB RDS for PostgreSQL de origem. A conta deve ser proprietária do banco de dados. Para mais informações, consulte Create an account e Create a database.

    Database Password

    A senha da conta do banco de dados.

    Destination Database

    Parâmetro

    Valor

    Database Type

    Selecione MySQL.

    Connection Type

    Selecione Alibaba Cloud Instance.

    Instance Region

    A região da instância ApsaraDB RDS for MySQL de destino.

    RDS Instance ID

    O ID da instância ApsaraDB RDS for MySQL de destino.

    Database Account

    A conta do banco de dados da instância ApsaraDB RDS for MySQL de destino. A conta deve ter permissões de leitura e gravação no banco de dados de destino.

    Database Password

    A senha da conta do banco de dados.

    Encryption

    Escolha Non-encrypted ou SSL-encrypted conforme suas necessidades de negócio. Para usar SSL-encrypted, ative a criptografia SSL na instância ApsaraDB RDS for MySQL antes de configurar a tarefa do DTS. Para mais informações, consulte Use a cloud certificate to enable SSL encryption.

  4. Clique em Test Connectivity and Proceed. Se o banco de dados de origem ou de destino for uma instância de banco de dados Alibaba Cloud (como uma instância ApsaraDB RDS for MySQL ou ApsaraDB for MongoDB), o DTS adiciona automaticamente os blocos CIDR dos servidores DTS à lista de permissões da instância. Se o banco de dados de origem ou de destino for auto-gerenciado e hospedado em uma instância Elastic Compute Service (ECS), o DTS adiciona automaticamente os blocos CIDR dos servidores DTS às regras do grupo de segurança da instância ECS. Nesse caso, garanta que a instância ECS possa acessar o banco de dados. Se o banco de dados estiver implantado em várias instâncias ECS, adicione manualmente os blocos CIDR dos servidores DTS às regras do grupo de segurança de cada instância ECS. Se o banco de dados de origem ou de destino for auto-gerenciado, implantado em um data center ou fornecido por um provedor de cloud terceirizado, adicione manualmente os blocos CIDR dos servidores DTS à lista de permissões do banco de dados. Para mais informações, consulte a seção Whitelist DTS server IP addresses do tópico Adicionar os blocos CIDR dos servidores DTS.

    Aviso

    Adicionar os blocos CIDR dos servidores DTS à lista de permissões do banco de dados ou da instância, ou às regras do grupo de segurança do ECS, pode introduzir riscos de segurança. Antes de usar o DTS, compreenda e reconheça os riscos potenciais. Adote medidas preventivas, incluindo, mas não se limitando a: reforçar a segurança de nomes de usuário e senhas, limitar portas expostas, autenticar chamadas de API, revisar regularmente a lista de permissões ou as regras do grupo de segurança do ECS para remover blocos CIDR não autorizados, ou conectar o banco de dados ao DTS por meio de Express Connect, VPN Gateway ou Smart Access Gateway.

  5. Configure os objetos a serem sincronizados e as configurações avançadas.

    Nota
    • Se existirem tabelas com nomes idênticos nos bancos de dados de origem e de destino e você não puder excluir ou renomear as tabelas de destino, utilize o recurso de mapeamento de nomes de objetos. Para mais informações, consulte Object name mapping. - Se você selecionar Ignore Errors and Proceed e os bancos de dados de origem e de destino possuírem o mesmo schema com valores de chave primária ou única correspondentes: durante a sincronização completa de dados, o DTS não sincronizará o registro conflitante e manterá o registro existente no destino. Durante a sincronização incremental de dados, o DTS substituirá o registro existente. Se os schemas forem diferentes, a inicialização de dados poderá falhar, apenas algumas colunas poderão ser sincronizadas ou a tarefa poderá falhar.

    Nota
    • Para selecionar operações SQL para um banco de dados ou tabela específica, clique com o botão direito em um objeto na seção Selected Objects e selecione as operações a serem sincronizadas. Para operações suportadas, consulte a seção SQL operations that can be synchronized. - Para filtrar dados com condições WHERE, clique com o botão direito em um objeto na seção Selected Objects e especifique as condições de filtro. Para mais informações, consulte Filter task data with an SQL condition.

    Nota
    • Se você especificar intervalos de tempo de tentativa diferentes para múltiplas tarefas que compartilham o mesmo banco de dados de origem ou de destino, o menor intervalo terá precedência. - O DTS cobra pela instância durante o período de tentativa. Defina o tempo de tentativa com base nas necessidades do seu negócio. Libere a instância do DTS prontamente após a liberação das instâncias de origem e de destino.

    Configurações básicas

    Parâmetro

    Valor

    Synchronization Types

    A opção Incremental Data Synchronization vem selecionada por padrão. É possível selecionar apenas Full Data Synchronization. Não é permitido selecionar Schema Synchronization. Quando a Sincronização Completa de Dados está selecionada, o DTS sincroniza os dados históricos dos objetos selecionados do banco de dados de origem para o de destino após a conclusão da pré-verificação. Esses dados históricos servem de base para a sincronização incremental subsequente.

    Processing Mode of Conflicting Tables

    Precheck and Report Errors: Verifica se o banco de dados de destino contém tabelas com os mesmos nomes das tabelas no banco de dados de origem. Se existirem nomes idênticos, um erro é retornado durante a pré-verificação e a tarefa não inicia. Ignore Errors and Proceed: Ignora a pré-verificação de nomes de tabelas idênticos. Consulte as notas abaixo para detalhes sobre o comportamento.

    Source Objects

    Selecione um ou mais objetos na seção Source Objects e clique no ícone de seta para a direita para adicioná-los à seção Selected Objects. Colunas, tabelas ou bancos de dados podem ser selecionados como objetos de sincronização. Se você selecionar tabelas ou colunas, o DTS não sincronizará outros objetos, como views, triggers e stored procedures.

    Selected Objects

    Para renomear um objeto na instância de destino, clique com o botão direito nele em Selected Objects. Para mais informações, consulte Object name mapping. Para renomear vários objetos de uma vez, clique em Batch Edit no canto superior direito da seção Selected Objects. Para mais informações, consulte Object name mapping.

    Configurações avançadas

    Parâmetro

    Valor

    Monitoring and Alerting

    Define se haverá configuração de alertas para a tarefa. Se a tarefa falhar ou a latência de sincronização exceder o limiar especificado, os contatos de alerta receberão notificações. Selecione No para desativar alertas ou Yes para configurar limiares de alerta e definições de notificação. Para mais informações, consulte Configure monitoring and alerting.

    Retry Time for Failed Connections

    A duração (em minutos) durante a qual o DTS tenta reconectar caso o banco de dados de origem ou de destino fique inacessível após o início da tarefa. Valores válidos: 10 a 1440. Padrão: 720. Recomendado: superior a 30. Se o DTS reconectar dentro desse período, a tarefa será retomada. Caso contrário, a tarefa falhará.

    Configure ETL

    Define se o recurso de extração, transformação e carga (ETL) será ativado. Selecione Yes para inserir instruções de processamento de dados no editor de código ou No para pular esta etapa. Para mais informações, consulte What is ETL? e Configure ETL in DTS migration or synchronization tasks.

  6. Salve as configurações da tarefa e execute uma pré-verificação.

    • Para visualizar os parâmetros da API referentes à configuração desta tarefa do DTS, passe o ponteiro sobre Next: Save Task Settings and Precheck e clique em Preview OpenAPI parameters.

    • Quando estiver pronto, clique em Next: Save Task Settings and Precheck.

    Nota
    • O DTS realiza uma pré-verificação antes que a tarefa possa começar. A tarefa só inicia após ser aprovada nessa etapa. - Se a pré-verificação falhar, clique em View Details ao lado de cada item com falha, analise as causas, solucione os problemas e execute a pré-verificação novamente. - Se um alerta for acionado durante a pré-verificação: - Se o item de alerta não puder ser ignorado, clique em View Details, solucione o problema e clique em Precheck Again. - Se o item de alerta puder ser ignorado, clique em Confirm Alert Details. Na caixa de diálogo View Details, clique em Ignore e depois em OK. Clique em Precheck Again para executar a pré-verificação novamente. Ignorar itens de alerta pode causar inconsistência de dados e expor seu negócio a riscos potenciais.

  7. Aguarde até que a Success Rate atinja 100% e clique em Next: Purchase Instance.

  8. Na página buy, configure o método de faturamento e a classe da instância para a instância de sincronização de dados.

    Seção

    Parâmetro

    Valor

    New Instance Class

    Billing Method

    Subscription: Pagamento antecipado na criação da instância. Mais econômico para uso de longo prazo. Pay-as-you-go: Faturamento por hora. Adequado para uso de curto prazo. Libere a instância quando não for mais necessária para reduzir custos.

    Resource Group Settings

    O grupo de recursos ao qual a instância de sincronização de dados pertence. Valor padrão: default resource group. Para mais informações, consulte What is resource management?

    Instance Class

    Selecione uma classe de instância com base nos seus requisitos de velocidade de sincronização. Para mais informações, consulte Instance classes of data synchronization instances.

    Subscription Duration

    Disponível apenas para o método de faturamento Subscription. Opções: um a nove meses, um ano, dois anos, três anos ou cinco anos.

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

  10. Clique em Buy and Start. Na caixa de diálogo de confirmação, clique em OK. O progresso da tarefa aparecerá na lista de tarefas.