All Products
Search
Document Center

Data Transmission Service:Sinkronisasi satu arah antar instans RDS MySQL

Last Updated:Mar 29, 2026

Layanan Transmisi Data (DTS) menyinkronkan data dari instans sumber ApsaraDB RDS untuk MySQL ke instans tujuan dalam tiga tahap berurutan: sinkronisasi skema, sinkronisasi data penuh, dan sinkronisasi data inkremental. Gunakan panduan ini untuk mengonfigurasi tugas secara end-to-end.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Instans sumber ApsaraDB RDS untuk MySQL dalam status normal

  • Instans tujuan ApsaraDB RDS untuk MySQL dengan penyimpanan tersedia yang lebih besar daripada ukuran total data instans sumber. Lihat Buat instans ApsaraDB RDS untuk MySQL

Penagihan

Jenis sinkronisasiBiaya
Sinkronisasi skema dan sinkronisasi data penuhGratis
Sinkronisasi data inkrementalDikenai biaya. Lihat Ikhtisar penagihan

Operasi SQL yang didukung

Jenis operasiPernyataan SQL
DMLINSERT, UPDATE, DELETE
DDLALTER TABLE, ALTER VIEW, CREATE FUNCTION, CREATE INDEX, CREATE PROCEDURE, CREATE TABLE, CREATE VIEW, DROP INDEX, DROP TABLE, RENAME TABLE, TRUNCATE TABLE
Penting

RENAME TABLE dapat menyebabkan ketidakkonsistenan data. Jika Anda mengganti nama tabel yang disinkronkan selama tugas berjalan, data dari tabel tersebut berhenti disinkronkan ke tujuan. Untuk menghindari hal ini, pilih database (bukan tabel individual) sebagai objek sinkronisasi, dan pastikan database sebelum dan sesudah penggantian nama termasuk dalam konfigurasi.

Izin akun database yang diperlukan

DatabaseIzin yang diperlukan
Instans sumber ApsaraDB RDS untuk MySQLIzin baca dan tulis. Lihat Buat akun dan Ubah izin akun
Instans tujuan ApsaraDB RDS untuk MySQLIzin baca dan tulis. Lihat Buat akun dan Ubah izin akun
Jika akun database sumber tidak dibuat melalui konsol ApsaraDB RDS untuk MySQL, berikan izin REPLICATION CLIENT, REPLICATION SLAVE, SHOW VIEW, dan SELECT secara manual. Untuk menyinkronkan informasi akun dari sumber, diperlukan izin tambahan. Lihat Migrasi akun database.

Batasan

Tinjau batasan berikut sebelum memulai. Sebagian besar kegagalan tugas dan ketidakkonsistenan data disebabkan oleh pengabaian batasan ini.

Struktur tabel

  • Tabel yang akan disinkronkan harus memiliki PRIMARY KEY atau kendala UNIK dengan semua bidang unik. Tanpa ini, instans tujuan mungkin berisi catatan duplikat.

  • Jika Anda memilih tabel (bukan database) sebagai objek sinkronisasi dan berencana mengganti nama tabel atau kolom, satu tugas mendukung hingga 1.000 tabel. Untuk lebih dari 1.000 tabel, konfigurasikan beberapa tugas atau lakukan sinkronisasi di tingkat database.

Log biner

Pengaturan log biner berikut harus diterapkan sebelum DTS dapat membaca perubahan dari sumber:

  • binlog_row_image harus diatur ke full. Binary logging diaktifkan secara default pada instans ApsaraDB RDS untuk MySQL, tetapi verifikasi parameter ini. Lihat Ubah parameter instans.

    • Jika sumber adalah database MySQL yang dikelola sendiri: Anda harus mengaktifkan binary logging dan mengatur binlog_format ke row dan binlog_row_image ke full.

    • Jika sumber adalah database MySQL yang dikelola sendiri yang dideploy dalam kluster dual-primary: Anda juga harus mengatur log_slave_updates ke ON untuk memastikan DTS dapat memperoleh semua log biner. Lihat Buat akun untuk database MySQL yang dikelola sendiri dan konfigurasi binary logging.

  • Retensi log biner harus minimal 7 hari. Jika DTS tidak dapat mengakses log biner yang diperlukan, tugas gagal dan kehilangan data mungkin terjadi. Lihat Kelola file log biner.

Jangan mengeksekusi pernyataan DDL pada database sumber selama sinkronisasi skema atau sinkronisasi data penuh. Hal ini menyebabkan tugas gagal.

Kompatibilitas versi dan set karakter

  • Versi database tujuan harus sama dengan atau lebih baru daripada sumber. Versi tujuan yang lebih lama dapat menyebabkan masalah kompatibilitas.

  • Jika database sumber adalah MySQL 8.0.23 atau lebih baru dan mencakup kolom tak terlihat, DTS tidak dapat memperoleh data kolom tersebut — terjadi kehilangan data.

  • Jika database tujuan adalah MySQL 8.0.23 atau lebih baru dan mencakup kolom tak terlihat, kolom tujuan untuk menerima data tidak dapat ditemukan, menyebabkan instans DTS gagal dan terjadi kehilangan data.

  • Dalam kedua kasus tersebut, jalankan ALTER TABLE <table_name> ALTER COLUMN <column_name> SET VISIBLE; untuk membuat kolom tak terlihat menjadi terlihat sebelum memulai tugas. Tabel tanpa kunci utama secara otomatis menghasilkan kunci utama tak terlihat; buat juga kunci tersebut terlihat. Lihat Kolom Tak Terlihat dan Kunci Utama Tak Terlihat yang Dihasilkan.

  • Jika Anda tidak menggunakan sinkronisasi skema, pastikan kompatibilitas tipe bidang dipertahankan. Misalnya, bidang text di sumber yang dipetakan ke bidang varchar(255) di tujuan dapat menyebabkan pemotongan data.

  • Jika data berisi karakter 4-byte (seperti karakter langka atau emoji), tabel tujuan harus menggunakan set karakter UTF8mb4. Jika menggunakan sinkronisasi skema, atur parameter character_set_server ke UTF8mb4 di database tujuan.

  • Nama kolom di MySQL tidak peka huruf besar/kecil. Jika sumber memiliki beberapa kolom yang namanya hanya berbeda dalam kapitalisasi, kolom tersebut ditulis ke kolom yang sama di tujuan, menyebabkan hasil yang tidak diinginkan.

DDL Online

  • Jangan gunakan pt-online-schema-change untuk DDL online pada tabel yang dipilih sebagai objek sinkronisasi. Gunakan Data Management (DMS) sebagai gantinya. Lihat Lakukan operasi DDL tanpa lock.

  • Jika operasi DDL gagal di tujuan, tugas DTS tetap berjalan. Periksa log tugas untuk pernyataan DDL yang gagal. Lihat Lihat log tugas.

  • DTS tidak menyinkronkan data yang menggunakan parser yang didefinisikan oleh komentar.

Konsistensi data

  • Jangan menulis data dari sumber lain ke tujuan selama sinkronisasi berlangsung. Hal ini menyebabkan ketidakkonsistenan data.

  • Data yang dihasilkan oleh operasi perubahan log biner (seperti data yang dipulihkan dari backup fisik atau operasi kaskade) tidak dicatat atau disinkronkan ke tujuan selama tugas berjalan.

Perilaku kunci asing

  • Selama sinkronisasi skema, DTS menyinkronkan kunci asing dari sumber ke tujuan.

  • Selama sinkronisasi data penuh dan inkremental, DTS sementara menonaktifkan pemeriksaan kendala kunci asing dan operasi kaskade di tingkat session. Operasi pembaruan atau penghapusan kaskade di sumber selama periode ini dapat menyebabkan ketidakkonsistenan data.

Dampak performa

Sinkronisasi data penuh membaca semua data dari database sumber sekali, yang meningkatkan beban pada kedua database. Untuk mengurangi risiko:

  • Jalankan tugas sinkronisasi selama jam sepi.

  • Perkirakan ruang tabel tujuan akan lebih besar daripada sumber setelah sinkronisasi penuh, karena fragmentasi INSERT konkuren.

  • Setelah status tugas berubah menjadi Completed, jalankan analyze table <table_name> untuk memverifikasi bahwa data telah ditulis dengan benar ke tujuan. (Misalnya, alih bencana ketersediaan tinggi (HA) di sumber dapat menyebabkan beberapa data hanya ditulis ke memori.)

Kasus khusus

Untuk sumber MySQL yang dikelola sendiri:

  • Jika terjadi alih bencana primary/secondary pada database sumber saat tugas sedang berjalan, tugas gagal.

  • DTS menghitung latensi sinkronisasi berdasarkan timestamp data terbaru yang disinkronkan di tujuan dan timestamp saat ini di sumber. Jika tidak ada operasi DML yang dilakukan di sumber dalam waktu lama, latensi mungkin tidak akurat. Jika latensi terlalu tinggi, lakukan operasi DML di sumber untuk memperbaruinya. Jika Anda memilih seluruh database sebagai objek sinkronisasi, Anda dapat membuat tabel heartbeat yang diperbarui setiap detik untuk menjaga akurasi latensi.

  • DTS mengeksekusi CREATE DATABASE IF NOT EXISTS 'test' di sumber secara berkala untuk memajukan posisi log biner.

Untuk sumber ApsaraDB RDS untuk MySQL:

  • Instans ApsaraDB RDS untuk MySQL 5.6 read-only (yang tidak mencatat log transaksi) tidak dapat digunakan sebagai sumber.

  • DTS mengeksekusi CREATE DATABASE IF NOT EXISTS 'test' di sumber secara berkala untuk memajukan posisi log biner.

  • Instans ApsaraDB RDS untuk MySQL dengan fitur EncDB yang diaktifkan tidak mendukung sinkronisasi data penuh. Instans dengan Enkripsi Data Transparan (TDE) yang diaktifkan mendukung sinkronisasi skema, sinkronisasi data penuh, dan sinkronisasi data inkremental.

Jika dukungan teknis DTS memulihkan tugas yang gagal:

  • Dukungan mencoba pemulihan dalam waktu 8 jam. Tugas mungkin dimulai ulang dan parameter tugas tertentu mungkin diubah. Parameter database tidak diubah.

Konfigurasi tugas sinkronisasi

Langkah 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 kiri, pilih DTS (DTS) > Data Synchronization.

Navigasi mungkin berbeda tergantung pada mode dan tata letak Konsol DMS Anda. Lihat Mode simple dan Sesuaikan tata letak dan gaya Konsol DMS. Atau, buka langsung halaman Tugas Sinkronisasi Data di Konsol DTS baru.

Langkah 2: Buat tugas

  1. Pilih wilayah tempat instans sinkronisasi data Anda berada.

    Di Konsol DTS baru, pilih wilayah di bilah navigasi atas.
  2. Klik Create Task.

  3. (Opsional) Klik New Configuration Page di pojok kanan atas halaman.

    Lewati langkah ini jika tombol Back to Previous Version ditampilkan. Halaman konfigurasi baru direkomendasikan.

Langkah 3: Konfigurasi database sumber dan tujuan

Peringatan

Setelah mengonfigurasi database sumber dan tujuan, tinjau Batasan yang ditampilkan di halaman sebelum melanjutkan. Melewatkan langkah ini dapat menyebabkan tugas gagal atau mengakibatkan ketidakkonsistenan data.

Isi parameter berikut untuk sumber dan tujuan:

BagianParameterDeskripsi
N/ATask NameNama deskriptif untuk tugas DTS. DTS menghasilkan nama default; ganti dengan nama yang bermakna. Nama unik tidak diperlukan.
Source DatabaseSelect a DMS database instancePada contoh ini, tidak ada instans database yang dipilih sebelumnya. Konfigurasi parameter di bawah secara manual.
Database TypePilih MySQL.
Access MethodPilih Alibaba Cloud Instance.
Instance RegionWilayah tempat instans sumber berada.
Replicate Data Across Alibaba Cloud AccountsPilih No (contoh akun yang sama).
RDS Instance IDID instans sumber ApsaraDB RDS untuk MySQL.
Database AccountAkun database untuk instans sumber. Lihat Izin akun database yang diperlukan.
Database PasswordKata sandi untuk akun database.
EncryptionPilih Non-encrypted atau SSL-encrypted. Untuk menggunakan enkripsi SSL, aktifkan terlebih dahulu di instans. Lihat Gunakan sertifikat cloud untuk mengaktifkan enkripsi SSL.
Destination DatabaseSelect a DMS database instancePada contoh ini, tidak ada instans database yang dipilih sebelumnya. Konfigurasi parameter di bawah secara manual.
Database TypePilih MySQL.
Access MethodPilih Alibaba Cloud Instance.
Instance RegionWilayah tempat instans tujuan berada.
Replicate Data Across Alibaba Cloud AccountsPilih No (contoh akun yang sama).
RDS Instance IDID instans tujuan ApsaraDB RDS untuk MySQL.
Database AccountAkun database untuk instans tujuan. Lihat Izin akun database yang diperlukan.
Database PasswordKata sandi untuk akun database.
EncryptionPilih Non-encrypted atau SSL-encrypted. Untuk menggunakan enkripsi SSL, aktifkan terlebih dahulu di instans. Lihat Gunakan sertifikat cloud untuk mengaktifkan enkripsi SSL.

Langkah 4: Uji konektivitas

Klik Test Connectivity and Proceed.

DTS secara otomatis menambahkan blok CIDR servernya ke daftar putih instans database Alibaba Cloud. Untuk database yang di-host di ECS, DTS menambahkan blok CIDR ke aturan grup keamanan ECS dan Anda harus memastikan instans ECS dapat mengakses database — jika database tersebar di beberapa instans ECS, tambahkan blok CIDR ke grup keamanan setiap instans secara manual. Untuk database on-premises atau database yang di-host oleh penyedia cloud pihak ketiga, tambahkan blok CIDR server DTS ke daftar putih database secara manual. Lihat Blok CIDR server DTS.

Peringatan

Menambahkan blok CIDR server DTS ke daftar putih atau grup keamanan menimbulkan risiko keamanan. Sebelum melanjutkan, ambil tindakan pencegahan seperti memperkuat kredensial, membatasi port yang terbuka, mengautentikasi panggilan API, dan mengaudit aturan daftar putih secara berkala. Atau, hubungkan database ke DTS menggunakan Express Connect, VPN Gateway, atau Smart Access Gateway.

Langkah 5: Konfigurasi objek sinkronisasi

Pada langkah Configure Objects, isi parameter berikut:

ParameterDeskripsi
Synchronization TypesIncremental Data Synchronization dipilih secara default. Pilih juga Schema Synchronization dan Full Data Synchronization. DTS menggunakan sinkronisasi penuh sebagai garis dasar sebelum memulai sinkronisasi inkremental.
Method to Migrate Triggers in Source DatabasePilih cara menangani trigger dari sumber. Hanya tersedia saat Schema Synchronization dipilih. Lihat Sinkronkan atau migrasi trigger dari database sumber.
Enable Migration AssessmentPilih Yes untuk memeriksa apakah skema sumber dan tujuan (termasuk panjang indeks, prosedur tersimpan, dan tabel dependen) memenuhi persyaratan. Hasil penilaian ditampilkan selama pemeriksaan awal tetapi tidak memengaruhi hasil pemeriksaan awal. Hanya tersedia saat Schema Synchronization dipilih.
Synchronization TopologyPilih One-way Synchronization.
Processing Mode of Conflicting TablesPrecheck and Report Errors (direkomendasikan): pemeriksaan awal gagal jika tujuan berisi tabel dengan nama yang sama seperti sumber. Gunakan pemetaan nama objek untuk menyelesaikan konflik penamaan. Ignore Errors and Proceed: melewati pemeriksaan awal untuk nama tabel yang identik. Selama sinkronisasi penuh, catatan tujuan yang ada dengan nilai kunci utama atau unik yang cocok dipertahankan. Selama sinkronisasi inkremental, catatan yang cocok ditimpa. Perbedaan skema dapat menyebabkan sinkronisasi parsial atau kegagalan tugas.
Capitalization of Object Names in Destination InstanceMengontrol kapitalisasi nama database, tabel, dan kolom di tujuan. Default-nya adalah DTS default policy. Lihat Tentukan kapitalisasi nama objek di instans tujuan.
Source ObjectsPilih objek yang akan disinkronkan (kolom, tabel, atau database) dan klik ikon panah untuk menambahkannya ke Selected Objects. Memilih tabel atau kolom mengecualikan jenis objek lain (view, trigger, prosedur tersimpan) dari sinkronisasi.
Selected ObjectsUntuk mengganti nama satu objek di tujuan, klik kanan objek tersebut dan pilih opsi ganti nama. Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit. Lihat Pemetaan nama objek. Untuk memfilter baris menggunakan kondisi WHERE, klik kanan objek dan atur kondisinya. Lihat Atur kondisi filter. Untuk menyinkronkan operasi SQL tertentu untuk tabel atau database, klik kanan objek dan pilih operasinya.
Mengganti nama objek dengan pemetaan nama objek dapat menyebabkan objek lain yang bergantung padanya gagal disinkronkan.

Langkah 6: Konfigurasi pengaturan lanjutan

Klik Next: Advanced Settings dan isi parameter berikut:

ParameterDeskripsi
Dedicated Cluster for Task SchedulingSecara default, DTS menjadwalkan tugas di kluster bersama. Beli kluster khusus untuk stabilitas yang lebih baik. Lihat Apa itu kluster khusus DTS.
Copy the temporary table of the Online DDL tool that is generated in the source table to the destination databaseMengontrol apakah akan menyinkronkan tabel sementara yang dihasilkan oleh alat DDL online. Jika menggunakan DMS atau gh-ost untuk DDL online, pilih Yes untuk menyinkronkan data tabel sementara (catatan: operasi besar memperpanjang waktu sinkronisasi), No, Adapt to DMS Online DDL untuk hanya menyinkronkan DDL akhir (tabel tujuan mungkin terkunci), atau No, Adapt to gh-ost untuk hanya menyinkronkan DDL akhir dari gh-ost (tabel tujuan mungkin terkunci). Jangan gunakan pt-online-schema-change saat tabel (bukan seluruh database) dipilih sebagai objek sinkronisasi — hal ini akan menyebabkan tugas gagal.
Whether to Migrate AccountsPilih Yes untuk menyinkronkan informasi akun dari sumber. Tentukan akun yang akan disinkronkan dan tinjau izinnya.
Retry Time for Failed ConnectionsBerapa lama DTS mencoba koneksi yang gagal setelah tugas dimulai. Nilai valid: 10–1440 menit. Default: 720 menit. Atur lebih dari 30 menit. Jika DTS terhubung kembali dalam jangka waktu ini, tugas dilanjutkan. Jika tidak, tugas gagal. Catatan: saat DTS mencoba koneksi ulang, Anda dikenai biaya untuk instans DTS. Jika Anda menentukan rentang waktu coba ulang yang berbeda untuk beberapa tugas yang berbagi database sumber atau tujuan yang sama, rentang waktu coba ulang terpendek yang berlaku. Kami merekomendasikan untuk segera melepas instans DTS setelah instans sumber dan tujuan dilepas.
Retry Time for Other IssuesBerapa lama DTS mencoba ulang operasi DDL atau DML yang gagal. Nilai valid: 1–1440 menit. Default: 10 menit. Atur lebih dari 10 menit. Nilai ini harus kurang dari Retry Time for Failed Connections.
Enable Throttling for Full Data MigrationMembatasi beban baca/tulis selama sinkronisasi data penuh. Konfigurasi Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s). Hanya terlihat saat Full Data Synchronization dipilih.
Enable Throttling for Incremental Data SynchronizationMembatasi beban selama sinkronisasi inkremental. Konfigurasi RPS of Incremental Data Synchronization dan Data synchronization speed for incremental synchronization (MB/s).
Environment TagBeri tag instans DTS untuk identifikasi. Opsional.
Whether to delete SQL operations on heartbeat tables of forward and reverse tasksMengontrol apakah DTS menulis operasi SQL heartbeat ke database sumber. Pilih Yes untuk melewati penulisan (latensi sinkronisasi mungkin muncul di halaman tugas). Pilih No untuk menulis operasi heartbeat (hal ini dapat memengaruhi backup fisik dan kloning database sumber).
Configure ETLPilih Yes untuk mengaktifkan fitur ekstrak, transformasi, muat (ETL) dan masukkan pernyataan pemrosesan. Lihat Apa itu ETL? dan Konfigurasi ETL dalam tugas migrasi data atau sinkronisasi data.
Monitoring and AlertingPilih Yes untuk menerima notifikasi saat tugas gagal atau latensi sinkronisasi melebihi ambang batas. Konfigurasi ambang batas peringatan dan pengaturan notifikasi. Lihat Konfigurasi pemantauan dan peringatan.

Langkah 7: Konfigurasi verifikasi data (opsional)

Klik Next Step: Data Verification untuk mengatur verifikasi data untuk tugas. Lihat Konfigurasi tugas verifikasi data.

Langkah 8: Jalankan pemeriksaan awal

Klik Next: Save Task Settings and Precheck.

Untuk melihat pratinjau parameter API untuk konfigurasi ini, arahkan kursor ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters.

DTS menjalankan pemeriksaan awal sebelum tugas dapat dimulai. Tunggu hingga pemeriksaan awal selesai:

  • Jika suatu item gagal, klik View Details untuk melihat penyebabnya dan perbaiki masalah tersebut, lalu klik Precheck Again.

  • Jika suatu item menampilkan peringatan, perbaiki masalah tersebut atau klik Confirm Alert Details > Ignore > OK > Precheck Again untuk melanjutkan. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.

Langkah 9: Beli instans

Setelah Success Rate mencapai 100%, klik Next: Purchase Instance.

Di halaman buy, konfigurasi hal berikut:

BagianParameterDeskripsi
New Instance ClassBilling MethodSubscription: bayar di muka untuk periode tetap. Lebih hemat biaya untuk penggunaan jangka panjang. Pay-as-you-go: ditagih per jam. Cocok untuk penggunaan jangka pendek; lepas instans saat tidak lagi diperlukan untuk menghentikan biaya.
Resource Group SettingsKelompok sumber daya untuk instans. Default: default resource group. Lihat Apa itu Resource Management?
Instance ClassMengontrol throughput sinkronisasi. Lihat Kelas instans instansi sinkronisasi data.
Subscription DurationTersedia saat Subscription dipilih. Opsi: 1–9 bulan, 1 tahun, 2 tahun, 3 tahun, atau 5 tahun.

Baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms, lalu klik Buy and Start dan konfirmasi.

Tugas muncul di daftar tugas. Pantau perkembangannya di sana.

Langkah selanjutnya