Gunakan Data Transmission Service (DTS) untuk memigrasikan data dari instans ApsaraDB RDS for MySQL ke kluster PolarDB for MySQL dengan downtime minimal. DTS mendukung migrasi skema, migrasi data penuh, dan migrasi data inkremental sehingga aplikasi Anda dapat tetap berjalan selama proses migrasi.
Topik ini menggunakan instans ApsaraDB RDS for MySQL sebagai sumber. Prosedur yang sama dapat diikuti untuk sumber MySQL lain yang didukung.
Database sumber yang didukung
Instans ApsaraDB RDS for MySQL
Database yang dikelola sendiri:
Database dengan Alamat IP publik
Database yang di-hosting di Elastic Compute Service (ECS)
Database yang terhubung melalui Express Connect, VPN Gateway, atau Smart Access Gateway
Database yang terhubung melalui Database Gateway
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Instans ApsaraDB RDS for MySQL. Lihat Buat instans ApsaraDB RDS for MySQL.
Kluster PolarDB for MySQL. Lihat Beli kluster pay-as-you-go atau Beli kluster langganan.
Ruang penyimpanan yang cukup tersedia pada kluster PolarDB for MySQL tujuan untuk menampung seluruh data dari instans sumber.
Izin yang diperlukan
Berikan izin berikut kepada akun database yang digunakan oleh DTS sebelum mengonfigurasi tugas migrasi.
| Database | Migrasi skema | Migrasi data penuh | Migrasi data inkremental |
|---|---|---|---|
| ApsaraDB RDS for MySQL | SELECT | SELECT | REPLICATION SLAVE, REPLICATION CLIENT, SHOW VIEW, SELECT |
| Kluster PolarDB for MySQL | Izin baca dan tulis | — | — |
Untuk informasi lebih lanjut tentang cara membuat akun database dan memberikan izin, lihat topik berikut:
Instans ApsaraDB RDS for MySQL: Buat akun pada instans ApsaraDB RDS for MySQL dan Ubah izin akun standar pada instans ApsaraDB RDS for MySQL
Kluster PolarDB for MySQL: Buat akun database
Jenis migrasi
DTS mendukung tiga jenis migrasi yang dapat dikombinasikan sesuai kebutuhan Anda:
| Jenis migrasi | Apa yang dilakukan | Dikenai biaya? |
|---|---|---|
| Migrasi skema | Menyalin skema (tabel, view, trigger, prosedur tersimpan, fungsi) ke tujuan | Gratis |
| Migrasi data penuh | Menyalin seluruh data yang ada ke tujuan | Gratis |
| Migrasi data inkremental | Secara terus-menerus mereplikasi perubahan dari sumber ke tujuan setelah migrasi penuh selesai | Ya |
Disarankan: Pilih ketiga jenis tersebut. Pendekatan ini menjaga aplikasi Anda tetap berjalan tanpa gangguan selama migrasi.
Catatan mengenai perilaku migrasi skema:
DTS memigrasikan kunci asing dari sumber ke tujuan. Selama migrasi penuh dan inkremental, DTS secara sementara menonaktifkan pemeriksaan kendala kunci asing dan operasi kaskade pada tingkat session. Jika Anda menjalankan operasi kaskade atau penghapusan pada sumber selama periode ini, ketidakkonsistenan data dapat terjadi.
Untuk view, prosedur tersimpan, dan fungsi, DTS mengubah atribut SECURITY dari DEFINER menjadi INVOKER. DTS tidak memigrasikan informasi pengguna. Untuk memanggil view, prosedur tersimpan, atau fungsi di database tujuan, berikan izin baca dan tulis yang diperlukan kepada INVOKER.
Operasi SQL yang didukung untuk migrasi inkremental
| Jenis operasi | Operasi 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 |
Penagihan
| Jenis migrasi | Biaya konfigurasi instans | Biaya lalu lintas Internet |
|---|---|---|
| Migrasi skema + migrasi data penuh | Gratis | Dikenai biaya hanya saat memigrasikan dari Alibaba Cloud melalui Internet. Lihat Ikhtisar penagihan. |
| Migrasi data inkremental | Dikenai biaya. Lihat Ikhtisar penagihan. | — |
Batasan
Persyaratan database sumber
Server yang meng-host database sumber harus memiliki bandwidth outbound yang cukup. Bandwidth yang tidak mencukupi akan mengurangi kecepatan migrasi.
Tabel harus memiliki PRIMARY KEY atau kendala UNIQUE dengan semua field unik. Tabel tanpa kendala tersebut dapat menghasilkan catatan duplikat di tujuan.
Jika Anda memilih tabel sebagai objek migrasi dan perlu mengganti nama tabel atau kolom di database tujuan, satu tugas mendukung hingga 1.000 tabel. Untuk lebih dari 1.000 tabel, bagi ke beberapa tugas atau migrasikan seluruh database.
Jangan lakukan operasi DDL pada database atau tabel selama migrasi skema atau migrasi data penuh. Tugas akan gagal jika skema berubah di tengah migrasi.
Jika Anda hanya menjalankan migrasi data penuh (tanpa inkremental), jangan menulis ke database sumber selama migrasi. Untuk menjamin konsistensi data, gunakan migrasi skema, migrasi data penuh, dan migrasi data inkremental secara bersamaan.
Jika Anda menyertakan migrasi data inkremental, database sumber juga harus memenuhi persyaratan berikut:
Pencatatan biner (binary logging) diaktifkan, dengan
binlog_formatdiatur kerowdanbinlog_row_imagediatur kefull. Jika kondisi ini tidak terpenuhi, Pemeriksaan Awal akan mengembalikan error dan tugas tidak dapat dimulai.Penting: Untuk MySQL yang dikelola sendiri dalam kluster dual-primary, atur
log_slave_updateskeONagar DTS dapat menangkap seluruh log biner.
Periode retensi log biner: Retensi log yang tidak mencukupi menyebabkan DTS gagal memperoleh log biner, yang dapat mengakibatkan kegagalan tugas atau kehilangan data. Memenuhi persyaratan retensi ini diperlukan untuk mencapai jaminan Service Level Agreement (SLA).
Hanya migrasi inkremental: simpan log lebih dari 24 jam.
Migrasi penuh + inkremental: simpan log minimal 7 hari. Setelah migrasi penuh selesai, Anda dapat mengurangi retensi menjadi lebih dari 24 jam.
Persyaratan database tujuan
DTS secara otomatis membuat database tujuan di kluster PolarDB for MySQL. Jika nama database sumber tidak valid, buat database secara manual sebelum mengonfigurasi tugas. Lihat Manajemen Database.
Throttling tidak didukung untuk migrasi data penuh.
Batasan lainnya
Gunakan versi engine yang sama untuk database sumber dan tujuan guna memastikan kompatibilitas.
Migrasi data penuh menggunakan sumber daya baca dan tulis pada kedua database (sumber dan tujuan), yang meningkatkan beban kerja. Jadwalkan migrasi pada jam sepi.
Migrasi data penuh dengan operasi INSERT konkuren menyebabkan fragmentasi tabel di tujuan. Setelah migrasi selesai, ruang tabel tujuan lebih besar daripada sumber.
DTS menggunakan
ROUND(COLUMN, PRECISION)untuk membaca kolom FLOAT dan DOUBLE. Jika Anda tidak menentukan presisi, DTS menggunakan 38 digit untuk FLOAT dan 308 digit untuk DOUBLE. Pastikan pengaturan presisi ini memenuhi kebutuhan Anda.DTS mencoba mengulang tugas yang gagal hingga 7 hari. Sebelum memindahkan beban kerja ke tujuan, hentikan atau lepas tugas migrasi — atau jalankan
REVOKEuntuk mencabut izin tulis dari akun DTS. Jika tidak, jika tugas dilanjutkan secara otomatis, data dari sumber dapat menimpa data di tujuan.
Hanya untuk sumber MySQL yang dikelola sendiri
Jika terjadi failover primary/secondary saat tugas migrasi sedang berjalan, tugas akan gagal.
DTS menghitung latensi migrasi berdasarkan timestamp data terbaru yang dimigrasikan di tujuan dan timestamp saat ini di sumber. Jika tidak ada operasi DML yang dijalankan di sumber dalam periode panjang, latensi yang dilaporkan mungkin tidak akurat. Jalankan operasi DML di sumber untuk memperbarui latensi. Jika Anda memigrasikan seluruh database, buat tabel heartbeat yang menerima pembaruan setiap detik.
DTS secara berkala menjalankan
CREATE DATABASE IF NOT EXISTS `test`di sumber untuk memajukan Posisi file log biner.
Buat tugas migrasi
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 dapat berbeda. Lihat Mode simple dan Konfigurasikan konsol DMS sesuai kebutuhan bisnis Anda. Atau, langsung buka halaman Tugas Migrasi Data.
Langkah 2: Pilih wilayah
Dari daftar drop-down di samping Tugas Migrasi Data, 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 dan konfigurasikan parameter berikut.
Baca batasan yang ditampilkan di bagian atas halaman setelah memilih instans sumber dan tujuan. Hal ini membantu mencegah kegagalan tugas dan ketidakkonsistenan data.
Pengaturan tugas
| Parameter | Deskripsi |
|---|---|
| Nama Tugas | DTS menghasilkan nama secara otomatis. Tentukan nama deskriptif untuk mengidentifikasi tugas. Nama tidak perlu unik. |
Source Database
| Parameter | Deskripsi |
|---|---|
| Pilih instans database DMS yang sudah ada | Pilih instans yang sudah ada untuk menggunakan ulang pengaturannya, atau konfigurasikan parameter secara manual. |
| Jenis Database | Pilih MySQL. |
| Metode Akses | Pilih Alibaba Cloud Instance. |
| Wilayah Instance | Pilih wilayah tempat instans ApsaraDB RDS for MySQL sumber berada. |
| Replikasi Data Antar Akun Alibaba Cloud | Pilih No untuk migrasi dalam satu akun Alibaba Cloud yang sama. |
| ID Instans RDS | Pilih instans ApsaraDB RDS for MySQL sumber. |
| Akun Database | Masukkan akun database. Lihat Izin yang diperlukan. |
| Kata Sandi Database | Masukkan password untuk akun database. |
| Enkripsi | Pilih Non-encrypted atau SSL-encrypted. Jika Anda memilih SSL-encrypted, aktifkan SSL pada instans sumber terlebih dahulu. Lihat Konfigurasikan enkripsi SSL untuk instans ApsaraDB RDS for MySQL. |
Destination Database
| Parameter | Deskripsi |
|---|---|
| Pilih instans database DMS yang sudah ada | Pilih instans yang sudah ada untuk menggunakan ulang pengaturannya, atau konfigurasikan parameter secara manual. |
| Jenis Database | Pilih PolarDB for MySQL. |
| Metode Akses | Pilih Alibaba Cloud Instance. |
| Wilayah Instans | Pilih wilayah tempat kluster PolarDB for MySQL tujuan berada. |
| ID Kluster PolarDB | Pilih kluster PolarDB for MySQL tujuan. |
| Akun Database | Masukkan akun database. Lihat Izin yang diperlukan. |
| Kata Sandi Database | Masukkan password untuk akun database. |
Langkah 4: Uji konektivitas
Klik Test Connectivity and Proceed di bagian bawah halaman.
DTS secara otomatis menambahkan Blok CIDR servernya ke daftar putih instans database Alibaba Cloud dan ke aturan grup keamanan database yang di-host di ECS. Untuk database yang dikelola sendiri di pusat data atau penyedia cloud pihak ketiga, tambahkan Blok CIDR DTS secara manual ke daftar putih database. Lihat Tambahkan Blok CIDR server DTS ke pengaturan keamanan database on-premises.
Menambahkan Blok CIDR DTS ke daftar putih database atau aturan grup keamanan menimbulkan risiko keamanan. Sebelum melanjutkan, ambil langkah pencegahan seperti menggunakan kredensial kuat, membatasi port yang terbuka, mengotentikasi panggilan API, mengaudit entri daftar putih secara berkala, dan menggunakan Express Connect, VPN Gateway, atau Smart Access Gateway alih-alih koneksi internet publik bila memungkinkan.
Langkah 5: Konfigurasi objek migrasi dan pengaturan lanjutan
Jenis migrasi
| Tujuan | Pilihan |
|---|---|
| Migrasi penuh dengan downtime | Migrasi Skema + Migrasi Data Penuh |
| Migrasi tanpa downtime (disarankan) | Migrasi Skema + Migrasi Data Penuh + Migrasi Data Inkremental |
Jika Anda tidak memilih Migrasi Data Inkremental, jangan menulis ke instans sumber selama migrasi untuk menjaga konsistensi data.
Mode pemrosesan untuk tabel yang bentrok
| Mode | Perilaku |
|---|---|
| Pemeriksaan Awal dan Laporkan Error | Memeriksa keberadaan tabel dengan nama identik di sumber dan tujuan. Tugas gagal dalam Pemeriksaan Awal jika terdapat bentrok. Gunakan pemetaan nama objek untuk mengganti nama tabel yang bentrok sebelum memulai. |
| Abaikan Error dan Lanjutkan | Melewati pemeriksaan nama identik. Jika skema cocok, catatan dengan kunci primer yang sama dilewati. Jika skema berbeda, hanya beberapa kolom yang dimigrasikan atau tugas gagal. |
Memilih Abaikan Error dan Lanjutkan dapat menyebabkan ketidakkonsistenan data.
Pilih objek
Pilih satu atau beberapa objek dari bagian Source Objects dan klik
untuk menambahkannya ke bagian Selected Objects.
Anda dapat memilih kolom, tabel, atau skema. Jika Anda memilih tabel atau kolom, DTS tidak memigrasikan view, trigger, atau prosedur tersimpan.
Untuk mengganti nama satu objek, klik kanan objek tersebut di Selected Objects. Lihat Petakan nama satu objek.
Untuk mengganti nama beberapa objek sekaligus, klik
di pojok kanan atas Selected Objects. Lihat Petakan beberapa nama objek sekaligus.
Mengganti nama objek dapat menyebabkan objek lain yang bergantung padanya gagal dimigrasikan.
Untuk memfilter baris berdasarkan kondisi, klik kanan tabel di Selected Objects dan tentukan klausa WHERE. Lihat Gunakan kondisi SQL untuk memfilter data.
Untuk memilih operasi DML atau DDL tertentu untuk tabel, klik kanan tabel di Selected Objects dan pilih operasinya. Lihat Operasi SQL yang didukung untuk migrasi inkremental.
Pengaturan lanjutan
| Parameter | Deskripsi |
|---|---|
| Atur Peringatan | Pilih Yes untuk menerima notifikasi saat tugas gagal atau latensi migrasi melebihi ambang batas. Konfigurasikan ambang batas peringatan dan kontak. Lihat Konfigurasikan pemantauan dan peringatan saat membuat tugas DTS. |
| Kapitalisasi nama objek di instans tujuan | Mengontrol cara DTS menangani kapitalisasi nama database, tabel, dan kolom di tujuan. Lihat Tentukan kapitalisasi nama objek di instans tujuan. |
| Salin tabel temporary dari tool Online DDL yang dihasilkan di tabel sumber ke database tujuan | Mengontrol cara DTS menangani tabel temporary dari tool DDL online (DMS atau gh-ost). Penting pt-online-schema-change tidak didukung — menggunakannya menyebabkan tugas DTS gagal. Opsi: Yes (migrasikan data tabel temp, dapat memperpanjang durasi tugas), Tidak, Adaptasi ke DMS Online DDL (migrasikan hanya DDL asli; tabel tujuan mungkin terkunci), Tidak, Adaptasi ke gh-ost (migrasikan hanya DDL asli; tabel tujuan mungkin terkunci). |
| Waktu percobaan ulang untuk koneksi yang gagal | Berapa lama DTS mencoba mengulang setelah kegagalan koneksi. Rentang valid: 10–1.440 menit. Default: 720 menit. Tetapkan nilai lebih dari 30 menit. Jika DTS terhubung kembali dalam jendela ini, tugas dilanjutkan secara otomatis. |
Untuk waktu percobaan ulang, jika beberapa tugas menggunakan database sumber atau tujuan yang sama, nilai yang paling baru ditetapkan akan menggantikan yang lain. DTS menagih instans selama periode percobaan ulang — segera lepaskan instans setelah migrasi selesai.
Langkah 6: Jalankan Pemeriksaan Awal
Klik Next: Save Task Settings and Precheck.
DTS menjalankan Pemeriksaan Awal sebelum memulai tugas. Untuk menangani kegagalan:
Untuk item yang gagal: klik View Details, perbaiki masalahnya, lalu klik Precheck Again.
Untuk item peringatan yang dapat diabaikan: klik Confirm Alert Details > Ignore > OK, lalu klik Precheck Again.
Mengabaikan item peringatan dapat menyebabkan ketidakkonsistenan data.
Langkah 7: Beli instans
Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman Purchase Instance, pilih Instance Class untuk instans migrasi. Kelas instans yang lebih tinggi memberikan kecepatan migrasi lebih cepat. Lihat Spesifikasi instans migrasi data.
Langkah 8: Mulai tugas
Baca dan terima Syarat Layanan Data Transmission Service (Pay-as-you-go), lalu klik Buy and Start.
Monitor progres migrasi di daftar tugas.