All Products
Search
Document Center

Data Transmission Service:Migrasi database MySQL yang dikelola sendiri ke PolarDB for MySQL

Last Updated:Mar 29, 2026

Layanan Transmisi Data (DTS) memungkinkan migrasi data dari database MySQL yang dikelola sendiri ke kluster PolarDB for MySQL dengan downtime minimal. Panduan ini memandu Anda melalui konfigurasi dan pelaksanaan tugas migrasi, mencakup migrasi skema, migrasi data penuh, dan migrasi data inkremental.

Dalam panduan ini, Anda akan:

  • Meninjau prasyarat, izin, dan batasan

  • Mengonfigurasi database sumber dan tujuan

  • Memilih jenis dan objek migrasi

  • Menjalankan pemeriksaan awal dan membeli instans migrasi

  • Verifikasi migrasi dan peralihan

Prasyarat

Sebelum memulai, pastikan bahwa:

Untuk versi database yang didukung, lihat Ikhtisar skenario migrasi data.

Jenis migrasi

DTS mendukung tiga jenis migrasi, yang dapat dikombinasikan:

Jenis migrasiFungsinya
Schema migrationMigrasi skema objek yang dipilih (tabel, view, trigger, prosedur tersimpan, fungsi tersimpan) dari sumber ke tujuan.
Full data migrationMigrasi semua data yang ada dari database sumber.
Incremental data migrationSetelah migrasi data penuh selesai, secara terus-menerus mencerminkan perubahan dari sumber ke tujuan, menjaga layanan tetap berjalan selama migrasi.

Perilaku migrasi skema:

  • DTS mengubah atribut SECURITY dari DEFINER menjadi INVOKER untuk view, prosedur tersimpan, dan fungsi, serta menetapkan DEFINER ke akun database tujuan yang digunakan dalam migrasi.

  • DTS tidak memigrasikan informasi pengguna. Berikan izin baca dan tulis kepada INVOKER pada database tujuan untuk memanggil view, prosedur tersimpan, atau fungsi tersimpan.

  • DTS memigrasikan kunci asing dari sumber ke tujuan. Selama migrasi data penuh dan inkremental, DTS sementara menonaktifkan pemeriksaan kendala dan operasi kaskade pada kunci asing di tingkat session.

Operasi SQL yang didukung dalam migrasi data inkremental:

Jenis operasiPernyataan yang didukung
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

Operasi RENAME TABLE dapat menyebabkan ketidakkonsistenan data. Jika Anda memilih sebuah tabel sebagai objek migrasi dan mengganti namanya selama migrasi, data mungkin tidak sampai ke tujuan. Untuk mencegah hal ini, pilih seluruh database sebagai objek migrasi dan pastikan database yang berisi tabel tersebut sebelum dan sesudah penggantian nama termasuk dalam migrasi.

Penagihan

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

Izin yang diperlukan

Berikan izin berikut kepada akun database yang digunakan oleh DTS:

DatabaseMigrasi skemaMigrasi penuhMigrasi inkremental
MySQL yang dikelola sendiriSELECTSELECTSELECT pada objek yang akan dimigrasikan; REPLICATION CLIENT; REPLICATION SLAVE; SHOW VIEW; izin untuk membuat database dan tabel (agar DTS dapat membuat database test untuk memajukan posisi log biner)
Kluster PolarDB for MySQLBaca dan tulisBaca dan tulisBaca dan tulis

Untuk instruksi, lihat:

Batasan

Database sumber

  • Server harus memiliki bandwidth outbound yang cukup; jika tidak, kecepatan migrasi menurun.

  • Tabel harus memiliki PRIMARY KEY atau kendala UNIQUE dengan semua field unik; jika tidak, catatan duplikat mungkin muncul di tujuan.

  • Saat mengganti nama tabel atau kolom di tujuan, satu tugas mendukung hingga 1.000 tabel. Untuk lebih dari 1.000 tabel, konfigurasikan beberapa tugas atau migrasikan seluruh database.

  • Selama migrasi skema dan migrasi data penuh, jangan menjalankan pernyataan DDL yang mengubah skema database atau tabel; tugas akan gagal.

  • Selama migrasi hanya penuh (tanpa inkremental), jangan menulis ke database sumber; hal ini menyebabkan ketidakkonsistenan data. Untuk menjaga konsistensi, pilih migrasi skema, migrasi data penuh, dan migrasi data inkremental secara bersamaan.

  • Data yang dihasilkan oleh operasi kaskade atau dipulihkan dari backup fisik tidak dicatat dalam log biner dan tidak akan dimigrasikan.

  • Jika sumber adalah MySQL 8.0.23 atau lebih baru dan datanya mencakup kolom tak terlihat (invisible columns), kolom tersebut tidak dapat dibaca dan terjadi kehilangan data. Untuk membuat kolom terlihat, jalankan: ALTER TABLE <table_name> ALTER COLUMN <column_name> SET VISIBLE;

Tabel tanpa primary key secara otomatis menghasilkan primary key tak terlihat. Jadikan primary key tak terlihat tersebut terlihat sebelum migrasi. Lihat Generated Invisible Primary Keys.

Persyaratan log biner untuk migrasi inkremental:

ParameterNilai yang diperlukanCatatan
binlog_formatROWJika tidak diatur ke ROW, pemeriksaan awal gagal dan tugas tidak dapat dimulai.
binlog_row_imageFULLJika tidak diatur ke FULL, pemeriksaan awal gagal dan tugas tidak dapat dimulai.
log_slave_updatesONDiperlukan hanya jika sumber adalah MySQL yang dikelola sendiri dalam kluster dual-primary, agar DTS dapat membaca semua log biner.
Retensi log binerMinimal 7 hari (MySQL yang dikelola sendiri)Log biner instans ApsaraDB RDS for MySQL harus dipertahankan minimal 3 hari; disarankan 7 hari. Jika log biner dihapus terlalu dini, tugas mungkin gagal atau terjadi ketidakkonsistenan data.

Sumber MySQL yang dikelola sendiri: kasus khusus

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

  • Latensi migrasi dihitung berdasarkan timestamp data terbaru yang dimigrasikan di tujuan dibandingkan waktu saat ini di sumber. Jika tidak ada operasi DML yang dilakukan pada sumber dalam periode panjang, latensi yang dilaporkan mungkin tidak akurat. Jalankan operasi DML pada sumber untuk memperbarui nilai latensi. Jika Anda memigrasikan seluruh database, buat tabel heartbeat yang diperbarui setiap detik.

  • DTS secara berkala menjalankan CREATE DATABASE IF NOT EXISTS \test\`` pada sumber untuk memajukan posisi log biner.

Sumber ApsaraDB RDS for MySQL: kasus khusus

  • Dalam migrasi data inkremental, instans ApsaraDB RDS for MySQL yang tidak mencatat log transaksi, seperti instans ApsaraDB RDS for MySQL V5.6 read-only, tidak dapat digunakan sebagai database sumber.

  • DTS secara berkala menjalankan CREATE DATABASE IF NOT EXISTS \test\`` pada sumber untuk memajukan posisi log biner.

Database tujuan (PolarDB for MySQL)

  • DTS secara otomatis membuat database di kluster tujuan. Jika nama database sumber tidak sesuai dengan konvensi penamaan PolarDB for MySQL, buat database secara manual sebelum mengonfigurasi tugas. Lihat Kelola database.

  • Pembatasan kecepatan tidak tersedia untuk migrasi data penuh ke PolarDB for MySQL.

Batasan lainnya

  • Versi MySQL sumber dan tujuan harus sama.

  • DTS tidak memigrasikan data yang menggunakan definisi parser yang ditentukan melalui komentar.

  • Jadwalkan migrasi selama jam sepi. Migrasi data penuh menggunakan resource baca dan tulis kedua database dan meningkatkan beban server.

  • Setelah migrasi data penuh, operasi INSERT konkuren membuat fragmentasi tabel di tujuan, sehingga ruang tabelnya lebih besar daripada sumber.

  • Jika data berisi karakter empat byte (karakter langka, emoji), database dan tabel tujuan harus menggunakan set karakter UTF8mb4. Jika Anda menggunakan migrasi skema DTS, atur character_set_server ke UTF8mb4 di database tujuan.

  • DTS menggunakan ROUND(COLUMN, PRECISION) untuk membaca kolom FLOAT dan DOUBLE. Presisi default: 38 digit untuk FLOAT, 308 digit untuk DOUBLE. Verifikasi bahwa pengaturan presisi memenuhi kebutuhan Anda.

  • DTS mencoba mengulang tugas yang gagal hingga 7 hari. Sebelum mengalihkan beban kerja ke tujuan, hentikan atau lepas tugas yang gagal, atau cabut izin tulis dari akun DTS. Jika tidak, database sumber mungkin menimpa data tujuan saat tugas yang gagal dilanjutkan.

  • Nilai DATETIME tidak dapat dikonversi ke VARCHAR.

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

  • Jika sumber adalah instans ApsaraDB RDS for MySQL dengan EncDB diaktifkan, migrasi data penuh tidak didukung. Enkripsi Data Transparan (TDE) didukung untuk ketiga jenis migrasi.

  • Untuk memigrasikan akun, lihat Migrasi akun database.

  • Jika tugas DTS gagal, dukungan teknis DTS berusaha memulihkannya dalam waktu 8 jam. Tugas mungkin dimulai ulang dan parameter tugas tertentu mungkin dimodifikasi selama pemulihan. Parameter database tidak dimodifikasi.

Konfigurasi dan jalankan tugas migrasi

Langkah 1: Buka halaman Data Migration

Gunakan salah satu konsol berikut untuk memulai:

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 DMS

Catatan

Operasi aktual mungkin berbeda tergantung pada mode dan tata letak konsol DMS. Untuk informasi lebih lanjut, lihat Simple mode 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. Di daftar drop-down di sebelah kanan Data Migration Tasks, pilih wilayah.

Langkah 2: Konfigurasi database sumber dan tujuan

Klik Create Task untuk membuka halaman konfigurasi tugas.

Peringatan

Setelah mengonfigurasi database sumber dan tujuan, baca Limits yang ditampilkan di bagian atas halaman sebelum melanjutkan; jika tidak, tugas mungkin gagal atau terjadi ketidakkonsistenan data.

Task Name

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

Source Database

ParameterDeskripsi
Select Existing ConnectionPilih instans terdaftar untuk mengisi parameter secara otomatis, atau konfigurasi koneksi secara manual.
Database TypePilih MySQL.
Access MethodPilih jenis koneksi berdasarkan lokasi database sumber. Panduan ini menggunakan Public IP. Untuk jenis instans lainnya, lihat Ikhtisar persiapan.
Instance RegionWilayah tempat database MySQL yang dikelola sendiri berada.
Hostname or IP addressAlamat IP publik atau hostname database sumber.
PortPort layanan database sumber, yang harus terbuka ke internet. Default: 3306.
Database AccountAkun untuk database sumber. Lihat Izin yang diperlukan.
Database PasswordKata sandi untuk akun tersebut.
EncryptionNon-encrypted (jika SSL tidak diaktifkan) atau SSL-encrypted (jika SSL diaktifkan; unggah Sertifikat CA dan konfigurasi Kunci CA).

Destination Database

ParameterDeskripsi
Select Existing ConnectionPilih instans terdaftar untuk mengisi parameter secara otomatis, atau konfigurasi koneksi secara manual.
Database TypePilih PolarDB for MySQL.
Access MethodPilih Cloud Instance.
Instance RegionWilayah tempat kluster PolarDB for MySQL tujuan berada.
PolarDB Instance IDID kluster PolarDB for MySQL tujuan.
Database AccountAkun untuk kluster tujuan. Lihat Izin yang diperlukan.
Database PasswordKata sandi untuk akun tersebut.
EncryptionKonfigurasi sesuai kebutuhan Anda. Lihat Konfigurasi enkripsi SSL.

Langkah 3: Uji konektivitas

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

Pastikan blok CIDR server DTS dapat ditambahkan (secara otomatis atau manual) ke pengaturan keamanan kedua database. Lihat Tambahkan blok CIDR server DTS.

Langkah 4: Pilih objek dan jenis migrasi

Di halaman Configure Objects, konfigurasikan hal berikut:

ParameterDeskripsi
Migration TypesPilih Schema Migration dan Full Data Migration untuk migrasi satu kali. Untuk menjaga kontinuitas layanan, pilih juga Incremental data migration. Jika Anda melewatkan Schema Migration, buat database dan tabel tujuan secara manual, dan aktifkan pemetaan nama objek di Selected Objects.
Method to migrate triggers in source databasePilih metode migrasi trigger sesuai kebutuhan Anda. Tersedia hanya jika Migration Types mencakup Schema Migration. Lihat Konfigurasi metode sinkronisasi atau migrasi trigger.
Processing mode of conflicting tablesPrecheck and Report Errors: gagal dalam pemeriksaan awal jika terdapat nama tabel identik di sumber dan tujuan (gunakan pemetaan nama objek untuk mengganti nama tabel yang bertentangan). Ignore Errors and Proceed: lewati pemeriksaan awal untuk nama tabel identik. Perhatikan bahwa hal ini dapat menyebabkan ketidakkonsistenan data: selama migrasi data penuh, DTS tidak memigrasikan catatan yang bertentangan dan catatan tujuan yang ada dipertahankan; selama migrasi data inkremental, DTS memigrasikan catatan tersebut dan catatan tujuan yang ada ditimpa.
Whether to migrate eventPilih Yes pengaturan pemberitahuan peringatan untuk memigrasikan event, lalu lengkapi langkah-langkah berikutnya. Lihat Sinkronisasi atau migrasi event.
Capitalization of object names in destination instanceMengontrol kapitalisasi nama database, tabel, dan kolom di tujuan. Default: DTS default policy. Lihat Tentukan kapitalisasi nama objek.
Source ObjectsPilih objek dan klik Rightwards arrow untuk memindahkannya ke Selected Objects. Anda dapat memilih kolom, tabel, atau skema. Memilih tabel atau kolom mengecualikan view, trigger, dan prosedur tersimpan.
Selected ObjectsKlik kanan objek untuk mengganti namanya secara individual, atau klik Batch Edit untuk mengganti nama massal. Untuk memfilter baris, klik kanan tabel dan atur kondisi WHERE. Untuk membatasi operasi SQL di tingkat database atau tabel, klik kanan dan pilih operasi yang ingin disertakan.

Langkah 5: Konfigurasi pengaturan lanjutan

Klik Next: Advanced Settings dan konfigurasikan:

ParameterDeskripsi
Dedicated cluster for task schedulingSecara default, DTS menggunakan kluster bersama. Untuk stabilitas lebih tinggi, beli kluster khusus. Lihat Apa itu kluster khusus DTS.
Select the engine type of the destination databaseInnoDB (default) atau X-Engine (mesin penyimpanan Online Transaction Processing (OLTP)).
Copy the temporary table of the online DDL toolMengontrol penanganan tabel sementara yang dibuat oleh alat DDL online. Yes: memigrasikan data tabel sementara (dapat meningkatkan latensi). No, Adapt to DMS Online DDL: hanya memigrasikan DDL asli dari DMS (tabel tujuan mungkin terkunci). No, Adapt to gh-ost: hanya memigrasikan DDL asli dari gh-ost (tabel tujuan mungkin terkunci). Jangan gunakan pt-online-schema-change; hal ini menyebabkan kegagalan tugas.
Whether to migrate accountsPilih Yes untuk memigrasikan akun; lalu pilih akun dan konfirmasi izin. Lihat Migrasi akun database.
Retry time for failed connectionsDurasi DTS mencoba menghubungkan kembali setelah kegagalan koneksi. Rentang: 10–1.440 menit. Default: 720 menit. Disarankan mengatur parameter ini lebih dari 30 menit.
Retry time for other issuesDurasi DTS mencoba mengulang setelah kegagalan DDL atau DML. Rentang: 1–1.440 menit. Default: 10 menit. Disarankan mengatur parameter ini lebih dari 10 menit. Harus lebih kecil dari Retry time for failed connections.
Enable throttling for full data migrationMembatasi QPS, RPS, dan kecepatan migrasi untuk mengurangi beban pada tujuan. Konfigurasi QPS to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s). Tersedia hanya jika Full Data Migration dipilih.
Enable throttling for incremental data migrationMembatasi RPS dan kecepatan migrasi untuk migrasi inkremental. Konfigurasi RPS of Incremental Data Migration dan Data migration speed for incremental migration (MB/s). Tersedia hanya jika Incremental data migration dipilih.
Whether to delete SQL operations on heartbeat tablesYes: DTS tidak menulis operasi tabel heartbeat ke sumber (latensi migrasi mungkin ditampilkan). No: DTS menulis operasi tabel heartbeat ke sumber (dapat memengaruhi backup fisik dan kloning database sumber).
Configure ETLYes: mengaktifkan ekstrak, transformasi, dan muat (ETL); masukkan pernyataan pemrosesan di editor kode. No: ETL dinonaktifkan. Lihat Apa itu ETL?
Monitoring and alertingYes: mengonfigurasi peringatan untuk kegagalan tugas atau latensi yang melebihi ambang batas. Lihat Konfigurasi pemantauan dan peringatan.

Langkah 6: Konfigurasi verifikasi data (opsional)

Klik Next Step: Data Verification untuk menyiapkan tugas verifikasi data. Untuk informasi selengkapnya, lihat Mengonfigurasi tugas verifikasi data.

Langkah 7: Jalankan pemeriksaan awal dan beli instans

  1. Klik Next: Save Task Settings and Precheck.

    Untuk melihat pratinjau parameter API untuk konfigurasi tugas ini, arahkan kursor ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters.
  2. Tunggu hingga pemeriksaan awal selesai.

    • Jika suatu item gagal, klik View Details, perbaiki masalahnya, lalu klik Precheck Again.

    • Jika peringatan dipicu untuk item yang dapat diabaikan, klik Confirm Alert Details > Ignore > OK, lalu klik Precheck Again.

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

  4. Di halaman Purchase Instance, atur Instance Class:

    ParameterDeskripsi
    Resource GroupKelompok sumber daya untuk instans migrasi. Default: default resource group.
    Instance ClassKelas instans menentukan kecepatan migrasi. Pilih sesuai kebutuhan Anda. Lihat Kelas instans untuk instans migrasi data.
  5. Pilih kotak centang Data Transmission Service (Pay-as-you-go) Service Terms, lalu klik Buy and Start > OK.

Lihat progres tugas di halaman Data Migration:

  • Migrasi skema atau migrasi hanya penuh: tugas berhenti secara otomatis. Status menunjukkan Completed.

  • Incremental data migration: tugas berjalan terus-menerus dan tidak berhenti otomatis. Status menunjukkan Running.

Langkah selanjutnya