Todos os produtos
Search
Central de documentação

Data Transmission Service:Configure tarefas para bancos de dados de origem com triggers

Última atualização: Jun 27, 2026

A sincronização ou migração de um banco de dados pode causar inconsistências entre a origem e o destino se o banco de dados de origem contiver um trigger que atualize tabelas internas. Este tópico descreve como configurar a tarefa nesse cenário para garantir a consistência dos dados.

Contexto

Se o banco de dados de origem contiver triggers e o cenário atender a uma das condições da tabela abaixo, consulte a documentação vinculada. Caso contrário, siga o procedimento descrito neste tópico.

Banco de dados de origem

Banco de dados de destino

Descrição

Referências

Todos os tipos compatíveis

PostgreSQL, PolarDB for PostgreSQL, PolarDB for PostgreSQL (Compatible with Oracle)

  • Se a conta do banco de dados de destino tiver permissões suficientes (como conta privilegiada ou de superusuário), o Data Transmission Service (DTS) desativa automaticamente o trigger no nível de sessão após a migração ou sincronização.

  • Se a conta do banco de dados de destino não tiver permissões suficientes, defina o parâmetro session_replication_role como replica no banco de dados de destino durante a execução da tarefa.

MySQL, PolarDB for MySQL, ApsaraDB RDS for MariaDB

MySQL, PolarDB for MySQL, ApsaraDB RDS for MariaDB

Configure manualmente os triggers para sincronização ou migração.

Sincronizar ou migrar triggers do banco de dados de origem

SQL Server

SQL Server

Fluxo de trabalho

  1. Crie uma tarefa de migração de dados para migrar o esquema do banco de dados de origem para o banco de dados de destino.

    Para mais informações, consulte Visão geral dos cenários de migração de dados.

    Importante
    • Em Migration Types, selecione apenas Schema Migration.

    • Em Source Objects, selecione todo o banco de dados ou esquema.

  2. Faça login no banco de dados de destino e exclua os triggers migrados do banco de dados de origem.

  3. Crie uma tarefa de sincronização ou migração de dados do banco de dados de origem para o banco de dados de destino.

    Para mais informações, consulte Visão geral dos cenários de sincronização de dados e Visão geral dos cenários de migração de dados.

    Importante
    • Para tarefas de sincronização de dados, Synchronization Types vem selecionado por padrão em Incremental Data Synchronization. Selecione também Full Data Synchronization. Não selecione Schema Synchronization.

    • Para tarefas de migração de dados, selecione Migration Types e Full Data Migration em Incremental Data Migration. Não selecione Schema Migration.

  4. (Opcional) Após concluir a transferência de dados, encerre ou libere a instância.

    Para mais informações, consulte Encerrar uma instância do DTS e Liberar instâncias do DTS.

    Nota

    Após encerrar ou liberar a instância, adicione manualmente os triggers ao banco de dados de destino conforme as necessidades do negócio.

Exemplo

Nota

Este exemplo demonstra como configurar uma tarefa para sincronizar dados de um banco de dados MySQL autogerenciado para uma instância do ApsaraDB RDS for MySQL.

Preparação de dados

Este exemplo utiliza um banco de dados MySQL chamado triggertestdata que contém duas tabelas: parent e child. Um trigger na tabela parent insere uma cópia de cada nova linha na tabela child.

Nota

A tabela a seguir mostra os esquemas das tabelas e a definição do trigger.

Tipo de objeto

Nome

Instrução

Tabela

parent

CREATE TABLE `parent` (
  `user_vs_id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(30) DEFAULT NULL,
  PRIMARY KEY (`user_vs_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2001 DEFAULT CHARSET=utf8

Tabela

child

CREATE TABLE `child` (
  `sys_child_id` int(11) NOT NULL AUTO_INCREMENT,
  `user_vs_id` int(11) DEFAULT NULL,
  `name` varchar(30) DEFAULT NULL,
  PRIMARY KEY (`sys_child_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2001 DEFAULT CHARSET=utf8

trigger

data_check

CREATE TRIGGER data_check
AFTER INSERT ON parent
FOR EACH ROW
insert into child(user_vs_id, name) values(new.user_vs_id, new.name) ;

Nesse cenário, uma operação INSERT na tabela parent durante a sincronização causaria inconsistência nos dados da tabela child entre a origem e o destino. Para evitar isso, exclua o trigger do banco de dados de destino após a migração inicial do esquema.

Procedimento

  1. Crie uma tarefa de migração de dados para migrar o esquema do banco de dados de origem para o banco de dados de destino.

    1. Acesse a página da lista de tarefas de migração da região de destino usando um dos métodos a seguir.

      Pelo console do DTS

      1. Faça login no console do Data Transmission Service (DTS).

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

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

      Pelo console do DMS

      Nota

      As operações reais podem variar dependendo do modo e do 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 Data Management (DMS).

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

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

    2. Clique em Create Task para acessar a página de configuração da tarefa.

    3. Configure as definições de Source Database e Destination Database e clique em Test Connectivity and Proceed na parte inferior da página.

      Para descrições de parâmetros e mais informações, consulte Migrar dados de um banco de dados MySQL autogerenciado para uma instância do ApsaraDB RDS for MySQL.

    4. Em Migration Types, selecione Schema Migration e selecione o banco de dados ou esquema a ser migrado.

    5. Conclua as etapas restantes de configuração conforme as necessidades do negócio.

  2. A migração de esquema também migra os triggers. Após a conclusão da tarefa, faça login no banco de dados de destino e exclua esses triggers executando o seguinte comando:

    drop trigger <trigger_name>;

    Exemplo:

    drop trigger data_check;
  3. Crie uma tarefa de sincronização de dados para sincronizar dados do banco de dados de origem para o banco de dados de destino.

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

    2. Configure as definições de Source Database e Destination Database e clique em Test Connectivity and Proceed na parte inferior da página.

      Para descrições de parâmetros e mais informações, consulte Sincronizar dados de um banco de dados MySQL autogerenciado para uma instância do ApsaraDB RDS for MySQL.

      Nota

      Use os mesmos bancos de dados de origem e de destino configurados na Etapa 1.

    3. Em Synchronization Types, selecione manualmente Full Data Synchronization.

      Nota
      • Certifique-se de que os objetos de sincronização sejam os mesmos objetos de migração configurados na Etapa 1.

      • Synchronization Types vem selecionado por padrão em Incremental Data Synchronization. Não selecione Schema Synchronization.

    4. Conclua as etapas restantes de configuração conforme as necessidades do negócio.

Testar a consistência dos dados

  1. Faça login no banco de dados de origem e insira uma linha na tabela parent.

    insert into parent values(1,'testname');

    O trigger no banco de dados de origem insere então a mesma linha na tabela filha de origem.

  2. Faça login nos bancos de dados de origem e de destino. Consulte a tabela child em ambos os bancos de dados para verificar a consistência dos dados.

    • Resultados da consulta no banco de dados de origem

      +--------------+------------+----------+
      | sys_child_id | user_vs_id | name     |
      +--------------+------------+----------+
      |         2001 |          1 | testname |
      +--------------+------------+----------+
    • Resultados da consulta no banco de dados de destino

      +--------------+------------+----------+
      | sys_child_id | user_vs_id | name     |
      +--------------+------------+----------+
      |         2001 |          1 | testname |
      +--------------+------------+----------+

    Os resultados mostram que os dados estão consistentes.

Próximas etapas

  1. Após concluir a sincronização de dados, encerre a tarefa de sincronização criada na Etapa 3.

    Para mais informações, consulte Encerrar uma instância do DTS.

  2. (Opcional) Visualize a instrução de criação do trigger.

    1. Localize a tarefa de migração criada na Etapa 1.

    2. Clique em ID da tarefa.

    3. Na página Task Management, clique em Schema Migration2.

    4. Na aba Task Details, clique em View Statements.

  3. Faça login no banco de dados de destino e adicione o trigger manualmente.