Gunakan Data Transmission Service (DTS) untuk melakukan migrasi data antar kluster PolarDB for MySQL dengan downtime minimal. DTS mendukung tiga jenis migrasi—migrasi skema, migrasi data penuh, dan migrasi data inkremental—yang dapat Anda kombinasikan sesuai kebutuhan apakah aplikasi harus tetap online selama migrasi.
Kluster PolarDB for MySQL tidak dapat ditingkatkan langsung ke versi 8.0. Untuk melakukan peningkatan, buat kluster versi 8.0 yang baru dan migrasikan data Anda ke kluster tersebut. Sebelum melakukan migrasi lintas versi utama, buat kluster pay-as-you-go untuk menguji kompatibilitas, lalu hapus kluster tersebut setelah pengujian selesai.
Pilih strategi migrasi
Pilih kombinasi jenis migrasi berdasarkan kebutuhan Anda:
| Tujuan | Jenis migrasi yang dipilih | Diperlukan downtime |
|---|---|---|
| Migrasi data dengan aplikasi offline | Migrasi skema + Migrasi data penuh | Ya — hentikan operasi write ke sumber sebelum memulai |
| Migrasi data dengan aplikasi tetap online | Migrasi skema + Migrasi data penuh + Migrasi data inkremental | Tidak — migrasi inkremental menjaga sinkronisasi tujuan |
Jenis migrasi
Migrasi skema
DTS memigrasikan skema tabel, view, trigger, prosedur tersimpan, dan fungsi tersimpan dari kluster sumber ke kluster tujuan.
DTS mengubah atribut SECURITY dari DEFINER menjadi INVOKER untuk view, prosedur tersimpan, dan fungsi tersimpan.
DTS tidak memigrasikan informasi pengguna. Berikan izin baca dan tulis kepada INVOKER untuk memanggil view, prosedur tersimpan, atau fungsi tersimpan di kluster tujuan.
Kunci asing dimigrasikan selama migrasi skema. Selama migrasi data penuh dan inkremental, DTS menonaktifkan sementara pemeriksaan kendala kunci asing dan operasi kaskade pada tingkat session. Jika Anda melakukan operasi kaskade atau delete pada sumber selama migrasi, ketidakkonsistenan data dapat terjadi.
Migrasi data penuh
DTS memigrasikan semua data yang ada dari kluster sumber ke kluster tujuan. Operasi INSERT bersamaan selama fase ini menyebabkan fragmentasi tabel, sehingga ruang tabel tujuan akan lebih besar daripada sumber setelah migrasi selesai.
Migrasi data inkremental
Setelah migrasi data penuh selesai, DTS terus menerapkan perubahan dari sumber ke tujuan. Hal ini menjaga kedua kluster tetap sinkron dan memungkinkan aplikasi Anda tetap online selama migrasi.
Operasi SQL yang didukung dalam migrasi inkremental
| Jenis operasi | Pernyataan SQL 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 cakupan tugas adalah tabel tersebut (bukan database-nya), DTS akan menghentikan migrasi data untuk tabel tersebut. Untuk menghindari hal ini, pilih database sebagai objek migrasi alih-alih tabel individual, dan pastikan nama database sebelum dan sesudah penggantian nama termasuk dalam objek yang dipilih.
Penagihan
| Jenis migrasi | Biaya konfigurasi instans | Biaya lalu lintas Internet |
|---|---|---|
| Migrasi skema + Migrasi data penuh | Gratis | Dikenakan biaya saat melakukan migrasi dari Alibaba Cloud melalui Internet. Lihat Ikhtisar penagihan |
| Migrasi data inkremental | Dikenakan biaya. Lihat Ikhtisar penagihan | — |
Batasan
Batasan database sumber
| Batasan | Detail | Solusi Sementara |
|---|---|---|
| Bandwidth outbound | Server sumber harus memiliki bandwidth outbound yang cukup. Bandwidth rendah mengurangi kecepatan migrasi. | Tingkatkan bandwidth atau aktifkan pembatasan kecepatan. |
| Kunci primer atau kunci unik | Tabel yang dimigrasikan harus memiliki PRIMARY KEY atau kendala UNIK, dengan semua bidang bernilai unik. Tanpa ini, tujuan mungkin berisi catatan duplikat. | Tambahkan kunci primer atau kunci unik ke setiap tabel sebelum migrasi. |
| Jumlah tabel per tugas (dengan penggantian nama) | Jika Anda memilih tabel (bukan database) sebagai objek migrasi dan mengganti nama tabel atau kolom di tujuan, satu tugas mendukung hingga 1.000 tabel. Lebih dari 1.000 tabel menyebabkan error permintaan. | Bagi migrasi ke beberapa tugas, atau pilih seluruh database sebagai objek migrasi. |
| Binary logging (migrasi inkremental) | Binary logging harus diaktifkan dan loose_polar_log_bin harus diatur ke on. Jika tidak dikonfigurasi, pemeriksaan awal gagal dan tugas tidak dapat dimulai. Mengaktifkan binary logging menimbulkan biaya penyimpanan untuk file log. | Lihat Aktifkan binary logging dan Ubah parameter. |
| Retensi log biner | Untuk tugas hanya inkremental: pertahankan log biner lebih dari 24 jam. Untuk tugas penuh + inkremental: pertahankan log biner minimal 7 hari. Setelah migrasi penuh selesai, Anda dapat mengurangi retensi menjadi lebih dari 24 jam. Retensi yang tidak mencukupi dapat menyebabkan kegagalan tugas atau kehilangan data; jaminan Service Level Agreement (SLA) DTS tidak berlaku jika persyaratan ini tidak dipenuhi. | Atur periode retensi log sebelum memulai tugas migrasi. |
| DDL selama migrasi skema + penuh | Jangan menjalankan operasi DDL yang mengubah skema database atau tabel selama migrasi skema atau migrasi data penuh. Operasi semacam itu menyebabkan tugas gagal. | Jadwalkan perubahan skema di luar jendela migrasi. |
| Operasi write selama migrasi hanya penuh | Jangan menulis data ke database sumber selama tugas migrasi data penuh saja. Hal ini dapat menyebabkan ketidakkonsistenan data antara sumber dan tujuan. | Tambahkan migrasi data inkremental untuk menjaga sinkronisasi kedua kluster, atau hentikan operasi write aplikasi sebelum memulai. |
Batasan lainnya
| Batasan | Detail |
|---|---|
| Versi MySQL | Gunakan versi MySQL yang sama untuk kluster sumber dan tujuan untuk menghindari masalah kompatibilitas. |
| Node read-only | Node read-only pada kluster sumber tidak dapat dimigrasikan. |
| Waktu migrasi | Migrasi data penuh menggunakan resource baca dan tulis pada kedua kluster dan dapat meningkatkan beban server. Evaluasi dampak performa sebelum memulai dan jalankan migrasi selama jam sepi. |
| Presisi FLOAT dan DOUBLE | DTS mengambil nilai FLOAT dan DOUBLE menggunakan ROUND(COLUMN, PRECISION). Jika Anda tidak menentukan presisi, DTS menggunakan default 38 digit untuk FLOAT dan 308 digit untuk DOUBLE. Verifikasi bahwa nilai default ini memenuhi kebutuhan Anda. |
| Pelanjutan tugas gagal | DTS secara otomatis mencoba ulang tugas yang gagal hingga 7 hari. Hentikan atau lepas tugas DTS sebelum atau segera setelah beralih aplikasi ke kluster tujuan. Atau, jalankan REVOKE untuk mencabut izin tulis DTS di tujuan. Jika tugas yang gagal dilanjutkan setelah Anda beralih, data sumber akan menimpa data tujuan. |
| Alat DDL Online | Jangan gunakan pt-online-schema-change untuk operasi DDL Online pada sumber. Hal ini menyebabkan tugas DTS gagal. Gunakan DMS atau gh-ost sebagai gantinya. |
Izin yang diperlukan
Izin yang diperlukan bergantung pada jenis migrasi yang Anda pilih.
| Database | Hanya migrasi data penuh | Migrasi data penuh + Migrasi data inkremental |
|---|---|---|
| Kluster PolarDB for MySQL sumber | Izin baca pada objek yang akan dimigrasikan | Izin baca pada objek yang akan dimigrasikan |
| Kluster PolarDB for MySQL tujuan | Izin baca dan tulis pada database tujuan | Izin baca dan tulis pada database tujuan |
Gunakan akun istimewa untuk kluster tujuan. Untuk petunjuk membuat akun database, lihat Buat akun database.
Untuk migrasi data inkremental, akun database sumber juga memerlukan akses binary logging. Pastikan binary logging diaktifkan dan loose_polar_log_bin diatur ke on sebelum memulai.
Migrasi data antar kluster PolarDB for MySQL
Prasyarat
Sebelum memulai, pastikan Anda telah:
Memiliki kluster PolarDB for MySQL sumber dan tujuan. Lihat Beli kluster pay-as-you-go dan Beli kluster subscription
Memiliki ruang penyimpanan kosong yang cukup di kluster tujuan untuk menampung semua data dari kluster sumber
Memiliki akun database dengan izin yang diperlukan (lihat Izin yang diperlukan)
Jika Anda berencana menjalankan migrasi data inkremental: binary logging diaktifkan di kluster sumber dan
loose_polar_log_bindiatur keon. Lihat Aktifkan binary logging dan Ubah parameter
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.
Navigasi konsol DMS bervariasi berdasarkan mode dan tata letak. Lihat Simple mode dan Sesuaikan tata letak dan gaya konsol DMS. Anda juga dapat langsung membuka 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 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 parameter berikut.
Setelah mengonfigurasi sumber dan tujuan, baca Batasan yang ditampilkan di bagian atas halaman sebelum melanjutkan. Melewatkan langkah ini dapat menyebabkan tugas gagal atau ketidakkonsistenan data.
Pengaturan tugas
| Parameter | Deskripsi |
|---|---|
| Task Name | Nama untuk tugas. DTS memberikan nama secara otomatis. Tentukan nama deskriptif agar mudah diidentifikasi. Nama tidak perlu unik. |
Database sumber
| Parameter | Deskripsi |
|---|---|
| Select an existing DMS database instance | Pilih instans yang sudah ada agar DTS mengisi parameter secara otomatis, atau biarkan kosong dan konfigurasi parameter secara manual. |
| Database Type | Pilih PolarDB for MySQL. |
| Access Method | Pilih Alibaba Cloud Instance. |
| Instance Region | Wilayah tempat kluster PolarDB for MySQL sumber berada. |
| PolarDB Cluster ID | ID kluster PolarDB for MySQL sumber. |
| Database Account | Akun untuk kluster sumber. Lihat Izin yang diperlukan. |
| Database Password | Password untuk akun database. |
| Encryption | Apakah koneksi dienkripsi. Konfigurasikan sesuai kebutuhan Anda. Lihat Konfigurasi enkripsi SSL. |
Database tujuan
| Parameter | Deskripsi |
|---|---|
| Select an existing DMS database instance | Pilih instans yang sudah ada agar DTS mengisi parameter secara otomatis, atau biarkan kosong dan konfigurasi parameter secara manual. |
| Database Type | Pilih PolarDB for MySQL. |
| Access Method | Pilih Alibaba Cloud Instance. |
| Instance Region | Wilayah tempat kluster PolarDB for MySQL tujuan berada. |
| PolarDB Cluster ID | ID kluster PolarDB for MySQL tujuan. |
| Database Account | Akun untuk kluster tujuan. Gunakan akun istimewa. Lihat Izin yang diperlukan. |
| Database Password | Password untuk akun database. |
| Encryption | Apakah koneksi dienkripsi. Konfigurasikan sesuai kebutuhan Anda. Lihat Konfigurasi 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 (seperti ApsaraDB RDS for MySQL atau ApsaraDB for MongoDB) dan ke aturan grup keamanan instans Elastic Compute Service (ECS) yang menghosting database yang dikelola sendiri. Untuk database yang dikelola sendiri yang tersebar di beberapa instans ECS, tambahkan blok CIDR DTS ke aturan grup keamanan setiap instans secara manual. Untuk database on-premises atau database dari penyedia cloud pihak ketiga, tambahkan blok CIDR DTS ke daftar putih IP database secara manual. Untuk daftar lengkap blok CIDR, lihat Tambahkan blok CIDR server DTS ke pengaturan keamanan database on-premises.
Menambahkan blok CIDR server DTS ke daftar putih IP atau grup keamanan menciptakan paparan keamanan. Sebelum melanjutkan, ambil tindakan pencegahan termasuk: memperkuat keamanan akun dan password, membatasi port yang terbuka, mengotentikasi panggilan API, mengaudit aturan daftar putih dan grup keamanan secara berkala, serta menghubungkan DTS ke database Anda melalui Express Connect, VPN Gateway, atau Smart Access Gateway alih-alih Internet publik.
Langkah 5: Pilih objek dan jenis migrasi
Jenis migrasi
| Parameter | Deskripsi |
|---|---|
| Migration Types | Pilih Schema Migration dan Full Data Migration untuk migrasi offline. Tambahkan Incremental Data Migration agar aplikasi tetap online selama migrasi. |
| Method to Migrate Triggers in Source Database | Metode untuk memigrasikan trigger. Parameter ini muncul hanya jika Schema Migration dipilih. Lihat Sinkronisasi atau migrasi trigger dari database sumber. |
Penanganan konflik
| Opsi | Perilaku |
|---|---|
| Precheck and Report Errors | Sebelum migrasi dimulai, DTS memeriksa apakah tujuan memiliki tabel dengan nama yang sama seperti sumber. Jika terdapat konflik nama, pemeriksaan awal gagal dan tugas tidak dimulai. Gunakan fitur pemetaan nama objek untuk mengganti nama objek jika diperlukan. Lihat Pemetaan nama objek. |
| Ignore Errors and Proceed | Melewati pemeriksaan awal konflik nama. Jika sumber dan tujuan memiliki skema identik, DTS melewati baris dengan nilai kunci primer yang cocok. Jika skema berbeda, hanya kolom tertentu yang dimigrasikan atau tugas gagal. Gunakan dengan hati-hati. |
Select objects
Di bagian Source Objects, pilih objek yang akan dimigrasikan, lalu klik
untuk memindahkannya ke Selected Objects. Anda dapat memilih kolom, tabel, atau skema. Memilih tabel atau kolom mengecualikan view, trigger, dan prosedur tersimpan dari migrasi.
Di Selected Objects, Anda dapat:
Mengganti nama satu objek: klik kanan objek dan ganti namanya. Lihat Pemetaan nama satu objek.
Mengganti nama beberapa objek: klik Batch Edit. Lihat Pemetaan nama beberapa objek sekaligus.
Memfilter baris berdasarkan kondisi: klik kanan objek dan tentukan klausa WHERE. Lihat Gunakan kondisi SQL untuk memfilter data.
Membatasi operasi SQL mana yang dimigrasikan: klik kanan objek dan pilih operasi SQL yang akan disertakan.
Mengganti nama objek dapat menyebabkan objek dependen, seperti view atau prosedur tersimpan, gagal selama migrasi.
Langkah 6: Konfigurasi pengaturan lanjutan
Klik Next: Advanced Settings, lalu konfigurasikan hal berikut.
Verifikasi data
Untuk memverifikasi konsistensi data antara sumber dan tujuan, konfigurasikan fitur verifikasi data. Lihat Aktifkan verifikasi data.
Pengaturan lanjutan
| Parameter | Deskripsi |
|---|---|
| Select the dedicated cluster used to schedule the task | Secara default, DTS menggunakan kluster bersama. Beli kluster khusus untuk mengisolasi resource tugas. Lihat Apa itu kluster khusus DTS? |
| Set Alerts | Konfigurasikan peringatan untuk kegagalan tugas atau pelanggaran ambang batas latensi. Pilih Yes untuk menentukan ambang batas peringatan dan kontak. Lihat Konfigurasi pemantauan dan peringatan. |
| Select the engine type of the destination database | Mesin penyimpanan untuk kluster tujuan: InnoDB (default) atau X-Engine (mesin online transaction processing (OLTP)). |
| Copy the temporary table of the Online DDL tool that is generated in the source table to the destination database. | Mengontrol apakah DTS memigrasikan tabel temporary yang dihasilkan oleh alat DDL Online. Penting pt-online-schema-change tidak didukung — menggunakannya menyebabkan tugas gagal. Opsi: Yes (migrasikan data tabel temporary; dapat memperpanjang waktu migrasi); No, Adapt to DMS Online DDL (lewati tabel temporary, migrasikan DDL asli hanya dari DMS — tabel tujuan mungkin terkunci); No, Adapt to gh-ost (lewati tabel temporary, migrasikan DDL asli hanya dari gh-ost — tabel tujuan mungkin terkunci; mendukung ekspresi reguler kustom untuk memfilter tabel shadow). |
| Retry Time for Failed Connections | Berapa lama DTS mencoba ulang koneksi yang gagal setelah tugas dimulai. Rentang: 10–1.440 menit. Default: 720. Atur minimal 30 menit. Jika beberapa tugas berbagi sumber atau tujuan yang sama, waktu retry terpendek di antara mereka yang berlaku. DTS mengenakan biaya untuk instans selama periode retry. |
| The wait time before a retry when other issues occur in the source and destination databases. | Berapa lama DTS mencoba ulang operasi DDL atau DML yang gagal. Rentang: 1–1.440 menit. Default: 10. Atur minimal 10 menit. Nilai ini harus kurang dari nilai Retry Time for Failed Connections. |
| Enable Throttling for Full Data Migration | Batasi beban baca/tulis pada sumber dan tujuan selama migrasi data penuh. Konfigurasikan Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s). Muncul hanya jika Full Data Migration dipilih. |
| Enable Throttling for Incremental Data Migration | Batasi beban selama migrasi inkremental. Konfigurasikan RPS of Incremental Data Migration dan Data migration speed for incremental migration (MB/s). Muncul hanya jika Incremental Data Migration dipilih. |
| Environment Tag | Tag untuk mengidentifikasi instans DTS. Pilih sesuai kebutuhan Anda. |
| Configure ETL | Apakah akan menerapkan transformasi extract, transform, and load (ETL). Pilih Yes untuk memasukkan pernyataan pemrosesan data. Lihat Apa itu ETL? dan Konfigurasi ETL dalam tugas migrasi data atau sinkronisasi data. |
| Whether to delete SQL operations on heartbeat tables of forward and reverse tasks | Mengontrol apakah DTS menulis ke tabel heartbeat di database sumber. Yes: DTS tidak menulis ke tabel heartbeat; latensi migrasi mungkin muncul di konsol. No: DTS menulis ke tabel heartbeat; backup fisik dan kloning database sumber mungkin terpengaruh. |
Langkah 7: Simpan pengaturan dan jalankan pemeriksaan awal
Klik Next: Save Task Settings and Precheck.
Sebelum mengklik, Anda dapat mengarahkan kursor ke tombol ini dan klik Preview OpenAPI parameters untuk melihat parameter API untuk konfigurasi tugas ini.
DTS menjalankan pemeriksaan awal sebelum tugas dimulai. Jika pemeriksaan awal gagal:
Klik View Details di sebelah item yang gagal, perbaiki masalah yang dilaporkan, lalu klik Precheck Again.
Jika item pemeriksaan awal menampilkan peringatan yang dapat diabaikan: klik Confirm Alert Details, lalu di kotak dialog View Details klik Ignore > OK > Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
Langkah 8: Tunggu hingga pemeriksaan awal lolos
Tunggu hingga tingkat keberhasilan mencapai 100%, lalu klik Next: Purchase Instance.
Langkah 9: Pilih kelas instans
Di halaman Purchase Instance, konfigurasikan instans untuk tugas migrasi.
| Parameter | Deskripsi |
|---|---|
| Resource Group | Kelompok sumber daya untuk instans migrasi. Default: default resource group. Lihat Apa itu Resource Management? |
| Instance Class | Kelas instans menentukan kecepatan migrasi. Pilih berdasarkan volume data dan kebutuhan waktu Anda. Lihat Spesifikasi instans migrasi data. |
Langkah 10: Terima syarat layanan
Baca dan terima Data Transmission Service (Pay-as-you-go) Service Terms dengan memilih kotak centang.
Langkah 11: Mulai tugas
Klik Buy and Start. Pantau progres di daftar tugas.
Tugas pasca-migrasi
Setelah tugas migrasi selesai:
Verifikasi konsistensi data: Gunakan fitur verifikasi data untuk mengonfirmasi integritas data antara sumber dan tujuan. Lihat Aktifkan verifikasi data.
Hentikan atau lepas tugas DTS: Sebelum atau segera setelah beralih aplikasi, hentikan atau lepas tugas migrasi. DTS secara otomatis mencoba ulang tugas yang gagal hingga 7 hari — jika tugas yang dilanjutkan berjalan setelah Anda beralih, data sumber akan menimpa data tujuan. Atau, jalankan
REVOKEuntuk mencabut izin tulis DTS dari tujuan sebagai perlindungan tambahan.Beralih aplikasi Anda: Perbarui string koneksi di aplikasi Anda agar mengarah ke kluster tujuan.
Bersihkan: Jika Anda membuat kluster pay-as-you-go untuk pengujian kompatibilitas versi, lepas kluster tersebut sekarang.
Catatan penggunaan
DTS secara berkala mengeksekusi CREATE DATABASE IF NOT EXISTS \`test\` pada database sumber untuk memajukan posisi log biner.