全部产品
Search
文档中心

Data Transmission Service:Sinkronkan atau migrasikan pemicu dari database sumber

更新时间:Jul 02, 2025

Jika sebuah pemicu di database sumber memperbarui tabel yang akan disinkronkan atau dimigrasikan, inkonsistensi data dapat terjadi antara database sumber dan tujuan karena pemicu tersebut disinkronkan atau dimigrasikan lebih awal dari yang diharapkan. Topik ini menjelaskan cara menyinkronkan atau memigrasikan pemicu untuk mencegah inkonsistensi data.

Prasyarat

  • Database sumber dan tujuan harus bertipe yang didukung. Sebagai contoh, data disinkronkan atau dimigrasikan dari instance ApsaraDB RDS for MariaDB ke instance ApsaraDB RDS for MySQL. Untuk informasi lebih lanjut, lihat bagian Tipe Database yang Didukung.

  • Skema sinkronisasi atau migrasi serta sinkronisasi atau migrasi data inkremental dipilih sebagai jenis sinkronisasi atau migrasi saat Anda mengonfigurasi instance Data Transmission Service (DTS).

    • Migrasi Data: Pilih Schema Migration dan Incremental Data Migration untuk parameter Migration Types.

    • Sinkronisasi Data: Secara default, Incremental Data Synchronization dipilih untuk parameter Synchronization Types. Anda juga harus memilih Schema Synchronization.

  • Saat mengonfigurasi tugas sinkronisasi atau migrasi data, atur parameter Source Objects ke seluruh database atau skema.

Tipe database yang didukung

Tipe database sumber

Tipe database tujuan

Deskripsi

MySQL, PolarDB for MySQL, dan ApsaraDB RDS for MariaDB

MySQL, PolarDB for MySQL, dan ApsaraDB RDS for MariaDB

Jika Anda mengatur parameter Method to Migrate Triggers in Source Database ke Automatically Migrate, DTS menambahkan pernyataan kontrol pemicu ke setiap pemicu yang disinkronkan atau dimigrasikan di database tujuan. Secara default, DTS tidak mengeksekusi pemicu ini di database tujuan. Untuk informasi lebih lanjut, lihat bagian Otomatis menyinkronkan atau memigrasikan pemicu dari topik ini.

SQL Server

SQL Server

Jika Anda mengatur parameter Method to Migrate Triggers in Source Database ke Automatically Migrate, DTS secara otomatis memigrasikan pemicu ke database tujuan.

Penting

Jika perubahan data inkremental di database sumber menyebabkan pemicu di kedua database sumber dan tujuan memperbarui data, data kotor mungkin dihasilkan di database tujuan. Kami merekomendasikan agar Anda mengatur parameter Method to Migrate Triggers in Source Database ke Manual Migration dan melakukan operasi berikutnya.

Catatan
  • Jika database sumber dari tugas sinkronisasi atau migrasi berisi pemicu dan database tujuan adalah PostgreSQL, PolarDB for PostgreSQL, atau PolarDB for PostgreSQL (Kompatibel dengan Oracle), DTS mencegah inkonsistensi data yang disebabkan oleh sinkronisasi atau migrasi pemicu selama tugas sinkronisasi atau migrasi.

    • Jika akun database tujuan yang digunakan oleh instance DTS memiliki izin yang cukup, seperti akun istimewa atau super istimewa, DTS secara otomatis menonaktifkan pemicu pada tingkat sesi setelah pemicu disinkronkan atau dimigrasikan ke database tujuan.

    • Jika akun database tujuan yang digunakan oleh instance DTS tidak memiliki izin yang diperlukan, pastikan nilai parameter session_replication_role di database tujuan diatur ke replica selama tugas sinkronisasi atau migrasi.

  • Untuk informasi lebih lanjut tentang cara mengonfigurasi tugas sinkronisasi atau migrasi data untuk database lain yang berisi pemicu, lihat Konfigurasikan Tugas Sinkronisasi Data untuk Database Sumber yang Berisi Pemicu.

Konfigurasikan instance DTS

Pada langkah Configure Objects, pilih Method to Migrate Triggers in Source Database.

Catatan

Jika Anda menggunakan versi konsol Data Management (DMS) sebelumnya, pilih opsi ini pada langkah Configure Objects and Advanced Settings.

  • Jika Anda mengatur parameter ini ke Manual Migration, DTS menghasilkan peringatan object ignored due to incremental migration is enabled saat pemicu ditemui selama sinkronisasi atau migrasi skema. DTS tidak menyinkronkan atau memigrasikan pemicu ke database tujuan. Anda harus secara manual menyinkronkan atau memigrasikan pemicu dari database sumber ke database tujuan sebelum sinkronisasi atau migrasi data inkremental selesai. Untuk informasi lebih lanjut, lihat bagian Secara Manual Menyinkronkan atau Memigrasikan Pemicu.

  • Jika Anda mengatur parameter ini ke Automatically Migrate, tidak ada operasi tambahan yang diperlukan.

Secara manual menyinkronkan atau memigrasikan pemicu

Catatan

Prosedur untuk memigrasikan pemicu secara manual dari database sumber sama dengan prosedur untuk menyinkronkan pemicu secara manual dari database sumber. Contoh ini menunjukkan cara menyinkronkan pemicu secara manual dari database sumber.

  1. Buka halaman Tugas Sinkronisasi Data.

    1. Masuk ke Konsol Data Management (DMS).

    2. Di bilah navigasi atas, klik Data + AI.

    3. Di panel navigasi sisi kiri, pilih DTS (DTS) > Data Synchronization.

    Catatan
  2. Di sisi kanan Data Synchronization Tasks, pilih wilayah tempat instance sinkronisasi data berada.

    Catatan

    Jika Anda menggunakan konsol DTS baru, Anda harus memilih wilayah tempat instance sinkronisasi data berada di bilah navigasi atas.

  3. Temukan instance DTS yang ingin Anda kelola dan klik ID instance.

  4. Opsional. Di panel sisi kiri, klik Task Management.

  5. Di bagian Progress, klik modul Incremental Write.

  6. Pada tab Basic Information, klik Migrate Triggers.

    Catatan

    Jika Migrate Triggers tidak ditampilkan, tidak ada pemicu yang ditemui selama sinkronisasi atau migrasi skema.

    Anda dapat melihat hasil sinkronisasi pemicu di modul Schema Migration3 dari bagian Progress.

Otomatis menyinkronkan atau memigrasikan pemicu

DTS menyalin kode pemicu dari database sumber, menambahkan pernyataan kontrol pemicu ke header pemicu, lalu menulis kode ke database tujuan. Contoh kode berikut memberikan contoh tentang cara membuat pemicu:

Buat pemicu di database sumber:

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

Buat pemicu di database tujuan:

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;

FAQ

  • Bagaimana cara memilih sinkronisasi atau migrasi skema dan sinkronisasi atau migrasi data inkremental saat saya mengonfigurasi instance DTS?

    Saat mengonfigurasi tugas sinkronisasi data, pilih Schema Synchronization dan Incremental Data Synchronization untuk parameter Synchronization Types. Saat mengonfigurasi tugas migrasi data, pilih Schema Migration dan Incremental Data Migration untuk parameter Migration Types.

  • Bagaimana cara menyelesaikan sinkronisasi atau migrasi data inkremental?

    Anda dapat mengakhiri, mereset, atau melepaskan instance DTS untuk menyelesaikan sinkronisasi atau migrasi data inkremental. Untuk informasi lebih lanjut, lihat Hentikan Instance DTS, Reset Instance DTS, dan Lepaskan Instance DTS.