All Products
Search
Document Center

Data Transmission Service:Sinkronisasi atau migrasi pemicu dari database sumber

Last Updated:Mar 29, 2026

Ketika suatu trigger di database sumber memperbarui tabel yang sedang disinkronkan atau dimigrasikan, DTS dapat menyalin trigger tersebut ke database tujuan sebelum fase data inkremental, sehingga berpotensi menyebabkan ketidakkonsistenan data antara sumber dan tujuan. Topik ini menjelaskan cara menangani trigger selama tugas DTS untuk mencegah masalah tersebut.

Prasyarat

Sebelum memulai, pastikan bahwa:

  • Jenis database sumber dan tujuan didukung. Lihat bagian Jenis database yang didukung.

  • Sinkronisasi/migrasi skema dan sinkronisasi/migrasi data inkremental keduanya dipilih saat Anda mengonfigurasi instans DTS:

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

    • Sinkronisasi data: Incremental Data Synchronization dipilih secara default untuk Synchronization Types. Pilih juga Schema Synchronization.

  • Source Objects diatur ke seluruh database atau skema.

Jenis database yang didukung

SumberTujuanPerilaku migrasi otomatis
MySQL, PolarDB for MySQL, atau ApsaraDB RDS for MariaDBMySQL, PolarDB for MySQL, atau ApsaraDB RDS for MariaDBDTS menambahkan pernyataan kontrol trigger ke setiap trigger di database tujuan. Pernyataan kontrol ini mencegah trigger dieksekusi selama fase penulisan DTS. Lihat Cara kerja migrasi otomatis.
SQL ServerSQL ServerDTS menyalin trigger ke database tujuan.
Penting

Jika perubahan inkremental di database sumber menyebabkan trigger di kedua database (sumber dan tujuan) memperbarui data secara bersamaan, data kotor (dirty data) dapat muncul di database tujuan. Gunakan Manual Migration untuk sumber SQL Server dan lakukan langkah-langkah berikutnya.

Jika database tujuan adalah PostgreSQL, PolarDB for PostgreSQL, atau PolarDB for PostgreSQL (Compatible with Oracle), DTS mencegah ketidakkonsistenan data secara otomatis:
Jika instans DTS menggunakan akun database tujuan dengan hak istimewa atau super-istimewa, DTS menonaktifkan trigger pada tingkat sesi setelah trigger disinkronkan atau dimigrasikan.
Jika akun tidak memiliki izin yang cukup, atur parameter session_replication_role ke replica di database tujuan selama durasi tugas. Untuk jenis database lain yang berisi trigger, lihat Konfigurasi tugas sinkronisasi data untuk database sumber yang berisi trigger.

Pilih metode migrasi

Pada langkah Configure Objects dalam penyiapan instans DTS, atur Method to Migrate Triggers in Source Database.

Jika Anda menggunakan versi konsol Data Management (DMS) sebelumnya, opsi ini muncul pada langkah Configure Objects and Advanced Settings.
MetodeApa yang dilakukan DTSKapan digunakan
Automatically MigrateMenyalin trigger ke database tujuan dengan menambahkan pernyataan kontrol. Tidak diperlukan tindakan tambahan.Sumber keluarga MySQL di mana mekanisme kontrol trigger sudah mencukupi.
Manual MigrationMelewati trigger selama migrasi skema dan menghasilkan peringatan object ignored due to incremental migration is enabled. Anda memigrasikan trigger secara manual sebelum sinkronisasi/migrasi data inkremental selesai.Sumber SQL Server.

Cara kerja migrasi otomatis

Ketika Anda memilih Automatically Migrate, DTS menyalin kode trigger dari database sumber, membungkus isi trigger dengan pernyataan kontrol, lalu menulis trigger yang telah dimodifikasi ke database tujuan.

Trigger database sumber:

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

Trigger database tujuan (setelah dimodifikasi oleh DTS):

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;

Migrasi trigger secara manual

Langkah-langkah untuk memigrasikan trigger secara manual sama dengan langkah sinkronisasi manual. Contoh berikut menunjukkan sinkronisasi manual.

  1. Masuk ke Konsol Data Management (DMS). Di bilah navigasi atas, klik Data + AI. Di panel navigasi kiri, pilih DTS (DTS) > Data Synchronization.

    Anda juga dapat langsung menuju ke halaman Tugas Sinkronisasi Data di konsol DTS baru. Untuk opsi tata letak konsol, lihat Simple mode dan Sesuaikan tata letak dan gaya konsol DMS.
  2. Di sisi kanan Data Synchronization Tasks, pilih wilayah tempat instans sinkronisasi data berada.

    Di konsol DTS baru, pilih wilayah dari bilah navigasi atas.
  3. Temukan instans DTS dan klik ID instans tersebut.

  4. (Opsional) Di panel kiri, klik Task Management.

  5. Di bagian Progress, klik modul Incremental Write.

  6. Di tab Basic Information, klik Migrate Triggers.

    Jika Migrate Triggers tidak ditampilkan, berarti tidak ada trigger yang ditemukan selama sinkronisasi atau migrasi skema. Untuk memverifikasi hasil sinkronisasi trigger, periksa modul Schema Migration3 di bagian Progress.

FAQ

Bagaimana cara memilih jenis sinkronisasi/migrasi skema dan inkremental saat mengonfigurasi instans DTS?

Untuk tugas sinkronisasi data, pilih Schema Synchronization dan Incremental Data Synchronization untuk Synchronization Types. Untuk tugas migrasi data, pilih Schema Migration dan Incremental Data Migration untuk Migration Types.

Bagaimana cara menyelesaikan sinkronisasi atau migrasi data inkremental?

Hentikan, reset, atau rilis instans DTS. Untuk detailnya, lihat Hentikan instans DTS, Reset instans DTS, dan Rilis instans DTS.