全部产品
Search
文档中心

Data Transmission Service:Konfigurasikan tugas sinkronisasi atau migrasi data untuk database sumber yang berisi pemicu

更新时间:Jul 02, 2025

Jika Anda menentukan seluruh database sebagai objek yang akan disinkronkan dan database tersebut berisi pemicu yang memperbarui tabel, inkonsistensi data mungkin terjadi antara database sumber dan tujuan. Topik ini menjelaskan cara mengonfigurasi tugas sinkronisasi data untuk database sumber yang berisi pemicu guna mempertahankan konsistensi dan integritas data.

Informasi latar belakang

Jika database sumber dari tugas sinkronisasi atau migrasi berisi pemicu dan memenuhi kondisi tertentu, sinkronkan atau migrasikan pemicu sesuai referensi untuk memastikan konsistensi data antara database sumber dan tujuan. Topik ini menjelaskan cara mengonfigurasi tugas sinkronisasi atau migrasi data untuk database lain yang berisi pemicu.

Database sumber

Database tujuan

Deskripsi

Referensi

Tanpa Batas

PostgreSQL, PolarDB for PostgreSQL atau PolarDB for PostgreSQL (Kompatibel dengan Oracle)

  • Jika akun database tujuan yang digunakan oleh instance Data Transmission Service (DTS) memiliki izin yang cukup, seperti akun istimewa atau akun 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 bahwa nilai parameter session_replication_role dari database tujuan diatur ke replica selama tugas sinkronisasi atau migrasi data.

MySQL, PolarDB for MySQL, atau ApsaraDB RDS for MariaDB

MySQL, PolarDB for MySQL, atau ApsaraDB RDS for MariaDB

Anda dapat mengonfigurasi tugas sinkronisasi atau migrasi pemicu secara manual.

Sinkronkan atau migrasikan pemicu dari database sumber

SQL Server

SQL Server

Proses sinkronisasi atau migrasi

  1. Buat tugas migrasi untuk memigrasikan data dari database sumber ke database tujuan.

    Untuk informasi lebih lanjut, lihat Ikhtisar skenario migrasi data.

    Penting
    • Pilih hanya Schema Migration untuk parameter Migration Types.

    • Atur parameter Source Objects ke database atau skema.

  2. Masuk ke database tujuan dan hapus pemicu yang dimigrasikan dari database sumber.

  3. Buat tugas sinkronisasi atau migrasi untuk menyinkronkan atau memigrasikan data dari database sumber ke database tujuan.

    Untuk informasi lebih lanjut, lihat Ikhtisar skenario sinkronisasi data dan Ikhtisar skenario migrasi data.

    Penting
    • Sinkronisasi data: Secara default, Incremental Data Synchronization dipilih untuk parameter Synchronization Types. Anda juga perlu memilih Full Data Synchronization. Jangan pilih Schema Synchronization.

    • Migrasi data: Pilih Full Data Migration dan Incremental Data Migration untuk parameter Migration Types. Jangan pilih Schema Migration.

  4. Opsional. Hentikan atau lepaskan tugas setelah sinkronisasi atau migrasi data selesai.

    Untuk informasi lebih lanjut, lihat Hentikan instance DTS dan Lepas instance DTS.

    Catatan

    Setelah tugas dihentikan atau dilepaskan, Anda dapat menambahkan pemicu ke database tujuan secara manual sesuai kebutuhan bisnis Anda.

Contoh

Catatan

Contoh berikut menunjukkan cara memigrasikan data dari database MySQL yang dikelola sendiri ke instance ApsaraDB RDS for MySQL.

Persiapan data

Dua tabel (induk dan anak) dibuat dalam database MySQL bernama triggertestdata. Tabel induk berisi pemicu. Jika entri data dimasukkan ke tabel induk, pemicu memasukkan entri data ke tabel anak.

Catatan

Tabel berikut menjelaskan pernyataan tabel dan pemicu.

Jenis objek

Nama

Pernyataan

Tabel

induk

CREATE TABLE `induk` (
  `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

Tabel

anak

CREATE TABLE `anak` (
  `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

Pemicu

data_check

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

Dalam hal ini, jika operasi INSERT dilakukan pada tabel induk selama sinkronisasi data, data di tabel anak sumber tidak konsisten dengan data di tabel anak tujuan. Untuk menyelesaikan masalah ini, Anda harus menghapus pemicu di database tujuan.

Prosedur

  1. Buat tugas migrasi data untuk memigrasikan skema database sumber ke database tujuan.

    1. Klik Create Task untuk pergi ke halaman konfigurasi tugas.

    2. Konfigurasikan parameter di bagian Source Database dan Destination Database, lalu klik Test Connectivity and Proceed.

      Untuk informasi lebih lanjut, lihat Migrasikan data dari database MySQL yang dikelola sendiri ke instance ApsaraDB RDS for MySQL.

    3. Atur parameter Migration Types ke Schema Migration, dan pilih database atau skema.

      image

    4. Konfigurasikan parameter lainnya sesuai kebutuhan bisnis Anda.

  2. Selama migrasi skema, DTS juga memigrasikan pemicu ke database tujuan. Setelah tugas migrasi selesai, masuk ke database tujuan dan jalankan perintah berikut untuk menghapus pemicu yang dimigrasikan:

    drop trigger <Nama Pemicu>;

    Perintah contoh:

    drop trigger data_check;
  3. Buat tugas sinkronisasi data untuk menyinkronkan data dari database sumber ke database tujuan.

    1. Di panel navigasi di sebelah kiri, klik Data Synchronization.

    2. Konfigurasikan parameter di bagian Source Database dan Destination Database, lalu klik Test Connectivity and Proceed.

      Untuk informasi lebih lanjut, lihat Sinkronkan data dari database MySQL yang dikelola sendiri ke instance ApsaraDB RDS for MySQL.

      Catatan

      Konfigurasi database sumber dan tujuan harus sama dengan yang ada di Langkah 1.

    3. Pilih Full Data Synchronization untuk parameter Synchronization Types.

      Catatan
      • Objek yang akan disinkronkan harus sama dengan objek yang dimigrasikan di Langkah 1.

      • Secara default, Incremental Data Synchronization dipilih untuk parameter Synchronization Types. Jangan pilih Schema Synchronization.

      image

    4. Konfigurasikan parameter lainnya sesuai kebutuhan bisnis Anda.

Uji konsistensi data

  1. Masuk ke database sumber dan masukkan entri data ke tabel induk.

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

    Setelah entri data dimasukkan, pemicu memasukkan entri data ke tabel anak sumber.

  2. Masuk ke database sumber dan tujuan. Kueri data tabel anak sumber dan tabel anak tujuan. Periksa apakah data konsisten antara kedua tabel.

    • Hasil kueri tabel anak sumber

      +--------------+------------+----------+
      | sys_child_id | user_vs_id | name     |
      +--------------+------------+----------+
      |         2001 |          1 | testname |
      +--------------+------------+----------+
    • Hasil kueri tabel anak tujuan

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

    Hasil menunjukkan bahwa data di tabel anak sumber konsisten dengan data di tabel anak tujuan.

Apa yang harus dilakukan selanjutnya

  1. Setelah sinkronisasi data selesai, hentikan tugas sinkronisasi data yang dibuat di Langkah 3.

    Untuk informasi lebih lanjut, lihat Hentikan instance DTS.

  2. Opsional. Lihat pernyataan untuk membuat pemicu.

    1. Temukan tugas migrasi data yang dibuat di Langkah 1.

    2. Klik ID tugas yang ingin Anda kelola.

    3. Di halaman Task Management, klik Schema Migration2.

    4. Di tab Task Details, klik View Statements.

  3. Masuk ke database tujuan dan tambahkan pemicu.