Gunakan Data Transmission Service (DTS) untuk mengalirkan event perubahan MySQL ke proyek DataHub dengan downtime mendekati nol. Pendekatan ini direkomendasikan untuk membangun pipeline analitik real-time atau alur kerja Change Data Capture (CDC) berbasis sumber ApsaraDB RDS for MySQL.
Prasyarat
Sebelum memulai, pastikan Anda memiliki:
Instans ApsaraDB RDS for MySQL. Lihat Buat instans ApsaraDB RDS for MySQL dan Ikhtisar skenario migrasi data untuk versi yang didukung.
Proyek DataHub untuk menerima data yang dimigrasikan. Lihat Memulai DataHub dan Kelola proyek.
Jenis migrasi
DTS mendukung jenis migrasi berikut untuk skenario ini. Pilih kombinasi yang sesuai dengan tujuan Anda.
| Type | Apa yang dilakukan | Kapan digunakan |
|---|---|---|
| Schema migration | Menyalin skema tabel dari sumber ke tujuan | Wajib sebagai langkah pertama saat menggunakan migrasi inkremental |
| Incremental data migration (direkomendasikan) | Secara terus-menerus mereplikasi perubahan (INSERT, UPDATE, DELETE) setelah migrasi skema | Pipeline CDC, pergantian sistem dengan downtime mendekati nol, replikasi berkelanjutan |
Migrasi data penuh tidak tersedia untuk tujuan DataHub. Pilih migrasi skema, migrasi data inkremental, atau keduanya.
Mengapa menggunakan migrasi data inkremental? Migrasi ini mereplikasi perubahan secara real time tanpa mengganggu aplikasi sumber, sehingga menjadi pilihan tepat untuk workload apa pun yang tidak dapat mentoleransi downtime.
Operasi SQL yang didukung untuk migrasi inkremental
| Jenis operasi | Pernyataan SQL |
|---|---|
| DML | INSERT, UPDATE, DELETE |
| DDL | ADD COLUMN |
Izin yang diperlukan
| Database | Izin yang diperlukan |
|---|---|
| Instans sumber ApsaraDB RDS for MySQL | Akses baca pada objek yang akan dimigrasikan |
Penagihan
| Jenis migrasi | Biaya konfigurasi tugas | Biaya lalu lintas Internet |
|---|---|---|
| Migrasi skema | Gratis | Dikenakan hanya jika data meninggalkan Alibaba Cloud melalui Internet. Lihat Ikhtisar penagihan. |
Batasan
DTS tidak memigrasikan foreign keys. Operasi cascade dan delete yang didefinisikan di database sumber tidak direplikasi ke tujuan.
Persyaratan database sumber
Server sumber harus memiliki bandwidth outbound yang mencukupi. Bandwidth rendah mengurangi kecepatan migrasi.
Tabel harus memiliki batasan
PRIMARY KEYatauUNIQUE, dan semua field harus unik. Tanpa ini, tujuan mungkin berisi catatan duplikat.Jika Anda memilih tabel sebagai objek migrasi dan perlu mengganti nama tabel atau kolom di tujuan, satu tugas mendukung hingga 1.000 tabel. Untuk lebih dari 1.000 tabel, bagi ke beberapa tugas atau migrasikan seluruh database.
Untuk migrasi data inkremental, aktifkan binary logging di konsol ApsaraDB RDS dan atur parameter berikut. Jika salah satu nilai salah, pemeriksaan awal gagal dan tugas tidak dapat dimulai.
| Parameter | Nilai yang diperlukan | Referensi |
|---|---|---|
binlog_format | row | Ubah parameter instans ApsaraDB RDS for MySQL |
binlog_row_image | full | Sama seperti di atas |
Untuk MySQL yang dikelola sendiri yang dideploy dalam kluster dual-primary, atur log_slave_updates ke ON agar DTS dapat menangkap semua log biner. Lihat Buat akun untuk database MySQL yang dikelola sendiri dan konfigurasi binary logging.
Persyaratan retensi log biner — jika DTS tidak dapat membaca log biner yang diperlukan, tugas gagal dan data mungkin hilang atau tidak konsisten:
| Lingkup migrasi | Periode retensi minimum |
|---|---|
| Hanya migrasi data inkremental | Lebih dari 24 jam |
| Migrasi skema + migrasi data inkremental | Minimal 7 hari (dapat dikurangi menjadi 24 jam setelah migrasi skema selesai) |
Lihat Lihat dan hapus file log biner instans ApsaraDB RDS for MySQL.
Selama migrasi skema: Jangan menjalankan operasi DDL yang mengubah skema database atau tabel. Melakukannya menyebabkan tugas gagal.
Batasan lainnya
Hanya tabel yang dapat dipilih sebagai objek migrasi.
Jangan gunakan alat seperti
pt-online-schema-changeuntuk operasi DDL selama migrasi — hal ini dapat menyebabkan tugas gagal.Jika hanya DTS yang menulis ke tujuan, Data Management (DMS) dapat melakukan DDL online pada tabel sumber. Lihat Lakukan operasi DDL tanpa lock.
PeringatanJika alat lain juga menulis ke tujuan, jangan gunakan DMS untuk DDL online. Kehilangan data di tujuan mungkin terjadi.
DTS menggunakan
ROUND(COLUMN, PRECISION)untuk membaca kolomFLOATdanDOUBLE. Presisi default: 38 digit untukFLOAT, 308 digit untukDOUBLE. Verifikasi bahwa nilai default ini memenuhi kebutuhan Anda sebelum memulai.DTS mencoba ulang tugas yang gagal hingga 7 hari. Sebelum mengalihkan workload Anda ke tujuan, hentikan atau lepas tugas tersebut — atau jalankan
REVOKEuntuk mencabut izin tulis DTS. Jika tidak, data sumber mungkin menimpa data tujuan setelah percobaan ulang.
Kasus khusus untuk sumber MySQL yang dikelola sendiri
Failover primary/secondary selama migrasi menyebabkan tugas gagal.
Jika tidak ada operasi DML yang terjadi di sumber dalam periode panjang, pembacaan latensi migrasi mungkin tidak akurat. Jalankan operasi DML di sumber untuk memperbarui nilai latensi. Jika Anda memilih seluruh database sebagai objek migrasi, buat tabel heartbeat yang menerima data setiap detik.
DTS secara berkala menjalankan
CREATE DATABASE IF NOT EXISTS `test`di sumber untuk memajukan posisi log biner.
Buat tugas migrasi data
Langkah 1: Buka halaman Tugas Migrasi Data
Login ke Konsol Data Management (DMS).
Di bilah navigasi atas, klik DTS.
Di panel navigasi kiri, pilih DTS (DTS) > Data Migration.
Tata letak konsol mungkin berbeda. Lihat Mode simple dan Konfigurasi konsol DMS sesuai kebutuhan bisnis Anda. Atau, langsung buka halaman Tugas Migrasi Data di konsol DTS baru.
Langkah 2: Pilih wilayah
Dari daftar drop-down di samping Data Migration Tasks, pilih wilayah tempat instans migrasi data Anda berada.
Di konsol DTS baru, pilih wilayah di pojok kiri atas.
Langkah 3: Konfigurasi database sumber dan tujuan
Klik Create Task. Baca batasan yang ditampilkan di bagian atas halaman konfigurasi sebelum melanjutkan.
Mengabaikan batasan yang ditampilkan dapat menyebabkan kegagalan tugas atau ketidakkonsistenan data.
Parameter database sumber:
| Parameter | Deskripsi |
|---|---|
| Task Name | DTS memberikan nama secara otomatis. Tentukan nama deskriptif agar mudah mengidentifikasi tugas. Nama tidak perlu unik. |
| Select an existing DMS database instance | Opsional. Jika Anda memilih instans yang sudah ada, DTS menerapkan pengaturannya secara otomatis. |
| Database Type | Pilih MySQL. |
| Connection Type | Pilih Alibaba Cloud Instance. |
| Instance Region | Wilayah tempat instans sumber ApsaraDB RDS for MySQL berada. |
| Cross-account | Pilih No untuk migrasi dalam akun yang sama. |
| RDS Instance ID | ID instans sumber ApsaraDB RDS for MySQL. |
| Database Account | Akun dengan izin baca pada objek yang akan dimigrasikan. |
| Database Password | Kata sandi untuk akun database. |
| Encryption | Pilih Non-encrypted atau SSL-encrypted. Untuk enkripsi SSL, aktifkan terlebih dahulu di instans RDS. Lihat Konfigurasi enkripsi SSL untuk instans ApsaraDB RDS for MySQL. |
Parameter database tujuan:
| Parameter | Deskripsi |
|---|---|
| Select an existing DMS database instance | Opsional. Jika Anda memilih instans yang sudah ada, DTS menerapkan pengaturannya secara otomatis. |
| Database Type | Pilih DataHub. |
| Connection Type | Pilih Alibaba Cloud Instance. |
| Instance Region | Wilayah tempat proyek DataHub berada. |
| Project | Proyek DataHub tujuan. |
Langkah 4: Uji konektivitas
Klik Test Connectivity and Proceed.
DTS secara otomatis menambahkan blok CIDR-nya ke daftar putih alamat IP instans database Alibaba Cloud atau aturan grup keamanan instans Elastic Compute Service (ECS). Untuk database yang dikelola sendiri yang di-host di pusat data atau cloud pihak ketiga, tambahkan secara manual blok CIDR DTS ke daftar putih alamat IP database. Lihat Tambahkan blok CIDR server DTS ke pengaturan keamanan database on-premises.
Menambahkan blok CIDR DTS ke daftar putih atau grup keamanan menimbulkan risiko keamanan. Sebelum melanjutkan, ambil langkah-langkah berikut: perkuat keamanan akun dan kata sandi, batasi port yang terbuka, autentikasi panggilan API, audit rutin daftar putih alamat IP dan aturan grup keamanan ECS, serta pertimbangkan menghubungkan database ke DTS melalui Express Connect, VPN Gateway, atau Smart Access Gateway (SAG).
Langkah 5: Pilih objek migrasi
Konfigurasikan pengaturan berikut:
| Parameter | Deskripsi |
|---|---|
| Synchronization Type | Pilih Schema Migration dan/atau Incremental Data Migration. Full Data Migration tidak tersedia untuk DataHub. Jika Anda tidak memilih migrasi data inkremental, hindari menulis ke sumber selama migrasi agar konsistensi data tetap terjaga. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors: memeriksa adanya tabel dengan nama identik di sumber dan tujuan. Tugas tidak dapat dimulai jika terdapat konflik. Gunakan pemetaan nama objek untuk menyelesaikan konflik tanpa menghapus tabel tujuan. Ignore Errors and Proceed: melewati pemeriksaan konflik. Selama migrasi inkremental, catatan yang bertabrakan akan menimpa catatan tujuan yang sudah ada. Jika skema berbeda, tugas mungkin gagal atau hanya memigrasikan sebagian kolom. |
| Apply New Naming Rules of Additional Columns | DTS menambahkan kolom sistem ke topik DataHub tujuan. Jika nama kolom ini bertabrakan dengan kolom topik yang sudah ada, tugas gagal. Pilih Yes atau No berdasarkan struktur topik Anda. Periksa potensi konflik sebelum mengatur parameter ini. Lihat Ubah aturan penamaan untuk kolom tambahan. |
| Source Objects | Pilih objek dan klik |
| Selected Objects | Klik kanan objek untuk mengganti namanya, menentukan kondisi filter WHERE, atau memilih operasi DML/DDL yang akan dimigrasikan. Klik Batch Edit untuk mengganti nama beberapa objek sekaligus. Mengganti nama objek mungkin merusak objek dependen. |
Jika Anda memilih Ignore Errors and Proceed, konsistensi data tidak dijamin dan data Anda mungkin berisiko.
Langkah 6: Konfigurasi pengaturan lanjutan
Klik Next: Advanced Settings dan konfigurasikan:
| Parameter | Deskripsi |
|---|---|
| Set Alerts | Pilih Yes untuk menerima notifikasi ketika tugas gagal atau latensi migrasi melebihi ambang batas. Atur ambang batas dan kontak peringatan. Lihat Konfigurasi pemantauan dan peringatan. |
| Capitalization of Object Names in Destination Instance | Mengontrol kapitalisasi nama database, tabel, dan kolom di tujuan. Default: Kebijakan default DTS. Lihat Tentukan kapitalisasi nama objek di instans tujuan. |
| Specify the retry time range for failed connections | Durasi DTS mencoba ulang koneksi yang gagal setelah tugas dimulai. Nilai valid: 10–1.440 menit. Default: 720 menit. Atur lebih dari 30 menit. Jika DTS terhubung kembali dalam periode ini, tugas dilanjutkan. Jika tidak, tugas gagal. Jika beberapa tugas berbagi sumber atau tujuan yang sama, rentang waktu coba ulang terpendek berlaku untuk semuanya. Biaya DTS tetap berjalan selama percobaan ulang. |
Langkah 7: Jalankan pemeriksaan awal
Klik Next: Save Task Settings and Precheck. Untuk melihat pratinjau parameter OpenAPI sebelum melanjutkan, arahkan kursor ke tombol tersebut lalu klik Preview OpenAPI parameters.
DTS menjalankan pemeriksaan awal sebelum memulai tugas. Tugas hanya dapat dimulai setelah lulus semua pemeriksaan.
Jika pemeriksaan gagal, klik View Details di sebelah item yang gagal, perbaiki masalahnya, lalu klik Precheck Again.
Jika pemeriksaan menghasilkan peringatan yang dapat diabaikan, klik Confirm Alert Details > Ignore > OK, lalu klik Precheck Again.
Mengabaikan item peringatan dapat menyebabkan ketidakkonsistenan data.
Langkah 8: Beli instans
Tunggu hingga tingkat keberhasilan mencapai 100%, lalu klik Next: Purchase Instance. Di halaman Purchase Instance, konfigurasikan:
| Parameter | Deskripsi |
|---|---|
| Resource Group | Kelompok sumber daya untuk instans migrasi. Default: default resource group. Lihat Apa itu Resource Management?. |
| Instance Class | Mengontrol kecepatan migrasi. Pilih berdasarkan volume data dan persyaratan latensi Anda. Lihat Spesifikasi instans migrasi data. |
Langkah 9: Mulai tugas
Baca dan terima Data Transmission Service (Pay-as-you-go) Service Terms, lalu klik Buy and Start.
Tugas akan muncul di daftar tugas. Pantau perkembangan migrasi di sana.
Langkah selanjutnya
Setelah migrasi selesai dan Anda telah memverifikasi konsistensi data, alihkan beban kerja aplikasi Anda ke proyek DataHub tujuan. Hentikan atau lepas tugas migrasi data sebelum beralih untuk mencegah DTS menimpa data tujuan jika tugas mencoba ulang.