Layanan Transmisi Data (Data Transmission Service/DTS) mendukung migrasi data dari instans RDS for MySQL ke mesin tabel lebar (wide table engine) instans Lindorm. DTS menggunakan replikasi berbasis log biner, memungkinkan migrasi dengan downtime minimal—berbeda dengan mysqldump yang memerlukan downtime panjang dan tidak praktis untuk dataset besar. Anda dapat memilih hanya migrasi data penuh atau menggabungkan migrasi data penuh dengan migrasi inkremental berkelanjutan agar destinasi tetap sinkron selama aplikasi aktif.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Memiliki instans Lindorm tujuan yang menggunakan mesin tabel lebar, dengan kapasitas penyimpanan lebih besar daripada kapasitas penyimpanan instans RDS for MySQL sumber. Lihat Buat instans.
Mengaktifkan endpoint koneksi yang kompatibel dengan MySQL pada instans Lindorm tujuan. Lihat Aktifkan fitur kompatibilitas MySQL.
Membuat database (namespace) di instans Lindorm tujuan untuk menerima data yang dimigrasikan. Jika Anda tidak memilih Schema Migration, Anda juga harus membuat tabel lebar (pre-partitioning berdasarkan data penuh direkomendasikan untuk performa lebih baik). Pre-partitioning menentukan cara distribusi data di klaster Lindorm. Pilih kolom dengan kardinalitas tinggi sebagai kunci partisi agar data terdistribusi merata dan menghindari hot spot yang dapat memperlambat operasi baca/tulis setelah migrasi. Pemilihan kunci partisi yang buruk juga dapat menyebabkan masalah pada fase CDC jika pembaruan memengaruhi kolom kunci partisi. Untuk petunjuk pembuatan database dan tabel, lihat Hubungkan dan gunakan mesin tabel lebar menggunakan command line MySQL, Hubungkan dan gunakan mesin tabel lebar menggunakan Lindorm-cli, Akses mesin tabel lebar menggunakan Lindorm Shell, dan CREATE TABLE. Untuk kompatibilitas tipe data, lihat Pemetaan tipe data.
Objek yang Anda buat harus mematuhi batasan penamaan dan batas objek untuk instans Lindorm.
Penagihan
Jenis migrasi | Biaya konfigurasi tugas | Biaya transfer data |
Migrasi data penuh | Gratis | Gratis, kecuali jika Access Method diatur ke Public IP Address, dalam hal ini biaya lalu lintas Internet standar berlaku. Untuk detailnya, lihat Item yang dikenai biaya. |
Migrasi data inkremental | Dikenai biaya. Untuk detailnya, lihat Ikhtisar penagihan. | — |
Operasi SQL yang didukung untuk migrasi inkremental
Jenis operasi | Operasi SQL |
DML | INSERT, UPDATE, DELETE |
DDL | CREATE TABLE, DROP TABLE, ADD COLUMN |
Karena keterbatasan LindormTable, DTS tidak memigrasikan atribut kolom tambahan dalam pernyataan ADD COLUMN. Misalnya, jika sumber menjalankanALTER TABLE test ADD COLUMN col INT DEFAULT 0;, DTS menjalankanALTER TABLE test ADD COLUMN col INT;di destinasi.
Izin akun database
Database | Migrasi penuh | Migrasi inkremental |
RDS for MySQL sumber | SELECT | Baca dan tulis |
Lindorm tujuan | Baca dan tulis pada namespace tujuan | |
Jika akun database sumber tidak dibuat dan diberi izin melalui konsol RDS for MySQL, pastikan akun tersebut memiliki izin REPLICATION CLIENT, REPLICATION SLAVE, SHOW VIEW, dan SELECT. Untuk membuat akun dan memberikan izin melalui konsol, lihat Buat akun dan Ubah izin akun.
Untuk manajemen akun Lindorm, lihat Manajemen pengguna.
Batasan
Batasan database sumber
Server yang menghosting database sumber harus memiliki bandwidth outbound yang mencukupi. Jika tidak, kecepatan migrasi data akan terpengaruh.
Tabel yang akan dimigrasikan harus memiliki kunci primer dan field unik. Tanpa itu, data duplikat dapat muncul di destinasi.
Jika Anda melakukan migrasi pada level tabel dan mengedit objek (seperti pemetaan nama tabel atau kolom), satu tugas mendukung maksimal 1.000 tabel. Jika melebihi batas ini, bagi tabel menjadi beberapa tugas atau konfigurasikan tugas untuk memigrasikan seluruh database.
Jika sumber adalah MySQL 8.0.23 atau versi lebih baru dan datanya mencakup kolom invisible, DTS tidak dapat membaca kolom tersebut dan terjadi kehilangan data. Untuk membuat kolom invisible menjadi visible sebelum migrasi, jalankan:
ALTER TABLE <table_name> ALTER COLUMN <column_name> SET VISIBLE;Untuk informasi lebih lanjut, lihat Invisible Columns. Tabel tanpa kunci primer eksplisit secara otomatis menghasilkan kunci primer invisible—buat juga kunci tersebut menjadi visible. Lihat Generated Invisible Primary Keys.
Incremental migration only:
Pencatatan log biner harus diaktifkan dengan pengaturan berikut. Tanpa pengaturan ini, pemeriksaan awal gagal dan tugas tidak dapat dimulai. Persyaratan retensi log biner: Jika log biner dihapus sebelum DTS sempat membacanya, tugas dapat gagal atau terjadi ketidakkonsistenan data, dan Perjanjian Tingkat Layanan (SLA) DTS mungkin tidak berlaku.
ApsaraDB RDS for MySQL: minimal 3 hari (disarankan 7 hari). Lihat Konfigurasikan parameter yang digunakan sistem untuk menghapus file log biner instans RDS secara otomatis.
MySQL yang dikelola sendiri: minimal 7 hari.
Parameter
Nilai yang diperlukan
Dampak jika tidak diatur
binlog_formatROWMengatur ke
STATEMENTatauMIXEDdapat menyebabkan ketidakkonsistenan data di destinasi.binlog_row_imagefullGambar baris parsial dapat menyebabkan replikasi data tidak lengkap.
log_slave_updatesONHanya diperlukan untuk MySQL yang dikelola sendiri dalam klaster dual-primary. Tanpa ini, DTS tidak dapat memperoleh semua log biner.
Hanya untuk migrasi penuh:
Jangan lakukan operasi DDL pada sumber selama migrasi penuh. Operasi DDL dapat menyebabkan tugas gagal.
Selama migrasi penuh, DTS melakukan query ke database sumber dan membuat kunci metadata, yang dapat memblokir operasi DDL pada sumber.
Jangan menulis data baru ke sumber jika Anda hanya memilih Full Data Migration. Untuk menjaga sinkronisasi antara sumber dan destinasi selama migrasi, pilih kedua opsi Full Data Migration dan Incremental Data Migration.
Migrasi data penuh tidak dapat dilakukan jika instans RDS for MySQL sumber memiliki fitur EncDB yang diaktifkan.
Instans RDS for MySQL dengan Enkripsi Data Transparan (TDE) yang diaktifkan mendukung migrasi skema, migrasi data penuh, dan migrasi data inkremental.
Batasan lainnya
Migrasi skema ke Lindorm bergantung pada kemampuan Lindorm sendiri untuk pembuatan skema.
Lindorm memiliki batas jumlah kolom default untuk indeks pada kolom non-kunci primer. DTS tidak dapat membuat indeks tersebut selama migrasi skema jika jumlah kolom melebihi batas ini. Untuk menggunakan indeks tersebut, buat secara manual. Untuk detailnya, lihat ALTER SYSTEM.
Migrasi objek INDEX, PARTITION, VIEW, PROCEDURE, FUNCTION, TRIGGER, dan kunci asing tidak didukung.
Migrasi tipe data BIT tidak didukung.
Anda tidak dapat hanya memigrasikan field kunci primer. Data harus mengandung setidaknya satu field non-kunci primer.
Data hanya dapat ditulis ke mesin tabel lebar instans Lindorm.
String kosong bertipe VARBINARY diperlakukan sebagai null oleh DTS maupun Lindorm.
Jika presisi field DECIMAL di destinasi berbeda dari sumber, tugas akan gagal.
Data yang ditulis ke Lindorm harus mematuhi batasan permintaan data. Permintaan yang melebihi batas ini menyebabkan tugas gagal.
Migrasi penuh menjalankan operasi INSERT secara konkuren, yang menyebabkan fragmentasi ruang tabel di destinasi. Ruang tabel destinasi akan lebih besar daripada sumber setelah inisialisasi penuh selesai.
Jangan jalankan alat DDL online seperti pt-online-schema-change pada objek migrasi di sumber selama migrasi. Hal ini menyebabkan migrasi gagal.
Jika data ditulis ke destinasi oleh sumber selain DTS selama migrasi, ketidakkonsistenan data dapat terjadi.
Data yang dihasilkan oleh operasi perubahan log biner—seperti data yang dipulihkan dari backup fisik atau operasi kaskade—tidak dimigrasikan ke destinasi.
Jika data tersebut tidak dimigrasikan, Anda dapat menjalankan migrasi penuh lagi selama bisnis Anda tidak terganggu.
Jika instans DTS gagal, tim helpdesk DTS berusaha memulihkannya dalam waktu 8 jam. Operasi pemulihan dapat mencakup restart instans dan penyesuaian parameter instans DTS (bukan parameter database). Untuk parameter yang mungkin disesuaikan, lihat Ubah parameter instans.
Kasus khusus
Sumber MySQL yang dikelola sendiri:
Jika terjadi alih bencana (switchover) primary/secondary pada sumber saat tugas migrasi sedang berjalan, tugas akan gagal.
DTS secara berkala menjalankan
CREATE DATABASE IF NOT EXISTS `test`pada sumber untuk memajukan posisi file log biner.Jika tidak ada operasi DML yang dilakukan pada sumber dalam periode panjang, pembacaan latensi migrasi mungkin tidak akurat. Jalankan operasi DML pada sumber untuk memperbarui latensi. Jika Anda memilih seluruh database sebagai objek migrasi, buat tabel heartbeat yang menerima pembaruan setiap detik.
Sumber ApsaraDB RDS for MySQL:
Incremental migration only: Instans RDS for MySQL V5.6 read-only tidak dapat digunakan sebagai sumber karena tidak mencatat log transaksi.
DTS secara berkala menjalankan
CREATE DATABASE IF NOT EXISTS `test`pada sumber untuk memajukan posisi file log biner.
Buat tugas migrasi
Langkah 1: Buka halaman Data Migration
Gunakan salah satu metode berikut:
Konsol DTS
Masuk ke Konsol DTS.Konsol DTS
Di panel navigasi kiri, klik Data Migration.
Di pojok kiri atas, pilih wilayah tempat instans migrasi berada.
Konsol DMS
Catatan
Navigasi yang tepat dapat berbeda tergantung pada mode dan tata letak konsol DMS. Untuk informasi lebih lanjut, lihat Mode sederhana dan Sesuaikan tata letak dan gaya konsol DMS.
Masuk ke Konsol DMS.Konsol DMS
Di bilah navigasi atas, buka Data + AI > DTS (DTS) > Data Migration.
Di sebelah kanan Data Migration Tasks, pilih wilayah dari daftar drop-down.
Langkah 2: Konfigurasikan database sumber dan destinasi
Klik Create Task.
Konfigurasikan database sumber dan destinasi menggunakan parameter berikut:
Database sumber:
Parameter
Deskripsi
Task Name
Nama tugas DTS. DTS menghasilkan nama secara otomatis. Tentukan nama deskriptif agar tugas mudah diidentifikasi. Nama tidak perlu unik.
Select Existing Connection
Jika instans sumber sudah terdaftar di DTS, pilih dari daftar drop-down — DTS akan mengisi parameter database secara otomatis. Jika belum, konfigurasikan parameter di bawah secara manual.
Database Type
Pilih MySQL.
Access Method
Pilih Alibaba Cloud Instance.
Instance Region
Pilih wilayah tempat instans RDS for MySQL sumber berada.
Replicate Data Across Alibaba Cloud Accounts
Pilih No jika sumber berada dalam Akun Alibaba Cloud yang sama.
RDS Instance ID
Pilih ID instans RDS for MySQL sumber.
Database Account
Masukkan akun database untuk instans sumber. Untuk izin yang diperlukan, lihat Izin akun database.
Database Password
Masukkan password untuk akun database.
Encryption
Pilih Non-encrypted atau SSL-encrypted. Untuk menggunakan enkripsi SSL, aktifkan terlebih dahulu pada instans RDS for MySQL. Lihat Gunakan sertifikat cloud untuk mengaktifkan enkripsi SSL.
Database destinasi:
Parameter
Deskripsi
Select Existing Connection
Jika instans destinasi sudah terdaftar di DTS, pilih dari daftar drop-down. Jika belum, konfigurasikan parameter di bawah secara manual.
Database Type
Pilih Lindorm.
Access Method
Pilih Alibaba Cloud Instance.
Instance Region
Pilih wilayah tempat instans Lindorm destinasi berada.
Instance ID
Pilih ID instans Lindorm destinasi.
Database Account
Masukkan akun database untuk instans destinasi.
Database Password
Masukkan password untuk akun database.
Klik Test Connectivity and Proceed.
Pastikan Blok CIDR server DTS telah ditambahkan ke pengaturan keamanan database sumber dan destinasi. Lihat Tambahkan alamat IP server DTS ke daftar putih. Jika sumber atau destinasi adalah database yang dikelola sendiri dan tidak diakses melalui Alibaba Cloud Instance, klik Test Connectivity di kotak dialog CIDR Blocks of DTS Servers.
Langkah 3: Konfigurasikan objek yang akan dimigrasikan
Di halaman Configure Objects, atur parameter berikut:
Jika Anda tidak memilih Incremental Data Migration, jangan menulis data baru ke sumber selama migrasi untuk memastikan konsistensi data.
Parameter
Deskripsi
Migration Types
Pilih Full Data Migration untuk migrasi satu kali. Pilih kedua opsi Full Data Migration dan Incremental Data Migration untuk menjaga destinasi tetap sinkron dengan sumber selama migrasi.
Processing Mode of Conflicting Tables
Pertahankan nilai default.
Capitalization of Object Names in Destination Instance
Mengontrol kapitalisasi nama database, tabel, dan kolom di destinasi. Nilai default adalah DTS default policy. Untuk informasi lebih lanjut, lihat Tentukan kapitalisasi nama objek di instans destinasi.
Source Objects
Pilih database atau tabel yang akan dimigrasikan, lalu klik
untuk memindahkannya ke Selected Objects.Selected Objects
Jika nama database, tabel, atau kolom di instans Lindorm destinasi berbeda dari sumber, gunakan pemetaan nama objek. Untuk detailnya, lihat Map object names. Untuk menerapkan filter tingkat baris, klik kanan tabel dan tentukan kondisi WHERE. Lihat Tentukan kondisi filter. Untuk memilih operasi SQL mana yang disertakan dalam migrasi inkremental, klik kanan objek dan pilih operasinya.
Klik Next: Advanced Settings dan konfigurasikan hal 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
Berapa lama DTS mencoba ulang jika sumber atau destinasi tidak tersedia. Nilai valid: 10–1.440 menit. Default: 720 menit. Atur lebih dari 30 menit. Jika DTS terhubung kembali dalam jendela ini, tugas dilanjutkan; jika tidak, tugas gagal. Catatan: jika beberapa tugas berbagi sumber atau destinasi yang sama, nilai yang paling baru diatur berlaku. Anda dikenai biaya untuk instans DTS selama percobaan ulang.
Retry Time for Other Issues
Berapa lama DTS mencoba ulang operasi DDL atau DML yang gagal. Nilai valid: 1–1.440 menit. Default: 10 menit. Atur lebih dari 10 menit. Nilai ini harus lebih kecil dari Retry Time for Failed Connections.
Enable Throttling for Full Data Migration
Membatasi laju migrasi penuh untuk mengurangi beban pada sumber dan destinasi. 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 dipilih.
Enable Throttling for Incremental Data Migration
Membatasi laju 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
Pilih tag untuk mengidentifikasi instans. Tidak diperlukan tag untuk contoh ini.
Whether to delete SQL operations on heartbeat tables of forward and reverse tasks
Mengontrol apakah DTS menulis operasi SQL tabel heartbeat ke sumber saat instans berjalan. Pilih Yespengaturan notifikasi peringatan untuk melewati penulisan (nilai latensi mungkin muncul di instans DTS). Pilih No untuk menulis operasi heartbeat (hal ini dapat memengaruhi backup fisik dan kloning sumber).
Configure ETL
Pilih Yes untuk mengonfigurasi aturan ekstrak, transformasi, dan muat (ETL) di editor kode. Lihat Konfigurasikan ETL dalam tugas migrasi data atau sinkronisasi data. Pilih No untuk melewati konfigurasi ETL.
Monitoring and Alerting
Pilih Yes untuk menerima peringatan saat tugas gagal atau latensi migrasi melebihi ambang batas. Konfigurasikan ambang batas peringatan dan pengaturan notifikasi. Lihat Konfigurasikan pemantauan dan peringatan saat membuat tugas DTS.
Langkah 4: Jalankan pemeriksaan awal
Klik Next: Save Task Settings and Precheck.
Untuk melihat parameter OpenAPI untuk konfigurasi tugas ini, arahkan kursor ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters sebelum melanjutkan.
DTS menjalankan pemeriksaan awal sebelum memulai migrasi. Jika pemeriksaan awal gagal:
Klik View Details di samping setiap item yang gagal, selesaikan masalahnya, lalu klik Precheck Again.
Jika peringatan pemeriksaan awal dapat diabaikan, klik Confirm Alert Details, lalu Ignore di kotak dialog, lalu OK, lalu Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
Langkah 5: Beli dan mulai instans
Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman Purchase Instance, konfigurasikan hal berikut:
Parameter
Deskripsi
Resource Group
Kelompok sumber daya untuk instans migrasi. Default: default resource group. Lihat Apa itu Resource Management?
Instance Class
DTS menyediakan kelas instans yang berbeda dalam kecepatan migrasi. Anda dapat memilih kelas instans berdasarkan skenario bisnis Anda. Lihat Kelas instans untuk instans migrasi data.
Baca dan terima Data Transmission Service (Pay-as-you-go) Service Terms, lalu klik Buy and Start. Klik OK di pesan konfirmasi.
Anda dapat melihat progres tugas di halaman Data Migration.
Jika tugas migrasi data tidak dapat digunakan untuk memigrasikan data inkremental, tugas akan berhenti secara otomatis. Status Completed ditampilkan.
Jika tugas migrasi data dapat digunakan untuk memigrasikan data inkremental, tugas tidak berhenti secara otomatis. Tugas migrasi data inkremental berjalan terus-menerus. Status Running ditampilkan.