Gunakan Data Transmission Service (DTS) untuk memigrasikan data dari instans ApsaraDB RDS for MariaDB TX ke instans ApsaraDB RDS for MySQL. DTS mendukung migrasi skema, migrasi data penuh, dan migrasi data inkremental sehingga Anda dapat melakukan migrasi dengan downtime minimal.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Membuat instans ApsaraDB RDS for MySQL tujuan. Untuk informasi lebih lanjut, lihat Buat instans ApsaraDB RDS for MySQL.
Memverifikasi bahwa instans tujuan memiliki ruang penyimpanan kosong yang cukup untuk menampung seluruh data dari instans sumber.
Memberikan izin yang diperlukan kepada akun database. Lihat Izin yang diperlukan untuk akun database.
Penagihan
| Jenis migrasi | Biaya konfigurasi tugas | Biaya transfer data |
|---|---|---|
| Migrasi skema dan migrasi data penuh | Gratis | Gratis |
| Migrasi data inkremental | Dikenakan biaya | Lihat Ikhtisar penagihan |
Izin yang diperlukan untuk akun database
| Database | Migrasi skema | Migrasi data penuh | Migrasi data inkremental |
|---|---|---|---|
| Instans ApsaraDB RDS for MariaDB TX sumber | SELECT pada objek yang akan dimigrasikan | Baca dan tulis pada objek yang akan dimigrasikan | Baca dan tulis pada objek yang akan dimigrasikan |
| Instans ApsaraDB RDS for MySQL tujuan | Baca dan tulis pada database tujuan | Baca dan tulis pada database tujuan | Baca dan tulis pada database tujuan |
Untuk petunjuk membuat akun dan memberikan izin yang diperlukan, lihat:
ApsaraDB RDS for MariaDB TX: Buat akun dan Ubah atau atur ulang izin akun.
ApsaraDB RDS for MySQL: Buat akun dan Ubah izin akun.
Operasi SQL yang didukung untuk migrasi inkremental
| Tipe | Pernyataan yang didukung |
|---|---|
| DML | INSERT, UPDATE, DELETE |
| DDL | ALTER TABLE, ALTER VIEW, CREATE FUNCTION, CREATE INDEX, CREATE PROCEDURE, CREATE TABLE, CREATE VIEW, DROP INDEX, DROP TABLE, RENAME TABLE, TRUNCATE TABLE |
Operasi RENAME TABLE dapat menyebabkan ketidakkonsistenan data. Jika Anda mengganti nama tabel selama migrasi dan tabel tersebut dipilih sebagai objek migrasi (bukan database), data dari tabel tersebut tidak akan dimigrasikan. Untuk menghindari hal ini, pilih database sebagai objek migrasi, bukan tabel individual. Pastikan baik tabel asli maupun tabel yang diganti namanya termasuk dalam objek migrasi.
Batasan
Perilaku kunci asing
DTS memigrasikan kunci asing dari database sumber ke database tujuan selama migrasi skema. Selama migrasi data penuh dan migrasi data inkremental, DTS secara sementara menonaktifkan pemeriksaan kendala kunci asing dan operasi kaskade pada tingkat session. Jika Anda melakukan operasi kaskade atau penghapusan pada database sumber selama migrasi, ketidakkonsistenan data dapat terjadi.
Persyaratan database sumber
| Persyaratan | Detail |
|---|---|
| Bandwidth | Server sumber harus memiliki bandwidth outbound yang mencukupi. Bandwidth yang tidak mencukupi akan mengurangi kecepatan migrasi. |
| Kendala tabel | Tabel harus memiliki PRIMARY KEY atau kendala UNIK, dan semua field harus unik. Tanpa kendala ini, database tujuan mungkin berisi catatan duplikat. |
| Batas jumlah tabel | Jika Anda memilih tabel sebagai objek migrasi dan perlu mengganti namanya di database tujuan, satu tugas migrasi mendukung hingga 1.000 tabel. Untuk lebih dari 1.000 tabel, pecah tugas atau pilih seluruh database sebagai objek migrasi. |
| Operasi DDL | Jangan lakukan operasi DDL pada database sumber selama migrasi skema atau migrasi data penuh. |
| Operasi tulis | Jika Anda hanya menjalankan migrasi data penuh (tanpa migrasi inkremental), jangan menulis ke database sumber selama migrasi. Untuk memastikan konsistensi data, pilih migrasi skema, migrasi data penuh, dan migrasi data inkremental secara bersamaan. |
Persyaratan binlog untuk migrasi data inkremental
Untuk mengaktifkan migrasi data inkremental, konfigurasikan parameter berikut pada instans sumber:
| Parameter | Nilai yang diperlukan | Alasan |
|---|---|---|
| Pencatatan biner (Binary logging) | Diaktifkan | DTS membaca perubahan dari log biner untuk migrasi inkremental. |
binlog_format | row | Format berbasis baris menangkap perubahan tingkat baris lengkap yang diperlukan oleh DTS. |
binlog_row_image | full | Gambar lengkap menangkap nilai sebelum dan sesudah setiap perubahan baris. |
Tetapkan periode retensi log biner berdasarkan jenis migrasi Anda:
Hanya migrasi inkremental: Simpan log biner lebih dari 24 jam.
Migrasi data penuh + migrasi data inkremental: Simpan log biner minimal 7 hari. Setelah migrasi data penuh selesai, Anda dapat mengurangi periode retensi menjadi lebih dari 24 jam.
Jika DTS tidak dapat mengambil log biner yang diperlukan, tugas akan gagal atau terjadi kehilangan data. Menetapkan periode retensi di bawah minimum ini membatalkan perjanjian tingkat layanan (SLA) DTS.
Batasan lainnya
Waktu pelaksanaan: Evaluasi dampak terhadap kinerja database sumber dan tujuan sebelum memulai. Jalankan migrasi selama jam sepi—migrasi data penuh mengonsumsi sumber daya baca dan tulis pada kedua instans.
Ukuran ruang tabel: Operasi INSERT konkuren selama migrasi data penuh menyebabkan fragmentasi pada tabel tujuan. Setelah migrasi, ruang tabel tujuan biasanya lebih besar daripada sumber.
Presisi FLOAT dan DOUBLE: DTS mengambil nilai kolom FLOAT dan DOUBLE menggunakan
ROUND(COLUMN,PRECISION). Jika presisi tidak ditentukan, DTS menggunakan 38 digit untuk FLOAT dan 308 digit untuk DOUBLE. Verifikasi apakah nilai default ini memenuhi kebutuhan Anda.Resume tugas yang gagal: DTS mencoba ulang tugas migrasi yang gagal hingga 7 hari. Sebelum mengalihkan beban kerja ke database tujuan, hentikan atau lepas tugas yang gagal. Atau, jalankan pernyataan
REVOKEuntuk mencabut izin tulis dari akun DTS pada database tujuan. Jika tidak, tugas yang gagal dan dilanjutkan kembali dapat menimpa data di database tujuan.Kegagalan DDL di tujuan: Jika pernyataan DDL gagal di database tujuan, tugas DTS tetap berjalan. Periksa log tugas untuk melihat pernyataan DDL yang gagal. Untuk informasi lebih lanjut, lihat Lihat log tugas.
Column name case sensitivity: Nama kolom MySQL tidak peka terhadap huruf besar/kecil. Jika database sumber memiliki kolom yang namanya hanya berbeda dalam kapitalisasi, hasil migrasi mungkin tidak sesuai ekspektasi.
Verifikasi pasca-migrasi: Setelah migrasi selesai, jalankan
analyze table <table_name>untuk memverifikasi bahwa data telah ditulis ke tabel tujuan. Dalam beberapa skenario alih bencana ketersediaan tinggi (HA), data mungkin hanya ditulis ke memori pada instans sumber, sehingga menyebabkan kehilangan data.
Daftar periksa pra-migrasi
Sebelum memulai tugas migrasi, verifikasi item berikut. Melewatkan salah satu item dapat menyebabkan tugas gagal atau data tidak konsisten.
| # | Item | Cara verifikasi |
|---|---|---|
| 1 | Instans RDS for MySQL tujuan telah dibuat dan memiliki ruang penyimpanan yang cukup | Periksa status instans dan penyimpanan di Konsol RDS |
| 2 | Akun database memiliki izin yang diperlukan | Jalankan SHOW GRANTS FOR '<dts_user>'@'%'; pada setiap database |
| 3 | Instans sumber memiliki bandwidth outbound yang mencukupi | Periksa penggunaan bandwidth di Konsol Pemantauan |
| 4 | Tabel yang akan dimigrasikan memiliki PRIMARY KEY atau kendala UNIK | Jalankan SHOW CREATE TABLE <table_name>; untuk memverifikasi |
| 5 | Pencatatan biner diaktifkan (hanya untuk migrasi inkremental) | Jalankan SHOW VARIABLES LIKE 'log_bin'; — nilai harus ON |
| 6 | binlog_format = row (hanya untuk migrasi inkremental) | Jalankan SHOW VARIABLES LIKE 'binlog_format'; |
| 7 | binlog_row_image = full (hanya untuk migrasi inkremental) | Jalankan SHOW VARIABLES LIKE 'binlog_row_image'; |
| 8 | Periode retensi log biner memenuhi persyaratan (hanya untuk migrasi inkremental) | Periksa pengaturan grup parameter RDS |
| 9 | Tidak ada operasi DDL yang direncanakan selama migrasi skema/data penuh | Koordinasikan dengan tim Anda |
| 10 | Migrasi dijadwalkan selama jam sepi | Tinjau pola traffic aplikasi |
Buat tugas migrasi
Langkah 1: Buka halaman Tugas Migrasi Data
Masuk ke Konsol Data Management (DMS).
Di bilah navigasi atas, klik DTS.
Di panel navigasi kiri, pilih DTS (DTS) > Data Migration.
Atau, buka langsung halaman Tugas Migrasi Data di Konsol DTS baru. Tata letak konsol dan operasi yang tersedia mungkin berbeda. Untuk informasi lebih lanjut, lihat Mode simple dan Sesuaikan tata letak dan gaya Konsol DMS.
Langkah 2: Pilih wilayah
Dari daftar drop-down di samping Data Migration Tasks, pilih wilayah tempat instans migrasi berada.
Di Konsol DTS baru, pilih wilayah di pojok kiri atas.
Langkah 3: Konfigurasi database sumber dan tujuan
Klik Create Task. Di halaman Create Task, konfigurasikan database sumber dan tujuan.
Baca batasan yang ditampilkan di bagian atas halaman sebelum melanjutkan. Melewatkan langkah ini dapat menyebabkan tugas gagal atau ketidakkonsistenan data.
Database sumber
| Parameter | Deskripsi |
|---|---|
| Select an existing DMS database instance (opsional) | Pilih instans yang sudah ada untuk mengisi otomatis parameter koneksi, atau biarkan kosong untuk mengonfigurasi secara manual. |
| Database Type | Pilih MariaDB. |
| Access Method | Pilih Alibaba Cloud Instance. |
| Instance Region | Pilih wilayah tempat instans ApsaraDB RDS for MariaDB TX sumber berada. |
| Replicate Data Across Alibaba Cloud Accounts | Pilih No untuk migrasi dalam akun yang sama. |
| Instance ID | Pilih atau masukkan ID instans ApsaraDB RDS for MariaDB TX sumber. |
| Database Account | Masukkan akun database untuk instans sumber. Lihat Izin yang diperlukan untuk akun database. |
| Database Password | Masukkan password untuk akun database. |
| Encryption | Pilih Non-encrypted untuk contoh ini. |
Database tujuan
| Parameter | Deskripsi |
|---|---|
| Select an existing DMS database instance (opsional) | Pilih instans yang sudah ada untuk mengisi otomatis parameter koneksi, atau biarkan kosong untuk mengonfigurasi secara manual. |
| Database Type | Pilih MySQL. |
| Access Method | Pilih Alibaba Cloud Instance. |
| Instance Region | Pilih wilayah tempat instans ApsaraDB RDS for MySQL tujuan berada. |
| Replicate Data Across Alibaba Cloud Accounts | Pilih No untuk migrasi dalam akun yang sama. |
| RDS Instance ID | Pilih atau masukkan ID instans ApsaraDB RDS for MySQL tujuan. |
| Database Account | Masukkan akun database untuk instans tujuan. Lihat Izin yang diperlukan untuk akun database. |
| Database Password | Masukkan password untuk akun database. |
| Encryption | Pilih Non-encrypted atau SSL-encrypted. Jika Anda memilih SSL-encrypted, aktifkan enkripsi SSL pada instans tujuan terlebih dahulu. Lihat Konfigurasi fitur enkripsi SSL. |
Langkah 4: Uji konektivitas
Klik Test Connectivity and Proceed.
DTS secara otomatis menambahkan blok CIDR servernya ke daftar putih alamat IP instans database Alibaba Cloud, serta ke aturan grup keamanan instans Elastic Compute Service (ECS) yang menghosting database yang dikelola sendiri. Untuk database yang dikelola sendiri pada beberapa instans ECS atau database on-premises, tambahkan secara manual blok CIDR server DTS. Lihat Tambahkan blok CIDR server DTS ke pengaturan keamanan database on-premises.
Menambahkan blok CIDR publik ke daftar putih alamat IP atau aturan grup keamanan menimbulkan risiko keamanan. Sebelum menggunakan DTS, ambil langkah pencegahan seperti: memperkuat password akun, membatasi port yang terbuka, mengautentikasi panggilan API, dan secara berkala mengaudit daftar putih IP serta aturan grup keamanan. Jika memungkinkan, hubungkan ke DTS menggunakan Express Connect, VPN Gateway, atau Smart Access Gateway, bukan akses jaringan publik.
Langkah 5: Konfigurasi objek migrasi
Konfigurasikan jenis migrasi dan pilih objek yang akan dimigrasikan.
| Parameter | Deskripsi |
|---|---|
| Migration Types | Pilih jenis migrasi sesuai kebutuhan Anda: - Hanya migrasi penuh: Pilih Schema Migration dan Full Data Migration. - Migrasi dengan kontinuitas layanan: Pilih Schema Migration, Full Data Migration, dan Incremental Data Migration. Jika Anda tidak memilih Incremental Data Migration, jangan menulis ke database sumber selama migrasi. |
| Method to Migrate Triggers in Source Database | Pilih metode migrasi trigger sesuai kebutuhan Anda. Parameter ini tersedia hanya jika Schema Migration dan Incremental Data Migration keduanya dipilih. Lihat Sinkronkan atau migrasikan trigger dari database sumber. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors (default): DTS memeriksa tabel dengan nama identik di kedua database. Tugas gagal dalam pemeriksaan awal jika ditemukan duplikat. Gunakan fitur pemetaan nama objek untuk menyelesaikan konflik nama. Lihat Pemetaan nama objek. Ignore Errors and Proceed: Melewati pemeriksaan nama duplikat. Jika tabel sumber dan tujuan memiliki skema yang sama, DTS melewati catatan dengan kunci primer yang cocok. Jika skema berbeda, hanya kolom tertentu yang dimigrasikan atau tugas gagal. |
| Source Objects | Pilih objek yang akan dimigrasikan dari bagian Source Objects, lalu klik ikon panah untuk menambahkannya ke Selected Objects. Anda dapat memilih kolom, tabel, atau database. Memilih tabel atau kolom mengecualikan view, trigger, dan prosedur tersimpan dari migrasi. |
| Selected Objects | Untuk mengganti nama satu objek, klik kanan objek tersebut di Selected Objects. Lihat Pemetaan nama satu objek. Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit. Lihat Pemetaan nama beberapa objek sekaligus. Untuk memfilter data dengan kondisi WHERE, klik kanan objek dan tentukan kondisinya. Lihat Tetapkan kondisi filter. Untuk menentukan operasi DML atau DDL yang akan dimigrasikan untuk suatu objek, klik kanan objek tersebut dan pilih operasinya. |
Mengganti nama objek dengan fitur pemetaan nama objek dapat menyebabkan objek lain yang bergantung padanya gagal dimigrasikan.
Langkah 6: Konfigurasi pengaturan lanjutan
Klik Next: Advanced Settings.
| Parameter | Deskripsi |
|---|---|
| Select the dedicated cluster used to schedule the task | Secara default, DTS menggunakan kluster bersama. Untuk menggunakan kluster khusus, beli dan tentukan kluster tersebut. Lihat What is a DTS dedicated cluster. |
| Set Alerts | No: Tidak ada Peringatan. Yes: Peringatan dikirim ketika task gagal atau latensi migrasi melebihi ambang batas. Tentukan ambang batas peringatan dan kontak. Lihat Configure monitoring and alerting. |
| Retry Time for Failed Connections | Jendela percobaan ulang untuk kegagalan koneksi. Nilai yang valid: 10–1.440 menit. Default: 720 menit. Atur lebih dari 30 menit. Jika DTS terhubung kembali dalam jendela percobaan ulang, task dilanjutkan. Jika tidak, task gagal. Beberapa task yang berbagi database sumber atau tujuan yang sama menggunakan waktu percobaan ulang yang paling baru dikonfigurasi. |
| The wait time before a retry when other issues occur in the source and destination databases | Jendela percobaan ulang untuk masalah non-koneksi, seperti operasi DML atau DDL yang gagal. Nilai yang valid: 1–1.440 menit. Default: 10 menit. Atur lebih dari 10 menit. Nilai ini harus lebih kecil daripada nilai Retry Time for Failed Connections. |
| Enable Throttling for Full Data Migration | Membatasi QPS ke database sumber, RPS migrasi data penuh, dan kecepatan migrasi (MB/detik) untuk mengurangi beban pada tujuan. Opsi ini hanya ditampilkan jika Full Data Migration dipilih. |
| Enable Throttling for Incremental Data Migration | Membatasi RPS dan kecepatan migrasi (MB/detik) untuk migrasi inkremental. Opsi ini hanya ditampilkan jika Incremental Data Migration dipilih. |
| Environment Tag | Tag opsional untuk mengidentifikasi instans DTS. |
| Configure ETL | Yes: Membuka editor kode untuk memasukkan pernyataan pemrosesan data. Lihat Configure ETL in a data migration or synchronization task dan What is ETL?. No: Melewati konfigurasi ETL. |
Langkah 7: Jalankan pemeriksaan awal
Klik Next: Save Task Settings and Precheck.
Untuk mempratinjau parameter API konfigurasi tugas ini, arahkan kursor ke Next: Save Task Settings and Precheck, lalu klik Preview OpenAPI parameters.
DTS menjalankan pemeriksaan awal sebelum tugas migrasi dapat dimulai. Jika ada item yang gagal:
Klik View Details di samping item yang gagal, perbaiki masalah berdasarkan pesan error, lalu klik Precheck Again.
Untuk item peringatan: jika item tersebut dapat diabaikan, klik Confirm Alert Details > Ignore > OK, lalu klik Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
Langkah 8: Beli instans migrasi
Tunggu hingga tingkat keberhasilan pemeriksaan awal mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman Purchase Instance, konfigurasikan hal 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 | Pilih kelas instans berdasarkan kecepatan migrasi yang dibutuhkan. Lihat Spesifikasi instans migrasi data. |
Baca dan terima Syarat Layanan Data Transmission Service (Pay-as-you-go) dengan mencentang kotak, lalu klik Buy and Start.
Tugas migrasi dimulai dan muncul di daftar tugas. Pantau progres tugas dari daftar tugas.
Langkah selanjutnya
Setelah tugas migrasi selesai, verifikasi bahwa data telah ditulis dengan benar dengan menjalankan analyze table <table_name> pada instans tujuan. Anda kemudian dapat mengalihkan beban kerja ke instans ApsaraDB RDS for MySQL tujuan.