Todos os produtos
Search
Central de documentação

Data Transmission Service:Configure a sincronização ou migração de triggers

Última atualização: Oct 12, 2026

A migração prematura de triggers durante uma tarefa de sincronização ou migração de dados pode causar inconsistência de dados entre os bancos de dados de origem e de destino. Este tópico explica como configurar a sincronização ou migração de triggers para evitar esse problema.

Pré-requisitos

  • Os bancos de dados de origem e de destino devem ser de um tipo compatível, como de uma instância do ApsaraDB RDS for MariaDB para uma instância do ApsaraDB RDS for MySQL. Para obter mais informações, consulte Supported instances.

  • A instância deve estar configurada para tarefas de estrutura e incrementais.

    • Instância de migração: Em Migration Types, selecione Schema Migration e Incremental Data Migration.

    • Instância de sincronização: Em Synchronization Types, a opção Incremental Data Synchronization vem selecionada por padrão. Selecione também Schema Synchronization.

  • Ao configurar a instância, selecione objetos em Source Objects no nível de banco de dados inteiro ou de schema.

Instâncias compatíveis

Banco de dados de origem

Banco de dados de destino

Descrição

MySQL, PolarDB for MySQL, MariaDB

MySQL, PolarDB for MySQL, MariaDB

Se Method to Migrate Triggers in Source Database estiver definido como Automatically Migrate, o DTS adiciona uma instrução de controle ao trigger no banco de dados de destino. Essa instrução impede que o trigger seja acionado por padrão. Para obter mais informações, consulte Automatic migration.

SQL Server

SQL Server

Se Method to Migrate Triggers in Source Database estiver definido como Automatically Migrate, o DTS migra automaticamente os triggers para o banco de dados de destino.

Importante

Caso alterações incrementais nos dados de origem acionem triggers que atualizem dados tanto na origem quanto no destino, podem ocorrer inconsistências no banco de dados de destino. Recomendamos selecionar Manual Migration e executar as operações subsequentes necessárias.

Nota
  • Quando o banco de dados de origem da instância de sincronização ou migração contém triggers e o banco de dados de destino é uma instância PostgreSQL, PolarDB for PostgreSQL ou PolarDB for PostgreSQL (Compatible with Oracle), o DTS ajuda a prevenir inconsistências de dados causadas pela sincronização ou migração de triggers durante a execução da instância.

    • Se a conta usada no banco de dados de destino tiver privilégios suficientes, como uma conta privilegiada ou superprivilegiada, o DTS desativa automaticamente o trigger no nível de sessão após a sincronização ou migração para o destino.

    • Caso a conta do banco de dados de destino não tenha privilégios suficientes, garanta que o parâmetro session_replication_role esteja definido como replica no banco de dados de destino enquanto a instância estiver em execução.

  • Para outras instâncias de sincronização ou migração que contenham triggers, consulte How do I configure a synchronization or migration task when the source database contains triggers?

  • A migração automática altera apenas a forma como o DTS processa os triggers, sem impacto na sincronização incremental de dados. A ocorrência da sincronização incremental depende da seleção de Incremental Data Migration em Migration Types. Ao selecionar Schema Migration, migração completa de dados e Incremental Data Migration, o DTS sincroniza automaticamente os novos dados do banco de origem para o destino após a conclusão da migração completa.

Configuração da instância

Na etapa Configure Objects, escolha uma opção para Method to Migrate Triggers in Source Database.

Nota

Na versão anterior da página de configuração, essa opção encontra-se na etapa Configure Objects and Advanced Settings.

  • Selecione Manual Migration: Durante a migração de schema, o DTS gera um alerta object ignored due to incremental migration is enabled para cada trigger encontrado e não o migra para o banco de dados de destino. Sincronize ou migre manualmente os triggers do banco de origem para o destino antes de encerrar a tarefa incremental. Para obter mais informações, consulte Manual migration.

  • Escolha Automatically Migrate: Nenhuma ação adicional é necessária.

Migração manual

Nota

O procedimento é semelhante para instâncias de sincronização e de migração. Esta seção usa uma instância de sincronização como exemplo.

  1. Acesse a página da lista de tarefas de sincronização da região de destino. Use um dos dois 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 Synchronization.

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

    Pelo console do DMS

    Nota

    As operações reais podem variar conforme o modo e o layout do console do DMS. Para obter mais informações, consulte Simple mode e Customize the layout and style of the DMS interface.

    1. Faça login no Data Management (DMS).

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

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

  2. Clique no ID da instância de destino.

  3. Opcional: No painel de navegação à esquerda, clique em Task Management.

  4. Na seção Progress, clique no módulo Incremental Write.

  5. Na aba Basic Information, clique em Migrate Triggers.

    Nota

    Se o botão Migrate Triggers não for exibido, nenhum trigger foi encontrado durante a migração do schema.

    Visualize os resultados da sincronização de triggers na seção Progress, dentro do módulo Schema Migration3.

Migração automática

O DTS copia o código do trigger do banco de dados de origem, adiciona uma instrução de controle ao cabeçalho do trigger e grava o código modificado no banco de dados de destino. O código a seguir mostra um exemplo:

Trigger do banco de dados de origem:

CREATE TRIGGER testref BEFORE INSERT ON test1
  FOR EACH ROW
  BEGIN
    INSERT INTO test2 SET a2 = NEW.a1;
  END;

Trigger do banco de dados de destino:

CREATE TRIGGER testref BEFORE INSERT ON test1
  FOR EACH ROW
  BEGIN
    IF (SELECT @`__#aliyun_dts_writer#__) IS NULL THEN
        INSERT INTO test2 SET a2 = NEW.a1;
    END IF;
  END;

Perguntas frequentes

  • O que significa uma tarefa que inclui operações de estrutura e incrementais?

    Para uma instância de sincronização, isso significa que tanto Schema Synchronization quanto Incremental Data Synchronization estão selecionadas em Synchronization Types. Para uma instância de migração, indica que Schema Migration e Incremental Data Migration foram selecionadas em Migration Types.

  • Como encerro uma tarefa incremental?

    Encerre a tarefa incremental terminando, redefinindo ou liberando a instância. Para obter mais informações, consulte Terminate a DTS instance, Reset a DTS instance e Release a DTS instance.