All Products
Search
Document Center

Data Transmission Service:Sinkronisasi data dari database MySQL yang dikelola sendiri ke instans ApsaraDB RDS untuk MySQL

Last Updated:Mar 29, 2026

Layanan Transmisi Data (DTS) menyinkronkan data dari database MySQL yang dikelola sendiri — yang di-deploy pada server on-premises, instans Elastic Compute Service (ECS), atau cloud pihak ketiga — ke instans ApsaraDB RDS untuk MySQL tanpa mengganggu layanan Anda. Secara default, DTS hanya menyinkronkan data inkremental real-time. Untuk memigrasikan data historis juga, aktifkan sinkronisasi skema dan sinkronisasi data penuh.

Prasyarat

Sebelum memulai, pastikan bahwa:

  • Database MySQL yang dikelola sendiri terhubung ke Alibaba Cloud, dan blok Classless Inter-Domain Routing (CIDR) server DTS telah ditambahkan ke aturan grup keamanan, kebijakan firewall, serta daftar putih alamat IP database sumber. Untuk informasi lebih lanjut, lihat Tambahkan blok CIDR server DTS.

  • Akun database telah dibuat untuk database MySQL yang dikelola sendiri, dan binary logging telah dikonfigurasi. Untuk versi database yang didukung, lihat Persiapan.

  • Instans ApsaraDB RDS untuk MySQL tujuan telah dibuat, dan ruang penyimpanannya tersedia lebih besar daripada total ukuran data di database sumber. Untuk informasi lebih lanjut, lihat Buat instans ApsaraDB RDS untuk MySQL.

Batasan

Persyaratan database sumber

  • Tabel harus memiliki PRIMARY KEY atau kendala UNIK, dengan semua field unik. Jika tidak, catatan duplikat mungkin muncul di database tujuan.

  • Jika Anda memilih tabel individual sebagai objek sinkronisasi dan mengganti nama tabel atau kolom, satu tugas sinkronisasi mendukung hingga 1.000 tabel. Melebihi batas ini menyebabkan error permintaan. Dalam kasus tersebut, bagi tabel ke beberapa tugas, atau sinkronkan seluruh database.

  • Persyaratan log biner harus dipenuhi:

    Catatan

    Jika sumbernya adalah database MySQL yang dikelola sendiri, Anda harus secara eksplisit mengaktifkan binary logging dan mengatur kedua parameter berikut. Untuk RDS MySQL, binary logging diaktifkan secara default — cukup verifikasi bahwa binlog_row_image diatur ke FULL. Untuk informasi lebih lanjut, lihat Buat akun untuk database MySQL yang dikelola sendiri dan konfigurasi binary logging dan Ubah parameter instans.

    ParameterNilai yang DiperlukanCatatan
    binlog_formatROWHanya untuk MySQL yang dikelola sendiri
    binlog_row_imageFULLDiperlukan untuk MySQL yang dikelola sendiri maupun ApsaraDB RDS untuk MySQL
    log_slave_updatesONHanya untuk MySQL yang dikelola sendiri dalam kluster dual-primary
    Periode retensi (RDS MySQL)Minimal 3 hari (disarankan 7 hari)Retensi lebih pendek dapat menyebabkan tugas gagal
    Periode retensi (MySQL yang dikelola sendiri)Minimal 7 hariRetensi lebih pendek dapat menyebabkan tugas gagal karena DTS tidak dapat memperoleh log biner; dalam kondisi luar biasa, ketidakkonsistenan atau kehilangan data dapat terjadi
  • Jangan mengeksekusi pernyataan DDL yang mengubah skema selama sinkronisasi skema atau sinkronisasi data penuh. Melakukannya akan menyebabkan tugas gagal.

  • Data yang dihasilkan oleh operasi perubahan log biner — seperti data yang dipulihkan dari backup fisik atau data dari operasi kaskade — tidak disinkronkan. Jika hal ini memengaruhi bisnis Anda, hapus database dan tabel yang terdampak dari objek sinkronisasi, lalu tambahkan kembali. Untuk informasi lebih lanjut, lihat Ubah objek yang akan disinkronkan.

  • Jika sumbernya adalah MySQL 8.0.23 atau lebih baru dan tabel mencakup kolom tak terlihat (invisible columns), DTS tidak dapat membaca kolom tersebut dan terjadi kehilangan data. Untuk memperbaikinya, buat kolom tersebut menjadi terlihat:

    • Jalankan ALTER TABLE <table_name> ALTER COLUMN <column_name> SET VISIBLE;. Lihat Invisible Columns.

    • Tabel tanpa primary key secara otomatis menghasilkan primary key tak terlihat. Buat juga primary key tersebut menjadi terlihat. Lihat Generated Invisible Primary Keys.

Operasi yang tidak didukung

Perilaku berikut tidak didukung atau menyebabkan kegagalan sinkronisasi:

  • Data yang didefinisikan parser: DTS tidak menyinkronkan data yang menggunakan parser yang didefinisikan melalui komentar.

  • pt-online-schema-change: Jangan gunakan pt-online-schema-change untuk operasi DDL Online pada objek sinkronisasi. Gunakan Data Management (DMS) sebagai gantinya. Untuk informasi lebih lanjut, lihat Lakukan operasi DDL tanpa lock.

  • RENAME TABLE pada objek sinkronisasi: Mengganti nama tabel yang dipilih sebagai objek sinkronisasi menghentikan sinkronisasi datanya. Untuk menghindarinya, tambahkan database yang berisi tabel tersebut — baik sebelum maupun setelah penggantian nama — ke daftar objek sinkronisasi.

  • Penulisan ke tujuan selama sinkronisasi: Menulis data dari sumber lain ke database tujuan selama sinkronisasi menyebabkan ketidakkonsistenan data.

  • Sumber EncDB: Jika sumbernya adalah instans ApsaraDB RDS untuk MySQL dengan fitur EncDB diaktifkan, sinkronisasi data penuh tidak dapat dilakukan.

    Instans ApsaraDB RDS untuk MySQL dengan Enkripsi Data Transparan (TDE) diaktifkan mendukung sinkronisasi skema, sinkronisasi data penuh, dan sinkronisasi data inkremental.
  • Alih bencana primer/sekunder: Jika Anda melakukan alih bencana primer/sekunder pada sumber MySQL yang dikelola sendiri saat tugas sedang berjalan, tugas tersebut gagal.

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

Pertimbangan lainnya

  • Versi database tujuan harus sama dengan atau lebih baru daripada versi database sumber.

  • Jika tujuannya adalah MySQL 8.0.23 atau lebih baru dengan kolom tak terlihat di tabel tujuan, DTS tidak dapat menemukan kolom target dan tugas gagal. Buat kolom tersebut menjadi terlihat menggunakan perintah ALTER TABLE di atas.

  • Jika Anda tidak menggunakan sinkronisasi skema DTS, pastikan tipe field kompatibel antara sumber dan tujuan. Misalnya, field text di sumber yang dipetakan ke varchar(255) di tujuan dapat menyebabkan pemotongan data.

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

  • Jalankan sinkronisasi selama jam sepi. Sinkronisasi data penuh awal membaca dari sumber dan menulis ke tujuan secara bersamaan, yang meningkatkan beban pada kedua database.

  • Setelah sinkronisasi data penuh awal, ruang tabel tujuan biasanya lebih besar daripada sumber karena fragmentasi dari operasi INSERT bersamaan.

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

  • Selama sinkronisasi skema, DTS menyinkronkan kunci asing. Selama sinkronisasi penuh dan inkremental, DTS sementara menonaktifkan pemeriksaan kendala dan operasi kaskade pada kunci asing di tingkat sesi. Jika Anda menjalankan operasi cascade update atau delete di sumber selama periode ini, ketidakkonsistenan data dapat terjadi.

  • Jika pernyataan DDL gagal di tujuan, tugas DTS tetap berjalan. Lihat pernyataan DDL yang gagal di log tugas. Untuk informasi lebih lanjut, lihat Lihat log tugas.

  • Jika Anda ingin menyinkronkan informasi akun dari sumber, diperlukan izin tambahan. Untuk informasi lebih lanjut, lihat Migrasi akun database.

  • Jika tugas DTS gagal, dukungan teknis DTS berusaha memulihkannya dalam waktu 8 jam. Tugas mungkin dimulai ulang, dan parameter tingkat tugas (bukan parameter database) mungkin diubah.

Latensi sinkronisasi untuk sumber MySQL yang dikelola sendiri

DTS menghitung latensi sinkronisasi berdasarkan timestamp data terbaru yang telah disinkronkan di tujuan dan timestamp saat ini di sumber. Jika tidak ada operasi DML yang dilakukan di sumber dalam periode panjang, latensi yang ditampilkan mungkin tidak akurat. Untuk memperbarui latensi, jalankan operasi DML di sumber. Jika Anda menyinkronkan seluruh database, buat tabel heartbeat yang menerima data setiap detik.

DTS juga menjalankan CREATE DATABASE IF NOT EXISTS 'test' di sumber secara berkala untuk memajukan posisi file log biner. Ini berlaku baik untuk sumber MySQL yang dikelola sendiri maupun sumber ApsaraDB RDS untuk MySQL.

Penagihan

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

Topologi sinkronisasi yang didukung

  • Sinkronisasi satu arah satu-ke-satu

  • Sinkronisasi satu arah satu-ke-banyak

  • Sinkronisasi satu arah banyak-ke-satu

  • Sinkronisasi satu arah kaskade

Operasi SQL yang dapat disinkronkan

JenisOperasi
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

Izin yang diperlukan untuk akun database

DatabaseSinkronisasi skemaSinkronisasi data penuhSinkronisasi data inkremental
MySQL yang dikelola sendiriSELECTSELECTSELECT pada objek sinkronisasi; REPLICATION CLIENT, REPLICATION SLAVE, dan SHOW VIEW; izin untuk membuat database dan tabel (DTS membuat database bernama dts untuk menyimpan data heartbeat)
ApsaraDB RDS untuk MySQL (tujuan)Baca dan tulisBaca dan tulisBaca dan tulis

Untuk petunjuk membuat dan memberikan izin kepada akun database, lihat:

Buat tugas sinkronisasi data

Peringatan

Setelah mengonfigurasi database sumber dan tujuan, baca dengan cermat Limits yang ditampilkan di halaman. Melewatkan langkah ini dapat menyebabkan tugas gagal atau mengakibatkan ketidakkonsistenan data.

Langkah 1: Buka halaman sinkronisasi data

Gunakan salah satu metode berikut:

Konsol DTS

  1. Masuk ke Konsol DTS

  2. Di panel navigasi kiri, klik Data Synchronization.

  3. Di pojok kiri atas, pilih wilayah tempat instans sinkronisasi data berada.

Konsol DMS

Operasi aktual dapat berbeda tergantung mode dan tata letak Konsol DMS. Untuk informasi lebih lanjut, lihat Mode simple dan Sesuaikan tata letak dan gaya Konsol DMS.

  1. Masuk ke Konsol DMS

  2. Di bilah navigasi atas, arahkan kursor ke Data + AI lalu pilih DTS (DTS) > Data Synchronization.

  3. Dari daftar drop-down di sebelah kanan Data Synchronization Tasks, pilih wilayah tempat instans sinkronisasi data berada.

Langkah 2: Konfigurasi database sumber dan tujuan

  1. Klik Create Task.

  2. Konfigurasi parameter database sumber:

    ParameterDeskripsi
    Task NameNama untuk tugas DTS. DTS menghasilkan nama secara otomatis. Gunakan nama deskriptif agar mudah diidentifikasi. Nama tidak perlu unik.
    Select Existing ConnectionJika sumber telah terdaftar di DTS, pilih dari daftar drop-down — DTS akan mengisi parameter lainnya secara otomatis. Jika tidak, isi parameter di bawah ini. Untuk informasi lebih lanjut, lihat Kelola koneksi database.
    Database TypePilih MySQL.
    Access MethodPilih Self-managed Database on ECS. Untuk persiapan lingkungan, lihat Ikhtisar persiapan.
    Instance RegionWilayah tempat database MySQL sumber berada.
    Replicate Data Across Alibaba Cloud AccountsPilih No untuk contoh ini.
    ECS Instance IDID instans ECS yang menjalankan database MySQL sumber.
    Port NumberPort layanan database MySQL sumber. Port harus dapat diakses melalui Internet. Default: 3306.
    Database AccountAkun untuk database MySQL sumber. Lihat bagian Izin yang diperlukan untuk akun database.
    Database PasswordKata sandi untuk akun database.
    EncryptionPilih Non-encrypted atau SSL-encrypted sesuai kebutuhan Anda. Jika Anda memilih SSL-encrypted, unggah CA Certificate dan konfigurasi parameter CA Key.
  3. Konfigurasi parameter database tujuan:

    ParameterDeskripsi
    Select Existing ConnectionJika tujuan telah terdaftar di DTS, pilih dari daftar drop-down. Jika tidak, isi parameter di bawah ini. Untuk informasi lebih lanjut, lihat Kelola koneksi database.
    Database TypePilih MySQL.
    Access MethodPilih Alibaba Cloud Instance.
    Instance RegionWilayah tempat instans ApsaraDB RDS untuk MySQL tujuan berada.
    Replicate Data Across Alibaba Cloud AccountsPilih No untuk contoh ini.
    RDS Instance IDID instans ApsaraDB RDS untuk MySQL tujuan.
    Database AccountAkun untuk database tujuan. Lihat bagian Izin yang diperlukan untuk akun database.
    Database PasswordKata sandi untuk akun database.
    EncryptionPilih Non-encrypted atau SSL-encrypted. Untuk menggunakan enkripsi SSL, aktifkan terlebih dahulu di instans RDS. Untuk informasi lebih lanjut, lihat Gunakan sertifikat cloud untuk mengaktifkan enkripsi SSL.
  4. Klik Test Connectivity and Proceed. Di kotak dialog CIDR Blocks of DTS Servers, klik Test Connectivity.

    Pastikan blok CIDR server DTS dapat ditambahkan — secara otomatis atau manual — ke pengaturan keamanan database sumber dan tujuan. Untuk informasi lebih lanjut, lihat Tambahkan blok CIDR server DTS.

Langkah 3: Konfigurasi objek sinkronisasi

  1. Pada langkah Configure Objects, konfigurasi parameter berikut:

    Mengganti nama objek dengan fitur pemetaan nama objek dapat menyebabkan objek dependen gagal disinkronkan.
    ParameterDeskripsi
    Synchronization TypesIncremental Data Synchronization dipilih secara default. Pilih juga Schema Synchronization dan Full Data Synchronization untuk memigrasikan data historis sebelum memulai sinkronisasi inkremental.
    Method to Migrate Triggers in Source DatabaseTersedia hanya jika Schema Synchronization dipilih. Untuk informasi lebih lanjut, lihat Sinkronisasi atau migrasi trigger dari database sumber.
    Enable Migration AssessmentTersedia hanya jika Schema Synchronization dipilih. Jika diatur ke Yespengaturan pemberitahuan peringatan, pemeriksaan awal memakan waktu lebih lama, dan hasil penilaian muncul sebagai Assessment Result selama pemeriksaan awal. Hasil penilaian tidak memengaruhi kelulusan pemeriksaan awal.
    Synchronization TopologyPilih One-way Synchronization.
    Processing Mode of Conflicting TablesPrecheck and Report Errors: pemeriksaan awal gagal jika tujuan memiliki tabel dengan nama yang sama dengan sumber. Untuk menyelesaikan konflik penamaan, gunakan fitur pemetaan nama objek. Untuk informasi lebih lanjut, lihat Pemetaan nama database, tabel, dan kolom. Ignore Errors and Proceed: melewati pemeriksaan konflik nama. Selama sinkronisasi penuh, catatan tujuan yang ada dengan primary key yang cocok dipertahankan; selama sinkronisasi inkremental, catatan tersebut ditimpa. Jika skema berbeda, tugas mungkin gagal.
    Whether to migrate EventTentukan apakah akan menyinkronkan event dari sumber. Untuk informasi lebih lanjut, lihat Sinkronisasi atau migrasi event.
    Capitalization of Object Names in Destination InstanceMengontrol kapitalisasi nama database, tabel, dan kolom di tujuan. Default: DTS default policy. Untuk informasi lebih lanjut, lihat Tentukan kapitalisasi nama objek di instans tujuan.
    Source ObjectsPilih objek dari bagian Source Objects dan klik ikon panah kanan untuk menambahkannya ke Selected Objects. Granularitas yang didukung: kolom, tabel, atau database. Jika Anda memilih tabel atau kolom, DTS tidak menyinkronkan view, trigger, atau prosedur tersimpan.
    Selected ObjectsKlik kanan objek untuk mengganti namanya secara individual. Klik Batch Edit untuk mengganti nama beberapa objek sekaligus. Untuk informasi lebih lanjut, lihat Pemetaan nama objek. Klik kanan objek untuk memilih operasi SQL tertentu atau mengatur kondisi filter WHERE. Untuk informasi lebih lanjut, lihat Atur kondisi filter.
  2. Klik Next: Advanced Settings dan konfigurasi hal berikut:

    ParameterDeskripsi
    Dedicated Cluster for Task SchedulingDTS menggunakan kluster bersama secara default. Beli kluster khusus untuk meningkatkan stabilitas tugas. Untuk informasi lebih lanjut, 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 database.Berlaku saat Anda menggunakan DMS atau gh-ost untuk operasi DDL Online. Yes: menyinkronkan data tabel sementara (dapat memperpanjang waktu sinkronisasi). No, Adapt to DMS Online DDL: hanya menyinkronkan DDL akhir dari DMS; tabel tujuan mungkin dikunci. No, Adapt to gh-ost: hanya menyinkronkan DDL akhir dari gh-ost; tabel tujuan mungkin dikunci. Jangan gunakan pt-online-schema-change — hal ini akan menyebabkan tugas gagal.
    Whether to Migrate AccountsTentukan apakah akan menyinkronkan informasi akun dari sumber. Jika diatur ke Yes, pilih akun dan verifikasi izinnya. Untuk informasi lebih lanjut, lihat Migrasi akun database.
    Retry Time for Failed ConnectionsBerapa lama DTS mencoba koneksi yang gagal setelah tugas dimulai. Rentang: 10–1.440 menit. Default: 720. Atur minimal 30 menit. Jika beberapa tugas berbagi sumber atau tujuan yang sama, waktu retry terpendek berlaku untuk semuanya. DTS menagih instans selama periode retry.
    Retry Time for Other IssuesBerapa lama DTS mencoba operasi DML atau DDL yang gagal. Rentang: 1–1.440 menit. Default: 10. Atur minimal 10 menit. Nilai ini harus lebih kecil dari Retry Time for Failed Connections.
    Enable Throttling for Full Data SynchronizationTersedia hanya jika Full Data Synchronization dipilih. Konfigurasi QPS ke sumber, RPS, dan kecepatan data (MB/s) untuk mengurangi beban di tujuan.
    Enable Throttling for Incremental Data SynchronizationKonfigurasi RPS dan kecepatan data (MB/s) untuk mengurangi beban di tujuan.
    Environment TagTag opsional untuk mengidentifikasi instans DTS.
    Whether to delete SQL operations on heartbeat tables of forward and reverse tasksYes: DTS tidak menulis operasi tabel heartbeat ke sumber; latensi sinkronisasi mungkin tampak meningkat. No: DTS menulis operasi tabel heartbeat; backup fisik dan kloning sumber mungkin terpengaruh.
    Configure ETLYes: mengaktifkan fitur ekstrak, transformasi, muat (ETL); masukkan pernyataan pemrosesan data di editor kode. Lihat Konfigurasi ETL dalam tugas migrasi data atau sinkronisasi data. No: menonaktifkan ETL.
    Monitoring and AlertingYes: mengonfigurasi peringatan untuk kegagalan tugas atau pelanggaran ambang batas latensi; konfigurasi ambang batas peringatan dan kontak. Lihat Konfigurasi pemantauan dan peringatan. No: menonaktifkan peringatan.
  3. Klik Next Step: Data Verification untuk mengonfigurasi verifikasi data. Untuk informasi lebih lanjut, lihat Konfigurasi tugas verifikasi data.

Langkah 4: Jalankan pemeriksaan awal

Klik Next: Save Task Settings and Precheck.

Untuk melihat pratinjau parameter API untuk konfigurasi tugas saat ini, arahkan kursor ke tombol tersebut lalu klik Preview OpenAPI parameters sebelum melanjutkan.

DTS menjalankan pemeriksaan awal sebelum tugas dapat dimulai. Jika pemeriksaan awal gagal:

  • Klik View Details di sebelah setiap item yang gagal, selesaikan masalahnya, lalu jalankan pemeriksaan awal lagi.

  • Jika item peringatan dapat diabaikan, klik Confirm Alert Details > Ignore > OK, lalu klik Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.

Langkah 5: Beli instans

  1. Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.

  2. Di halaman buy, konfigurasi parameter berikut:

    ParameterDeskripsi
    Billing MethodSubscription: bayar di muka untuk jangka waktu tetap; lebih hemat biaya untuk penggunaan jangka panjang. Pay-as-you-go: ditagih per jam; cocok untuk penggunaan jangka pendek. Lepaskan instans saat tidak lagi diperlukan untuk menghentikan tagihan.
    Resource Group SettingsKelompok sumber daya untuk instans sinkronisasi data. Default: default resource group. Untuk informasi lebih lanjut, lihat Apa itu Resource Management?
    Instance ClassKecepatan sinkronisasi bervariasi tergantung kelas instans. Untuk informasi lebih lanjut, lihat Kelas instans untuk instans sinkronisasi data.
    Subscription DurationTersedia hanya untuk metode penagihan Subscription. Opsi: 1–9 bulan, 1 tahun, 2 tahun, 3 tahun, atau 5 tahun.
  3. Baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.

  4. Klik Buy and Start, lalu klik OK di kotak dialog.

Tugas muncul di daftar tugas. Pantau perkembangannya di sana.

Verifikasi sinkronisasi

Setelah status tugas berubah menjadi Completed, jalankan perintah berikut di database tujuan untuk memeriksa apakah data telah ditulis dengan benar:

ANALYZE TABLE <table_name>;
Dalam kasus seperti alih bencana high-availability (HA) di database MySQL sumber, data mungkin hanya ditulis ke memori dan tidak dipertahankan, menyebabkan kehilangan data. Menjalankan ANALYZE TABLE mengonfirmasi kondisi data aktual di tujuan.

Langkah selanjutnya