Data Transmission Service (DTS) memungkinkan migrasi data dari instans PolarDB-X 1.0 ke instans ApsaraDB RDS for MySQL dengan downtime minimal. DTS mendukung migrasi skema, migrasi data penuh, dan migrasi data inkremental sehingga aplikasi Anda dapat tetap online selama proses berlangsung.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Memiliki instans sumber PolarDB-X 1.0 (versi 5.2 atau lebih baru) dengan tipe penyimpanan ApsaraDB RDS for MySQL. PolarDB for MySQL tidak dapat digunakan sebagai tipe penyimpanan.PolarDB-X 1.0
Memiliki instans tujuan ApsaraDB RDS for MySQL dengan kapasitas penyimpanan yang tersedia lebih besar daripada ukuran total data pada instans sumber.
Memiliki akun database dengan izin yang diperlukan. Lihat Izin yang diperlukan untuk akun database.
Untuk migrasi data inkremental: binary logging harus diaktifkan pada instans sumber, dengan parameter
binlog_row_imagediatur kefull. Set karakter data yang akan dimigrasikan tidak boleh utf8mb3.
Penagihan
| Jenis migrasi | Biaya instans | Biaya lalu lintas internet |
|---|---|---|
| Migrasi skema, migrasi data penuh | Gratis | Dikenakan biaya jika Access Method diatur ke Public IP Address. Lihat Ikhtisar penagihan. |
| Migrasi data inkremental | Dikenakan biaya. Lihat Ikhtisar penagihan. | — |
Batasan
Persyaratan database sumber
Server harus memiliki bandwidth keluar yang mencukupi. Bandwidth rendah mengurangi kecepatan migrasi.
Tabel harus memiliki PRIMARY KEY atau kendala UNIQUE dengan semua bidang unik. Tabel tanpa kendala ini dapat menghasilkan catatan duplikat di tujuan.
Jika Anda mengganti nama tabel atau kolom selama migrasi, satu tugas mendukung hingga 1.000 tabel. Untuk lebih dari 1.000 tabel, bagi beban kerja ke beberapa tugas atau migrasikan seluruh database.
Jangan memodifikasi sumber selama migrasi: hindari upgrade atau downgrade instans, migrasi tabel yang sering diperbarui, mengubah kunci shard, atau menjalankan operasi DDL. Tindakan apa pun ini akan menyebabkan tugas migrasi gagal.
Jika Anda mengubah jenis jaringan instans PolarDB-X 1.0 selama migrasi, perbarui pengaturan koneksi jaringan tugas migrasi agar sesuai.
Hanya untuk migrasi data penuh: jangan menulis data ke sumber selama migrasi. Menulis ke sumber selama migrasi hanya penuh menyebabkan ketidakkonsistenan data.
For incremental data migration, konfigurasikan hal-hal berikut sebelum memulai:
Binary logging harus diaktifkan dan
binlog_row_imageharus diatur kefull. DTS akan gagal dalam Pemeriksaan Awal jika pengaturan ini tidak dipenuhi.Periode retensi log biner harus memenuhi durasi minimum: Jika DTS tidak dapat membaca log biner, tugas akan gagal dan ketidakkonsistenan atau kehilangan data mungkin terjadi. Setelah migrasi data penuh selesai, Anda dapat mengurangi periode retensi menjadi lebih dari 24 jam.
Lingkup migrasi Retensi minimum Hanya migrasi data inkremental Lebih dari 24 jam Migrasi data penuh + migrasi data inkremental Minimal 7 hari
Batasan lainnya
DTS tidak memigrasikan operasi DDL Online.
DTS memigrasikan kunci asing dari sumber ke tujuan selama migrasi skema.
Jika data berisi karakter 4-byte (karakter langka atau emoji), tabel tujuan harus menggunakan set karakter UTF8mb4. Jika Anda menggunakan migrasi skema, atur parameter
character_set_serverdi tujuan ke UTF8mb4.Nama kolom yang hanya berbeda dalam kapitalisasi dalam tabel tujuan yang sama dapat menghasilkan hasil tak terduga karena nama kolom MySQL bersifat case-insensitive.
Jika Anda menggunakan Transaksi XA di sumber, DTS menjamin konsistensi data inkremental berdasarkan kontinuitas transaksi XA. Jika kontinuitas terganggu (misalnya, selama disaster recovery), transaksi XA yang belum dikomit dapat hilang.
DTS secara sementara menonaktifkan pemeriksaan kendala kunci asing dan operasi kaskade pada tingkat session selama migrasi. Jika Anda menjalankan operasi kaskade atau delete pada sumber selama periode ini, ketidakkonsistenan data mungkin terjadi.
Selama migrasi data penuh, operasi INSERT konkuren menyebabkan fragmentasi tabel. Setelah migrasi selesai, ukuran ruang tabel tujuan lebih besar daripada sumber.
DTS mencoba ulang tugas yang gagal hingga 7 hari. Sebelum mengalihkan beban kerja ke tujuan, hentikan atau lepas tugas yang gagal, atau jalankan REVOKE untuk mencabut izin tulis DTS di tujuan. Jika tidak, tugas yang gagal yang dilanjutkan kembali dapat menimpa data tujuan dengan data sumber.
Setelah migrasi selesai (status tugas Status berubah menjadi Completed), jalankan
ANALYZE TABLE <table_name>untuk memverifikasi bahwa data telah ditulis ke disk. Dalam beberapa skenario alih bencana Ketersediaan tinggi (HA), data mungkin hanya ada di memori dan dapat hilang.Jika tugas DTS gagal, tim dukungan teknis DTS berusaha memulihkannya dalam waktu 8 jam. Selama pemulihan, tugas mungkin dimulai ulang dan parameternya mungkin dimodifikasi. Parameter database tidak dimodifikasi.
DTS secara berkala memperbarui tabel
dts_health_check.ha_health_checkdi sumber untuk memajukan posisi log biner.
Operasi SQL yang didukung untuk migrasi inkremental
| Jenis operasi | Pernyataan SQL |
|---|---|
| DML | INSERT, UPDATE, DELETE |
Izin yang diperlukan untuk akun database
| Database | Migrasi skema | Migrasi data penuh | Migrasi data inkremental |
|---|---|---|---|
| PolarDB-X 1.0 | SELECT | SELECT | SELECT, REPLICATION SLAVE, REPLICATION CLIENT |
| ApsaraDB RDS for MySQL | Izin baca dan tulis | Izin baca dan tulis | Izin baca dan tulis |
REPLICATION SLAVE dan REPLICATION CLIENT hanya diperlukan untuk migrasi data inkremental. Untuk petunjuk pemberian izin ini, lihat Alat sinkronisasi data untuk PolarDB-X.
Untuk membuat akun dan memberikan izin:
PolarDB-X 1.0: Kelola akun database
ApsaraDB RDS for MySQL: Buat akun dan Modifikasi izin akun
Buat tugas migrasi data
Proses keseluruhan terdiri dari empat tahap:
Buka halaman Data Migration dan buat tugas.
Konfigurasikan database sumber dan tujuan, lalu uji konektivitas.
Pilih objek dan konfigurasikan opsi migrasi.
Jalankan Pemeriksaan Awal, beli instans, dan mulai migrasi.
Langkah 1: Buka halaman Data Migration
Konsol DTS
Login ke Konsol DTS.Konsol DTS
Di panel navigasi kiri, klik Data Migration.
Di pojok kiri atas, pilih wilayah tempat instans migrasi berada.
Konsol DMS
Langkah-langkah dapat berbeda tergantung mode konsol DMS. Lihat Mode simple dan Sesuaikan tata letak dan gaya konsol DMS.
Login ke Konsol DMS.Konsol DMS
Di bilah navigasi atas, buka Data + AI > DTS (DTS) > Data Migration.
Dari daftar drop-down di samping Data Migration Tasks, pilih wilayah tempat instans migrasi berada.
Langkah 2: Konfigurasikan database sumber dan tujuan
Klik Create Task.
Konfigurasikan database sumber dan tujuan menggunakan parameter pada tabel berikut.
| Bagian | Parameter | Deskripsi |
|---|---|---|
| N/A | Task Name | Nama untuk tugas migrasi. DTS menghasilkan nama secara otomatis. Tentukan nama deskriptif agar mudah diidentifikasi. Nama tidak perlu unik. |
| Source Database | Select Existing Connection | Jika instans sudah terdaftar di DTS, pilih dari daftar — DTS akan mengisi parameter lainnya secara otomatis. Jika belum, konfigurasikan parameter di bawah ini. |
| Database Type | Pilih PolarDB-X 1.0. | |
| Access Method | Pilih Alibaba Cloud Instance. | |
| Instance Region | Wilayah tempat instans sumber PolarDB-X 1.0 berada. | |
| Replicate Data Across Alibaba Cloud Accounts | Pilih No jika instans sumber dan tujuan berada dalam Akun Alibaba Cloud yang sama. | |
| Instance ID | ID instans sumber PolarDB-X 1.0. | |
| Database Account | Akun database untuk instans sumber. Lihat Izin yang diperlukan untuk akun database. | |
| Database Password | Password akun database. | |
| Destination Database | Select Existing Connection | Jika instans sudah terdaftar di DTS, pilih dari daftar. Jika belum, konfigurasikan parameter di bawah ini. |
| Database Type | Pilih MySQL. | |
| Access Method | Pilih Alibaba Cloud Instance. | |
| Instance Region | Wilayah tempat instans tujuan ApsaraDB RDS for MySQL berada. | |
| Replicate Data Across Alibaba Cloud Accounts | Pilih No jika menggunakan Akun Alibaba Cloud yang sama. | |
| RDS Instance ID | ID instans tujuan ApsaraDB RDS for MySQL. | |
| Database Account | Akun database untuk instans tujuan. Lihat Izin yang diperlukan untuk akun database. | |
| Database Password | Password akun database. | |
| Connection Method | Pilih Non-encrypted atau SSL-encrypted. Untuk menggunakan enkripsi SSL, aktifkan terlebih dahulu di instans ApsaraDB RDS for MySQL. Lihat Gunakan sertifikat cloud untuk mengaktifkan enkripsi SSL. |
Klik Test Connectivity and Proceed.
Pastikan blok CIDR server DTS telah ditambahkan ke pengaturan keamanan database sumber dan tujuan. Lihat Tambahkan blok CIDR server DTS.
Langkah 3: Pilih objek dan konfigurasikan opsi migrasi
Di halaman Configure Objects, atur parameter berikut.
| Parameter | Deskripsi |
|---|---|
| Migration Types | Pilih jenis migrasi sesuai kebutuhan Anda: <br>- Schema Migration + Full Data Migration: memigrasikan skema dan semua data yang ada. Sumber dapat tetap aktif selama konfigurasi, tetapi jangan menulis ke sumber setelah migrasi dimulai. <br>- Schema Migration + Full data migration only + Incremental Data Migration: memigrasikan data yang ada lalu mereplikasi perubahan secara berkelanjutan. Ini menjaga aplikasi tetap berjalan dengan downtime minimal. <br><br> Catatan Jika Anda melewatkan Schema Migration, buat tabel tujuan secara manual sebelum memulai. Jika Anda melewatkan Incremental data migration, jangan menulis ke sumber selama migrasi. |
| Processing Mode of Conflicting Tables | - Precheck and Report Errors: gagal dalam Pemeriksaan Awal jika tujuan memiliki tabel dengan nama yang sama seperti sumber. Gunakan mode ini untuk mencegah penimpaan tidak disengaja. Untuk mengganti nama objek yang dimigrasikan, gunakan fitur pemetaan nama objek. <br>- Ignore Errors and Proceed: melewati Pemeriksaan Awal untuk nama tabel duplikat. Selama migrasi data penuh, catatan yang ada di tujuan dipertahankan; selama migrasi inkremental, catatan tersebut ditimpa. Gunakan mode ini dengan hati-hati — perbedaan skema antara sumber dan tujuan dapat menyebabkan migrasi sebagian atau kegagalan tugas. |
| Capitalization of Object Names in Destination Instance | Mengontrol kapitalisasi nama database, tabel, dan kolom di tujuan. Default-nya adalah DTS default policy. Lihat Tentukan kapitalisasi nama objek untuk opsi lainnya. |
| Source Objects | Pilih objek yang akan dimigrasikan dan klik ikon panah kanan untuk memindahkannya ke Selected Objects. Disarankan memilih tabel daripada seluruh database. Jika Anda memilih seluruh database, DTS tidak mereplikasi operasi CREATE TABLE atau DROP TABLE. |
| Selected Objects | Untuk mengganti nama objek individual, klik kanan objek tersebut. Untuk mengganti nama massal, klik Batch Edit. Lihat Pemetaan nama objek. Untuk memfilter baris, klik kanan objek dan tentukan kondisi WHERE. Lihat Tentukan kondisi filter. Untuk memilih operasi DML tertentu per objek, klik kanan dan pilih operasi yang ingin disertakan. <br><br> Catatan Mengganti nama objek dapat menyebabkan objek dependen gagal dimigrasikan. |
Klik Next: Advanced Settings dan konfigurasikan parameter berikut.
| Parameter | Deskripsi |
|---|---|
| Dedicated Cluster for Task Scheduling | Secara default, DTS menggunakan klaster bersama. Untuk stabilitas yang lebih baik, beli klaster khusus. Lihat Apa itu klaster khusus DTS. |
| Retry Time for Failed Connections | Durasi DTS mencoba ulang saat tidak dapat terhubung ke sumber atau tujuan. Nilai valid: 10–1.440 menit. Default: 720. Atur minimal 30 menit. Jika beberapa tugas menggunakan sumber atau tujuan yang sama, nilai yang paling baru diatur akan berlaku. Selama percobaan ulang, Anda dikenai biaya untuk instans DTS. |
| Retry Time for Other Issues | Durasi DTS mencoba ulang saat operasi DDL atau DML gagal. Nilai 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 Migration | Membatasi beban pada sumber dan tujuan selama migrasi data penuh. Saat diaktifkan, konfigurasikan Queries per second (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 only dipilih. |
| Enable Throttling for Incremental Data Migration | Membatasi beban selama migrasi data inkremental. Saat diaktifkan, konfigurasikan RPS of Incremental Data Migration dan Data migration speed for incremental migration (MB/s). Tersedia hanya jika Incremental data migration dipilih. |
| Environment Tag | Tag opsional untuk mengidentifikasi instans DTS berdasarkan lingkungan (misalnya, produksi atau uji coba). |
| Configure ETL | Apakah akan menerapkan transformasi ekstrak, transformasi, dan muat (ETL). Pilih Yespengaturan pemberitahuan peringatan untuk memasukkan pernyataan pemrosesan data. Lihat Konfigurasikan ETL dalam tugas migrasi data. |
| Monitoring and Alerting | Apakah akan mengonfigurasi peringatan untuk kegagalan tugas atau latensi migrasi tinggi. Pilih Yes dan konfigurasikan ambang batas serta pengaturan notifikasi. Lihat Konfigurasikan pemantauan dan peringatan. |
Langkah 4: Jalankan Pemeriksaan Awal dan mulai migrasi
Klik Next: Save Task Settings and Precheck.
Untuk melihat parameter API untuk konfigurasi ini, arahkan kursor ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters sebelum melanjutkan.
DTS menjalankan Pemeriksaan Awal secara otomatis. Jika ada item yang gagal:
Klik View Details di samping item yang gagal, selesaikan masalahnya, lalu klik Precheck Again.
Jika suatu item menampilkan peringatan yang dapat diabaikan, klik Confirm Alert Details > Ignore > OK, lalu klik Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman Purchase Instance, konfigurasikan parameter berikut.
| Bagian | Parameter | Deskripsi |
|---|---|---|
| New Instance Class | Resource Group | Kelompok sumber daya untuk instans migrasi. Default: default resource group. Lihat Apa itu Resource Management? |
| Instance Class | Kelas instans menentukan kecepatan migrasi. Lihat Kelas instans untuk migrasi data. |
Baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms, lalu klik Buy and Start > OK.
Verifikasi migrasi
Monitor progres di halaman Data Migration.
Full data migration only: tugas berhenti otomatis setelah selesai. Kolom Status menampilkan Completed.
Incremental data migration: tugas berjalan terus-menerus dan tidak berhenti otomatis. Kolom Status menampilkan Running.
Setelah status tugas berubah menjadi Completed, jalankan perintah berikut untuk memverifikasi bahwa data telah ditulis ke tabel tujuan:
ANALYZE TABLE <table_name>;Sebelum mengalihkan trafik aplikasi ke database tujuan, hentikan atau lepas tugas migrasi yang gagal, atau cabut izin tulis DTS menggunakan REVOKE. Hal ini mencegah tugas yang dilanjutkan kembali menimpa data migrasi Anda.