Gunakan Data Transmission Service (DTS) untuk memigrasikan data dari instans PolarDB-X 1.0 ke instans PolarDB-X 2.0. DTS mendukung migrasi skema, migrasi data penuh, dan migrasi data inkremental. Kombinasi ketiganya memungkinkan aplikasi Anda tetap berjalan tanpa gangguan selama proses migrasi.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Memiliki instans sumber PolarDB-X 1.0 dengan tipe penyimpanan ApsaraDB RDS for MySQL (kustom atau dibeli). Tipe penyimpanan PolarDB for MySQL tidak didukung.
Instans PolarDB-X 1.0 berada pada versi 5.2 atau lebih baru.
Memiliki instans tujuan PolarDB-X 2.0 dengan database yang telah dibuat untuk menerima data. Lihat Buat instans dan Buat database.
Ruang penyimpanan yang tersedia pada instans tujuan lebih besar daripada ukuran total data pada instans sumber.
Konfigurasi binary logging diaktifkan pada instans ApsaraDB RDS for MySQL yang terhubung ke instans sumber PolarDB-X 1.0. Lihat persyaratan binary logging.
Batasan
Persyaratan database sumber
Persyaratan tabel
Tabel yang akan dimigrasikan harus memiliki kendala PRIMARY KEY atau UNIQUE, dengan semua field bersifat unik. Tanpa ini, instans tujuan mungkin berisi catatan duplikat.
DTS tidak mendukung migrasi skema untuk tabel yang hanya memiliki kendala UNIQUE. Buat kendala PRIMARY KEY pada tabel tersebut sebelum memulai migrasi.
Maksimal 1.000 tabel dapat dimigrasikan dalam satu tugas jika Anda memilih tabel individual sebagai objek migrasi dan mengganti nama tabel atau kolom. Untuk memigrasikan lebih dari 1.000 tabel, bagi menjadi beberapa tugas atau migrasikan seluruh database sekaligus.
Persyaratan binary logging
Binary logging harus diaktifkan pada instans ApsaraDB RDS for MySQL yang terhubung ke instans sumber PolarDB-X 1.0. Verifikasi parameter berikut. Lihat Lihat parameter instans.
| Parameter | Nilai yang diperlukan | Catatan |
|---|---|---|
| Binary logging | Diaktifkan | Jika tidak diaktifkan, Pemeriksaan Awal gagal dan tugas migrasi tidak dapat dimulai. |
binlog_row_image | full | Jika tidak diatur ke full, Pemeriksaan Awal gagal dan tugas migrasi tidak dapat dimulai. |
| Retensi log biner (hanya migrasi inkremental) | Lebih dari 24 jam | Atur ini sebelum memulai migrasi inkremental saja. |
| Retensi log biner (migrasi penuh + inkremental) | Minimal 7 hari | DTS mungkin gagal memperoleh log biner dan tugas bisa gagal jika retensi lebih pendek. Setelah migrasi penuh selesai, Anda dapat menguranginya menjadi lebih dari 24 jam. |
Operasi terbatas selama migrasi
Hindari hal-hal berikut selama tugas migrasi sedang berjalan:
Menyesuaikan kapasitas instans sumber
Memigrasikan tabel yang sering diakses atau mengubah shard
Menjalankan operasi DDL (hal ini dapat menyebabkan tugas migrasi gagal atau menghasilkan ketidakkonsistenan data)
Mengganti jenis jaringan instans sumber PolarDB-X 1.0 (jika harus diganti, perbarui pengaturan koneksi migrasi setelahnya)
Menulis data ke database sumber selama migrasi penuh saja (gunakan migrasi skema + migrasi data penuh + migrasi data inkremental untuk menjaga konsistensi data)
Hal yang perlu dipertimbangkan
Distribusi data: Saat DTS memigrasikan data dari instans PolarDB-X 1.0, data didistribusikan ke berbagai instans ApsaraDB RDS for MySQL yang terhubung. DTS menjalankan subtask untuk setiap instans. Pantau status subtask di halaman Pemantauan Kinerja.
Kunci asing: Selama migrasi skema, DTS memigrasikan kunci asing dari sumber ke tujuan. Selama migrasi penuh dan inkremental, DTS sementara menonaktifkan pemeriksaan kendala dan operasi kaskade pada kunci asing di tingkat session. Operasi pembaruan dan penghapusan kaskade pada sumber selama migrasi dapat menyebabkan ketidakkonsistenan data.
Transaksi XA: DTS memastikan konsistensi data untuk migrasi inkremental berdasarkan kontinuitas transaksi XA di PolarDB-X 1.0. Jika kontinuitas transaksi XA terganggu (misalnya, dalam skenario pemulihan bencana), transaksi XA yang belum dikomit mungkin hilang, sehingga menyebabkan ketidakkonsistenan data.
Presisi FLOAT dan DOUBLE: DTS menggunakan fungsi
ROUND(COLUMN, PRECISION)untuk kolom FLOAT dan DOUBLE. Jika presisi tidak ditentukan, DTS menggunakan nilai default 38 digit untuk FLOAT dan 308 digit untuk DOUBLE. Pastikan nilai default ini sesuai dengan kebutuhan Anda.Fragmentasi ruang tabel: Operasi INSERT konkuren selama migrasi penuh menyebabkan fragmentasi tabel di tujuan. Setelah migrasi penuh selesai, ruang tabel yang digunakan di tujuan lebih besar daripada di sumber.
Dampak kinerja: Migrasi data penuh menggunakan sumber daya baca dan tulis di kedua database sumber dan tujuan. Jalankan migrasi selama jam sepi untuk mengurangi beban pada server database.
Pelanjutan tugas: DTS secara otomatis mencoba melanjutkan tugas migrasi yang gagal hingga 7 hari. Sebelum mengalihkan beban kerja ke tujuan, hentikan atau lepaskan tugas migrasi, atau cabut izin tulis akun DTS di database tujuan. Jika tidak, tugas yang dilanjutkan dapat menimpa data tujuan dengan data sumber.
Pemulihan kegagalan tugas: Jika tugas DTS gagal, tim dukungan DTS akan mencoba memulihkannya dalam waktu 8 jam. Tugas mungkin dimulai ulang dan parameter tugas (bukan parameter database) dapat diubah selama pemulihan.
Penagihan
| Jenis migrasi | Biaya instans | Biaya lalu lintas internet |
|---|---|---|
| Migrasi skema dan 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. | — |
Jenis migrasi
| Jenis | Apa yang dimigrasikan DTS |
|---|---|
| Migrasi skema | Skema objek yang dipilih dari sumber ke tujuan |
| Migrasi data penuh | Data historis objek yang dipilih dari sumber ke tujuan |
| Migrasi data inkremental | Perubahan data setelah migrasi penuh selesai, tanpa mengganggu layanan aplikasi sumber |
Operasi SQL yang didukung selama migrasi data inkremental
| Jenis operasi | Supported Statements |
|---|---|
| DML | INSERT, UPDATE, DELETE |
Izin yang diperlukan
| Database | Migrasi skema | Migrasi data penuh | Migrasi data inkremental | Cara memberikan izin |
|---|---|---|---|---|
| PolarDB-X 1.0 | SELECT | SELECT | SELECT, REPLICATION SLAVE, REPLICATION CLIENT (DTS memberikan izin ini secara otomatis) | Kelola akun |
| PolarDB-X 2.0 | Baca/Tulis | Baca/Tulis | Baca/Tulis | — |
Buat tugas migrasi
Langkah 1: Buka halaman Data Migration
Gunakan Konsol DTS atau Konsol DMS.
Konsol DTS
Masuk ke Konsol DTS.
Di panel navigasi kiri, klik Data Migration.
Di pojok kiri atas, pilih wilayah tempat instans migrasi berada.
Konsol DMS
Langkah-langkah ini dapat berbeda tergantung pada mode dan tata letak Konsol DMS Anda. Lihat Simple mode dan Sesuaikan tata letak dan gaya Konsol DMS.
Masuk ke Konsol DMS.
Di bilah navigasi atas, arahkan kursor ke Data + AI > DTS (DTS) > Data Migration.
Dari daftar drop-down di sebelah kanan Data Migration Tasks, pilih wilayah tempat instans migrasi berada.
Langkah 2: Konfigurasi database sumber dan tujuan
Klik Create Task, lalu konfigurasikan parameter berikut.
| Bagian | Parameter | Nilai |
|---|---|---|
| — | Task Name | Masukkan nama deskriptif. DTS menghasilkan nama secara otomatis; tidak perlu unik. |
| Source Database | Database Type | PolarDB-X 1.0 |
| Access Method | Alibaba Cloud Instance | |
| Instance Region | Wilayah instans sumber PolarDB-X 1.0 | |
| Replicate Data Across Alibaba Cloud Accounts | No (migrasi akun yang sama) | |
| Instance ID | ID instans sumber PolarDB-X 1.0 | |
| Database Account | Akun untuk instans sumber PolarDB-X 1.0 | |
| Database Password | Kata sandi untuk akun sumber | |
| Destination Database | Database Type | PolarDB-X 2.0 |
| Access Method | Alibaba Cloud Instance | |
| Instance Region | Wilayah instans tujuan PolarDB-X 2.0 | |
| Instance ID | ID instans tujuan PolarDB-X 2.0 | |
| Database Account | Akun untuk instans tujuan PolarDB-X 2.0 | |
| Database Password | Kata sandi untuk akun tujuan |
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 yang akan dimigrasikan
Di halaman Configure Objects, konfigurasikan parameter berikut.
| Parameter | Deskripsi |
|---|---|
| Synchronization Types | Pilih jenis migrasi yang akan dijalankan: <br>• Schema Migration + Full Data Migration: migrasi penuh tanpa kelangsungan layanan <br>• Schema Migration + Full Data Migration + Incremental Data Migration: menjaga layanan tetap berjalan selama migrasi (disarankan) <br><br> Catatan Jika Anda melewatkan Schema Migration, buat database dan tabel tujuan secara manual serta aktifkan pemetaan nama objek di Selected Objects. Jika Anda melewatkan Incremental Data Migration, jangan menulis ke database sumber selama migrasi. |
| Processing Mode of Conflicting Tables | • Precheck and Report Errors: Pemeriksaan Awal gagal jika sumber dan tujuan memiliki tabel dengan nama identik. Gunakan pemetaan nama objek untuk mengganti nama tabel yang bertabrakan jika tidak dapat dihapus atau diganti namanya di tujuan. <br>• Ignore Errors and Proceed: melewati Pemeriksaan Awal untuk nama tabel identik. <br><br> Peringatan Memilih Ignore Errors and Proceed dapat menyebabkan ketidakkonsistenan data. Selama migrasi penuh, DTS melewati catatan dengan kunci utama duplikat (mempertahankan catatan tujuan yang sudah ada). Selama migrasi inkremental, DTS menimpanya. Jika skema berbeda, hanya beberapa kolom yang dimigrasikan atau tugas mungkin gagal. |
| Capitalization of Object Names in Destination Instance | Mengontrol kapitalisasi nama database, tabel, dan kolom di tujuan. Default: DTS default policy. Lihat Tentukan kapitalisasi nama objek. |
| Source Objects | Pilih objek yang akan dimigrasikan, lalu klik ikon panah untuk menambahkannya ke Selected Objects. <br><br> Catatan Pilih tabel individual, bukan seluruh database. Saat Anda memigrasikan seluruh database, DTS tidak mereplikasi perubahan CREATE TABLE atau DROP TABLE ke tujuan. |
| Selected Objects | Klik kanan objek tunggal untuk mengganti namanya, atau klik Batch Edit untuk mengganti nama beberapa objek sekaligus. Lihat Pemetaan nama objek. <br><br> Catatan Mengganti nama objek dapat menyebabkan migrasi objek dependen gagal. |
Langkah 4: Konfigurasi pengaturan lanjutan
Klik Next: Advanced Settings, lalu konfigurasikan parameter berikut.
| Parameter | Deskripsi |
|---|---|
| Dedicated Cluster for Task Scheduling | Secara default, DTS menjadwalkan tugas ke kluster bersama. Beli kluster khusus untuk meningkatkan stabilitas migrasi. Lihat Apa itu kluster khusus DTS. |
| Retry Time for Failed Connections | Durasi DTS mencoba kembali setelah kegagalan koneksi. Nilai valid: 10–1.440 menit. Default: 720 menit. Atur minimal 30 menit. Jika DTS terhubung kembali dalam jendela ini, migrasi dilanjutkan; jika tidak, tugas gagal. <br><br> Catatan Jika beberapa tugas menggunakan sumber atau tujuan yang sama, waktu coba ulang yang paling baru diatur akan berlaku. DTS mengenakan biaya instans selama percobaan ulang. |
| Retry Time for Other Issues | Durasi DTS mencoba kembali setelah kegagalan operasi DDL atau DML. Nilai valid: 1–1.440 menit. Default: 10 menit. Atur minimal 10 menit. Nilai ini harus lebih kecil daripada Retry Time for Failed Connections. |
| Enable Throttling for Full Data Migration | Membatasi beban baca dan tulis selama migrasi penuh. Konfigurasikan QPS (Queries per second) 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 Migration | Membatasi beban selama migrasi inkremental. 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 migrasi. |
| Configure ETL | Mengaktifkan fitur ekstrak, transformasi, dan muat (ETL). Pilih Yes untuk memasukkan statement pemrosesan data. Lihat Konfigurasi ETL dalam tugas migrasi data atau sinkronisasi data dan Apa itu ETL?. |
| Monitoring and Alerting | Pilih Yes untuk menerima notifikasi saat tugas gagal atau latensi migrasi melebihi ambang batas. Konfigurasikan ambang batas peringatan dan pengaturan notifikasi. Lihat Konfigurasi pemantauan dan peringatan. |
Langkah 5: Jalankan Pemeriksaan Awal
Klik Next: Save Task Settings and Precheck.
Untuk melihat pratinjau parameter API untuk konfigurasi ini, arahkan kursor ke tombol tersebut dan klik Preview OpenAPI parameters sebelum melanjutkan.
DTS menjalankan Pemeriksaan Awal sebelum memulai migrasi. Tugas hanya dimulai setelah Pemeriksaan Awal berhasil.
Jika ada item Pemeriksaan Awal yang gagal, klik View Details di sebelah item tersebut. Perbaiki masalahnya, lalu klik Precheck Again.
Jika item Pemeriksaan Awal memicu peringatan yang dapat diabaikan, klik Confirm Alert Details. Di dialog tersebut, klik Ignore > OK, lalu klik Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
Langkah 6: Beli instans dan mulai migrasi
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 Menentukan kecepatan migrasi. Pilih berdasarkan kebutuhan Anda. Lihat Kelas instans migrasi data. Baca dan terima Data Transmission Service (Pay-as-you-go) Service Terms.
Klik Buy and Start, lalu klik OK.
Verifikasi status migrasi
Setelah tugas dimulai, lihat progresnya di halaman Data Migration.
| Jenis migrasi | Status yang diharapkan |
|---|---|
| Hanya migrasi skema + migrasi data penuh | Completed — tugas berhenti otomatis setelah selesai. |
| Termasuk migrasi data inkremental | Running — migrasi inkremental berjalan terus-menerus dan tidak berhenti otomatis. |
Langkah selanjutnya
Sebelum mengalihkan aplikasi Anda ke instans tujuan PolarDB-X 2.0:
Hentikan atau lepaskan tugas migrasi untuk mencegahnya dilanjutkan dan menimpa data tujuan. Alternatifnya, cabut izin tulis akun DTS di database tujuan.