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. |
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_roledi database tujuan diatur kereplicaselama 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.
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 enabledsaat 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
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.
Buka halaman Tugas Sinkronisasi Data.
Masuk ke Konsol Data Management (DMS).
Di bilah navigasi atas, klik Data + AI.
Di panel navigasi sisi kiri, pilih .
CatatanOperasi mungkin bervariasi berdasarkan mode dan tata letak konsol DMS. Untuk informasi lebih lanjut, lihat Mode Sederhana dan Sesuaikan Tata Letak dan Gaya Konsol DMS.
Anda juga dapat membuka Halaman Tugas Sinkronisasi Data Konsol DTS Baru.
Di sisi kanan Data Synchronization Tasks, pilih wilayah tempat instance sinkronisasi data berada.
CatatanJika Anda menggunakan konsol DTS baru, Anda harus memilih wilayah tempat instance sinkronisasi data berada di bilah navigasi atas.
Temukan instance DTS yang ingin Anda kelola dan klik ID instance.
Opsional. Di panel sisi kiri, klik Task Management.
Di bagian Progress, klik modul Incremental Write.
Pada tab Basic Information, klik Migrate Triggers.
CatatanJika 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.