All Products
Search
Document Center

Data Transmission Service:Migrasi data dari database TiDB yang dikelola sendiri ke instans ApsaraDB RDS for MySQL

Last Updated:Mar 29, 2026

Topik ini menjelaskan cara menggunakan Data Transmission Service (DTS) untuk memigrasikan data dari database TiDB yang dikelola sendiri ke instans ApsaraDB RDS for MySQL.

Pilih jalur migrasi Anda:

JalurLangkahKapan digunakan
Hanya migrasi penuhPrasyarat → ProsedurMigrasi satu kali dengan jendela pemeliharaan singkat
Migrasi penuh + inkrementalPrasyarat → Persiapan → ProsedurMigrasi tanpa downtime; tetap menjaga database sumber aktif selama migrasi
Penting

Tabel tanpa primary key atau kendala UNIQUE dapat menghasilkan catatan duplikat di database tujuan. Pastikan semua tabel yang akan dimigrasikan memiliki PRIMARY KEY atau kendala UNIQUE sebelum memulai.

Prasyarat

Sebelum memulai, pastikan Anda telah:

  • Memiliki instans ApsaraDB RDS for MySQL dengan ruang penyimpanan yang tersedia lebih besar daripada total ukuran data di database TiDB sumber. Untuk detailnya, lihat Buat instans ApsaraDB RDS for MySQL.

  • (Hanya untuk migrasi penuh + inkremental) Menyelesaikan bagian Persiapan untuk menyiapkan kluster Kafka dan mengonfigurasi TiDB Binlog atau TiCDC guna menangkap data inkremental.

Persiapan (hanya untuk migrasi inkremental)

Lewati bagian ini jika Anda hanya memerlukan migrasi data penuh.

DTS membaca data inkremental dari TiDB melalui pipeline berbasis Kafka. DTS hanya membaca dari partisi 0 topik Kafka, sehingga topik tersebut harus memiliki tepat satu partisi. Sebelum membuat tugas DTS, siapkan pipeline ini menggunakan salah satu metode berikut.

Metode 1: TiDB Binlog

Terapkan server database sumber, Pump, Drainer, dan kluster Kafka pada jaringan internal yang sama untuk meminimalkan latensi jaringan.
  1. Siapkan kluster Kafka menggunakan salah satu opsi berikut:

    • Kluster Kafka yang dikelola sendiri: Lihat dokumentasi Apache Kafka. Atur message.max.bytes dan replica.fetch.max.bytes pada broker, serta fetch.message.max.bytes pada konsumen ke nilai yang cukup besar untuk menangani volume log biner TiDB. Untuk detail konfigurasi, lihat CONFIGURATION.

    • Instans ApsaraMQ for Kafka: Lihat Ikhtisar memulai. Terapkan instans dalam virtual private cloud (VPC) yang sama dengan server database sumber.

  2. Buat topik di kluster Kafka atau instans ApsaraMQ for Kafka.

    Penting

    Topik harus memiliki tepat satu partisi. DTS hanya membaca data inkremental dari partisi dengan ID 0.

  3. Terapkan Pump dan Drainer. Untuk detailnya, lihat Penerapan kluster TiDB Binlog.

  4. Edit file konfigurasi Drainer agar mengarah ke kluster Kafka Anda. Untuk detailnya, lihat Panduan pengguna klien konsumen Binlog.

    Pastikan server database TiDB dapat terhubung ke kluster Kafka.
  5. Tambahkan blok CIDR server DTS ke daftar putih database TiDB. Untuk detailnya, lihat Tambahkan blok CIDR server DTS.

Metode 2: TiCDC

  1. Siapkan kluster Kafka menggunakan salah satu opsi berikut:

    • Kluster Kafka yang dikelola sendiri: Lihat dokumentasi Apache Kafka. Atur message.max.bytes dan replica.fetch.max.bytes pada broker, serta fetch.message.max.bytes pada konsumen ke nilai yang cukup besar untuk menangani volume log biner TiDB. Untuk detail konfigurasi, lihat CONFIGURATION.

    • Instans ApsaraMQ for Kafka: Lihat Ikhtisar memulai. Terapkan instans dalam VPC yang sama dengan server database sumber.

  2. Buat topik di kluster Kafka atau instans ApsaraMQ for Kafka.

    Penting

    Topik harus memiliki tepat satu partisi. DTS hanya membaca data inkremental dari partisi dengan ID 0.

  3. Instal TiCDC. Kami menyarankan Anda menggunakan TiUP untuk menambahkan node TiCDC baru atau melakukan scale out node TiCDC yang ada di kluster TiDB. Untuk detailnya, lihat Terapkan dan kelola TiCDC.

  4. Replikasikan data inkremental di database TiDB sumber ke Kafka. Kami menyarankan Anda menggunakan tiup cdc cli changefeed create \ pada baris perintah pertama. Untuk detailnya, lihat Replikasikan data ke Kafka.

    Pastikan server database TiDB dapat terhubung ke kluster Kafka.

Izin yang diperlukan

DatabaseIzin yang diperlukan
Database TiDBSELECT pada objek yang akan dimigrasikan; SHOW VIEW
Instans ApsaraDB RDS for MySQLIzin baca dan tulis pada database tujuan

Untuk bantuan membuat dan mengonfigurasi akun, lihat Buat akun dan Ubah izin akun.

Penagihan

Jenis migrasiBiaya konfigurasi instansBiaya lalu lintas internet
Migrasi skema + migrasi data penuhGratisDikenakan biaya ketika Access Method diatur ke Public IP Address. Lihat Ikhtisar penagihan.
Migrasi data inkrementalDikenakan biaya. Lihat Ikhtisar penagihan.

Operasi SQL yang didukung untuk migrasi inkremental

Jenis operasiPernyataan SQL
DMLINSERT, UPDATE, DELETE
DDLCREATE TABLE, DROP TABLE, ALTER TABLE, RENAME TABLE, TRUNCATE TABLE, CREATE VIEW, DROP VIEW, ALTER VIEW

Catatan penggunaan

Batasan database sumber:

  • Server database sumber harus memiliki bandwidth outbound yang mencukupi. Bandwidth yang tidak mencukupi akan mengurangi kecepatan migrasi.

  • Tabel harus memiliki PRIMARY KEY atau kendala UNIQUE dengan semua bidang unik. Tabel tanpa kendala ini dapat menyebabkan catatan duplikat di tujuan.

  • Saat melakukan migrasi dengan penggantian nama tabel atau kolom, satu tugas mendukung hingga 1.000 tabel. Untuk lebih dari 1.000 tabel, jalankan beberapa tugas secara batch atau migrasikan pada tingkat database.

  • Migrasi data inkremental memerlukan kluster Kafka dengan TiDB Binlog atau TiCDC yang telah dikonfigurasi (lihat Persiapan).

Migrasi data penuh:

  • Jalankan migrasi selama jam sepi ketika beban CPU pada kedua database berada di bawah 30%. DTS menggunakan sumber daya baca dan tulis pada kedua database selama migrasi penuh.

  • Operasi INSERT bersamaan selama migrasi penuh menyebabkan fragmentasi tabel di tujuan. Ruang tabel tujuan kemungkinan akan lebih besar daripada sumber setelah migrasi selesai.

  • Hindari menulis data dari sumber lain ke tujuan selama migrasi untuk mencegah ketidakkonsistenan data.

Migrasi data inkremental:

  • Setelah membuat tugas, segera lakukan operasi pada database sumber atau masukkan data uji. Hal ini memperbarui informasi offset dan mencegah kegagalan tugas akibat latensi berlebihan.

  • DTS hanya membaca data inkremental dari partisi 0 topik Kafka.

Pertimbangan tipe data dan set karakter:

  • Data yang berisi karakter langka atau emoji (karakter 4-byte) memerlukan tabel tujuan menggunakan set karakter UTF8mb4. Jika Anda menggunakan fitur migrasi skema, atur parameter character_set_server di database tujuan ke UTF8mb4.

  • Nama kolom di MySQL tidak case-sensitive. Menulis nama kolom yang hanya berbeda kapitalisasinya ke tabel tujuan yang sama dapat menghasilkan hasil tak terduga.

  • DTS menggunakan ROUND(COLUMN, PRECISION) untuk mengambil nilai FLOAT dan DOUBLE. Presisi default: FLOAT = 38 digit, DOUBLE = 308 digit. Pastikan pengaturan presisi ini sesuai kebutuhan Anda.

Setelah migrasi:

  • Saat Status tugas menunjukkan Completed, jalankan ANALYZE TABLE <table_name> untuk memverifikasi data telah ditulis ke disk. Alih bencana HA di database MySQL tujuan dapat menyebabkan data hanya ada di memori, sehingga berpotensi kehilangan data.

  • DTS mencoba melanjutkan tugas yang gagal hingga 7 hari. Sebelum mengalihkan workload ke database tujuan, hentikan atau lepas tugas yang gagal, atau jalankan REVOKE untuk mencabut izin tulis DTS di tujuan. Jika tidak, tugas yang dilanjutkan dapat menimpa data tujuan dengan data sumber.

  • Pernyataan DDL yang gagal di tujuan tidak menghentikan tugas DTS. Lihat pernyataan DDL yang gagal di log tugas. Untuk detailnya, lihat Lihat log tugas.

  • Jika tugas DTS gagal, tim dukungan DTS akan mencoba memulihkannya dalam waktu 8 jam. Tugas dapat dimulai ulang dan parameter tugas (bukan parameter database) mungkin dimodifikasi selama pemulihan. Untuk parameter yang mungkin dimodifikasi, lihat Ubah parameter instans.

  • Jika nama database sumber tidak sesuai dengan konvensi penamaan ApsaraDB RDS for MySQL, buat database tujuan terlebih dahulu dan gunakan fitur pemetaan nama objek untuk mengganti namanya saat konfigurasi tugas. Untuk detailnya, lihat Kelola database dan Pemetaan nama objek.

Konfigurasikan dan jalankan tugas migrasi

Langkah 1: Buka halaman Data Migration

Gunakan salah satu konsol berikut:

Konsol DTS:

  1. Login ke Konsol DTS.

  2. Di panel navigasi kiri, klik Data Migration.

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

Konsol Data Management Service (DMS):

Langkah aktual dapat berbeda tergantung mode dan tata letak konsol DMS. Untuk detailnya, lihat Mode simple dan Sesuaikan tata letak dan gaya konsol DMS.
  1. Login ke Konsol DMS.

  2. Di bilah navigasi atas, buka Data + AI > DTS (DTS) > Data Migration.

  3. Dari daftar drop-down di samping Data Migration Tasks, pilih wilayah tempat instans migrasi berada.

Langkah 2: Buat tugas dan konfigurasikan database sumber dan tujuan

  1. Klik Create Task.

  2. Konfigurasikan database sumber dan tujuan menggunakan parameter berikut:

Pengaturan tugas:

ParameterDeskripsi
Task NameNama untuk tugas DTS. DTS menghasilkan nama secara otomatis. Tentukan nama deskriptif agar mudah mengidentifikasi tugas. Nama tidak perlu unik.

Database sumber:

ParameterDeskripsi
Select Existing ConnectionJika instans TiDB telah terdaftar di DTS, pilih dari daftar dan DTS akan mengisi parameter koneksi secara otomatis. Jika tidak, konfigurasikan parameter di bawah. Di konsol DMS, gunakan daftar Select a DMS database instance.
Database TypePilih TiDB.
Access MethodPilih metode akses berdasarkan lokasi penempatan TiDB. Contoh ini menggunakan Self-managed Database on ECS. Untuk metode akses lain, lengkapi penyiapan lingkungan yang diperlukan terlebih dahulu. Lihat Ikhtisar persiapan.
Instance RegionWilayah tempat database TiDB berada.
ECS Instance IDID instans ECS yang menjalankan database TiDB.
Port NumberPort layanan TiDB. Default: 4000.
Database AccountAkun TiDB. Lihat Izin yang diperlukan untuk izin yang dibutuhkan.
Database PasswordKata sandi untuk akun TiDB.
Migrate Incremental DataPilih Yes untuk mengaktifkan migrasi data inkremental, lalu masukkan informasi kluster Kafka di bagian Parameter kluster Kafka. Pilih No untuk migrasi penuh saja.

Database tujuan:

ParameterDeskripsi
Select Existing ConnectionJika instance RDS telah terdaftar di DTS, pilih instance tersebut dari daftar. Jika belum, konfigurasikan parameter berikut. Di konsol DMS, gunakan daftar Select a DMS database instance.
Database TypePilih MySQL.
Access MethodPilih Alibaba Cloud Instance.
Instance RegionWilayah tempat instans ApsaraDB RDS for MySQL tujuan berada.
Replicate Data Across Alibaba Cloud AccountsPilih No untuk migrasi dalam akun yang sama.
RDS Instance IDID instans ApsaraDB RDS for MySQL tujuan.
Database AccountAkun database tujuan. Lihat Izin yang diperlukan.
Database PasswordKata sandi untuk akun database tujuan.
EncryptionPilih Non-encrypted atau SSL-encrypted. Untuk menggunakan enkripsi SSL, aktifkan enkripsi SSL pada instans RDS sebelum mengonfigurasi tugas. Lihat Gunakan sertifikat cloud untuk mengaktifkan enkripsi SSL.

Langkah 3: Uji konektivitas

Di bagian bawah halaman, klik Test Connectivity and Proceed, lalu klik Test Connectivity di kotak dialog CIDR Blocks of DTS Servers.

Blok CIDR server DTS harus ditambahkan (secara otomatis atau manual) ke pengaturan keamanan database sumber dan tujuan. Untuk detailnya, lihat Tambahkan blok CIDR server DTS.

Langkah 4: Konfigurasikan objek yang akan dimigrasikan

Di halaman Configure Objects, atur parameter berikut:

ParameterDeskripsi
Migration TypesPilih jenis migrasi berdasarkan jalur Anda: <br>- Schema Migration + Full Data Migration: Hanya migrasi penuh.<br>- Schema Migration + Full Data Migration + Incremental Data Migration: Migrasi penuh + inkremental untuk migrasi tanpa downtime.<br><br>
Catatan

Jika Anda melewatkan Schema Migration, buat database dan tabel tujuan sebelum memulai tugas, dan aktifkan pemetaan nama objek di Selected Objects. Jika Anda melewatkan Incremental Data Migration, hentikan penulisan ke database sumber selama migrasi untuk menjaga konsistensi data.

Processing Mode of Conflicting TablesPrecheck and Report Errors (disarankan): Gagal dalam precheck jika tabel dengan nama identik ada di sumber dan tujuan. Gunakan pemetaan nama objek untuk mengganti nama tabel yang bentrok. Lihat Pemetaan nama objek. <br><br>Ignore Errors and Proceed: Lewati precheck untuk nama tabel identik. Gunakan dengan hati-hati — ini dapat menyebabkan ketidakkonsistenan data. Selama migrasi penuh, catatan yang sudah ada di tujuan dipertahankan. Selama migrasi inkremental, catatan yang sudah ada ditimpa. Jika skema berbeda, hanya kolom tertentu yang dimigrasikan atau tugas mungkin gagal.
Capitalization of Object Names in Destination InstanceMengontrol kapitalisasi nama database, tabel, dan kolom di tujuan. DTS default policy dipilih secara default. Lihat Tentukan kapitalisasi nama objek.
Source ObjectsPilih tabel atau database dari bagian Source Objects, lalu klik 向右小箭头 untuk menambahkannya ke Selected Objects.
Selected Objects- Untuk mengganti nama satu objek, klik kanan objek tersebut di Selected Objects. Lihat Pemetaan nama satu objek.<br>- Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit. Lihat Pemetaan nama beberapa objek sekaligus.<br>- Untuk memfilter baris, klik kanan tabel dan tentukan kondisi filter.<br><br>
Catatan

Mengganti nama objek dapat merusak objek lain yang bergantung padanya.

Langkah 5: Konfigurasikan pengaturan lanjutan

Klik Next: Advanced Settings dan konfigurasikan parameter berikut:

ParameterDeskripsi
Retry Time for Failed ConnectionsDurasi waktu DTS mencoba kembali koneksi yang gagal setelah task dimulai. Nilai yang valid: 10–1.440 menit. Default: 720. Atur minimal 30 menit. DTS akan melanjutkan task jika koneksi berhasil dipulihkan dalam rentang waktu ini; jika tidak, task akan gagal.<br><br>
Catatan

Jika beberapa task menggunakan database sumber atau tujuan yang sama, retry time yang paling baru diatur akan berlaku untuk semuanya. DTS mengenakan biaya penggunaan instans selama proses retry.

Retry Time for Other IssuesDurasi waktu DTS mencoba kembali operasi DDL atau DML yang gagal. Nilai yang valid: 1–1.440 menit. Default: 10. Atur minimal 10 menit. Nilai ini harus lebih kecil daripada Retry Time for Failed Connections.
Enable Throttling for Full Data MigrationMembatasi penggunaan resource selama full migration untuk mengurangi beban pada database. Konfigurasikan Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s). Opsi ini tersedia hanya jika Full Data Migration dipilih.
Enable Throttling for Incremental Data MigrationMembatasi penggunaan resource selama incremental migration. Konfigurasikan RPS of Incremental Data Migration dan Data migration speed for incremental migration (MB/s). Opsi ini tersedia hanya jika Incremental Data Migration dipilih.
Environment TagTag opsional untuk mengidentifikasi instans DTS.
Configure ETLAktifkan fitur extract, transform, and load (ETL) untuk mentransformasi data selama migrasi. Pilih Yes dan masukkan statement pemrosesan di editor kode. Lihat What is ETL? dan Configure ETL.
Monitoring and AlertingAtur peringatan untuk kegagalan task atau latensi migrasi yang melebihi ambang batas. Pilih Yes dan konfigurasikan ambang batas peringatan serta pengaturan notifikasi. Lihat Configure monitoring and alerting.

Langkah 6: Konfigurasikan verifikasi data (opsional)

Klik Next Step: Data Verification untuk menyiapkan tugas verifikasi data. Untuk detailnya, lihat Konfigurasi tugas verifikasi data.

Langkah 7: Simpan pengaturan dan jalankan pemeriksaan awal

  • Untuk melihat pratinjau parameter API guna mengonfigurasi tugas ini secara terprogram, arahkan kursor ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters.

  • Untuk melanjutkan, klik Next: Save Task Settings and Precheck.

DTS menjalankan pemeriksaan awal sebelum migrasi dimulai. Tugas tidak dapat dimulai hingga pemeriksaan awal berhasil.
Jika pemeriksaan awal gagal, klik View Details di sebelah item yang gagal, selesaikan masalahnya, lalu klik Precheck Again.
Untuk peringatan pemeriksaan awal: jika peringatan tidak dapat diabaikan, perbaiki masalah dan jalankan kembali pemeriksaan awal. Jika dapat diabaikan, klik Confirm Alert Details, lalu Ignore, lalu OK, lalu Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.

Langkah 8: Beli instans dan mulai migrasi

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

  2. Di halaman Purchase Instance, konfigurasikan hal berikut:

    ParameterDeskripsi
    Resource GroupKelompok sumber daya untuk instans migrasi. Default: default resource group. Lihat Apa itu Resource Management?
    Instance ClassKecepatan migrasi tergantung pada kelas instans. Lihat Kelas instans migrasi data untuk memilih kelas sesuai beban kerja Anda.
  3. Baca dan terima Data Transmission Service (Pay-as-you-go) Service Terms dengan mencentang kotak centang.

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

Monitor tugas di halaman Data Migration:

  • Hanya migrasi penuh: Tugas berhenti otomatis saat selesai. Status menunjukkan Completed.

  • Migrasi penuh + inkremental: Tugas berjalan terus-menerus. Status menunjukkan Running.

Parameter kluster Kafka

Saat Migrate Incremental Data diatur ke Yes, konfigurasikan kluster Kafka di bagian database sumber:

ParameterDeskripsi
Kafka Cluster TypeLokasi penempatan kluster Kafka. Contoh ini menggunakan Self-managed Database on ECS. Jika Anda memilih Express Connect, VPN Gateway, or Smart Access Gateway, pilih juga VPC dari Connected VPC dan tentukan Domain Name or IP.
Kafka Data Source ComponentPilih berdasarkan metode yang digunakan di Persiapan: Use the default binlog format of the TiDB database. (TiDB Binlog) atau Use the TiCDC Canal-JSON format. (TiCDC).
ECS Instance IDID instans ECS yang menjalankan kluster Kafka.
Port NumberPort layanan Kafka.
Kafka Cluster AccountUsername Kafka. Biarkan kosong jika autentikasi tidak diaktifkan.
Kafka Cluster PasswordKata sandi Kafka. Biarkan kosong jika autentikasi tidak diaktifkan.
Kafka VersionVersi Kafka. Jika versinya 1.0 atau lebih baru, pilih 1.0.
EncryptionPilih Non-encrypted atau SCRAM-SHA-256 berdasarkan kebutuhan keamanan Anda.
TopicTopik yang menerima data inkremental. Topik harus memiliki hanya satu partisi.

Langkah selanjutnya

Setelah status tugas migrasi menunjukkan Completed atau latensi migrasi inkremental mencapai nol, alihkan aplikasi Anda ke database tujuan:

  1. Hentikan penulisan ke database TiDB sumber.

  2. Tunggu hingga latensi migrasi inkremental mencapai 0 dan tugas memproses semua perubahan yang tersisa.

  3. Perbarui string koneksi aplikasi Anda agar mengarah ke instans ApsaraDB RDS for MySQL.

  4. Jalankan ANALYZE TABLE <table_name> pada tabel utama untuk memverifikasi integritas data.

  5. Hentikan atau lepas tugas migrasi DTS.