Layanan Transmisi Data (DTS) melakukan migrasi data dari kluster PolarDB for MySQL ke instans ApsaraDB RDS for MySQL dengan downtime minimal melalui kombinasi migrasi skema, migrasi data penuh, dan migrasi data inkremental.
Prosedur yang sama berlaku saat melakukan migrasi ke database MySQL yang dikelola sendiri (melalui IP publik, di-host pada Elastic Compute Service (ECS), terhubung melalui Express Connect, VPN Gateway, atau Smart Access Gateway, atau terhubung melalui Database Gateway).
Prasyarat
Sebelum memulai, pastikan Anda telah:
Memiliki kluster PolarDB for MySQL sumber. Lihat Beli kluster pay-as-you-go atau Beli kluster subscription.
Memiliki instans ApsaraDB RDS for MySQL tujuan dengan ruang penyimpanan tersedia lebih besar daripada ukuran total data kluster sumber.
Memiliki akun database dengan izin yang diperlukan (lihat Izin yang diperlukan).
Untuk migrasi data inkremental: binary logging diaktifkan pada kluster sumber dan
loose_polar_log_bindiatur keon. Lihat Aktifkan binary logging dan Ubah parameter.
Jenis migrasi
Pilih salah satu kombinasi berikut berdasarkan kebutuhan Anda:
| Kombinasi | Kapan digunakan | Downtime diperlukan |
|---|---|---|
| Migrasi skema + Migrasi data penuh | Migrasi satu kali di mana sumber dapat di-offline-kan. | Ya |
| Migrasi skema + Migrasi data penuh + Migrasi data inkremental | Migrasi live dengan gangguan layanan minimal. | Tidak |
Schema migration menyalin skema objek yang dipilih (tabel, view, trigger, prosedur tersimpan, dan fungsi tersimpan) dari sumber ke tujuan. DTS mengubah atribut SECURITY dari DEFINER menjadi INVOKER untuk view, prosedur tersimpan, dan fungsi tersimpan. Informasi pengguna tidak dimigrasikan—berikan izin baca dan tulis secara terpisah kepada INVOKER.
Full data migration menyalin data historis dari objek yang dipilih.
Incremental data migration mereplikasi perubahan dari sumber secara berkelanjutan setelah migrasi data penuh selesai.
Penagihan
| Jenis migrasi | Biaya konfigurasi instans | Biaya trafik Internet |
|---|---|---|
| Migrasi skema + Migrasi data penuh | Gratis. | Dikenakan hanya jika data dimigrasikan melalui Internet. Lihat Ikhtisar penagihan. |
| Migrasi data inkremental | Dikenakan biaya. Lihat Ikhtisar penagihan. | Dikenakan hanya jika data dimigrasikan melalui Internet. |
Izin yang diperlukan
Berikan izin berikut kepada akun database yang digunakan oleh DTS sebelum mengonfigurasi tugas migrasi.
| Database | Izin yang diperlukan | Referensi |
|---|---|---|
| Kluster PolarDB for MySQL | Izin baca pada objek yang akan dimigrasikan | Buat dan kelola akun database |
| Instans ApsaraDB RDS for MySQL | Izin baca dan tulis pada objek yang akan dimigrasikan | Buat akun |
Batasan
Database sumber
Tabel harus memiliki PRIMARY KEY atau kendala UNIK dengan semua field unik. Tanpa ini, database tujuan mungkin berisi catatan duplikat.
Jika Anda memilih tabel sebagai objek migrasi dan perlu mengganti nama tabel atau kolom di tujuan, satu tugas mendukung maksimal 1.000 tabel. Untuk lebih dari 1.000 tabel, konfigurasikan beberapa tugas atau lakukan migrasi di tingkat database.
Jangan lakukan operasi DDL yang mengubah skema database atau tabel selama migrasi skema atau migrasi data penuh.
Selama migrasi hanya data penuh (tanpa inkremental), jangan menulis data ke database sumber. Untuk menghindari ketidakkonsistenan data, sertakan migrasi data inkremental dalam tugas.
Server sumber harus memiliki bandwidth outbound yang cukup; jika tidak, kecepatan migrasi menurun.
Node read-only dari kluster sumber tidak dapat dimigrasikan.
Periode retensi log biner untuk migrasi inkremental
Mengaktifkan binary logging pada kluster PolarDB for MySQL akan dikenakan biaya penyimpanan untuk file log biner.
Atur periode retensi log biner berdasarkan jenis migrasi Anda:
| Jenis migrasi | Periode retensi minimum |
|---|---|
| Hanya migrasi data inkremental | Lebih dari 24 jam |
| Migrasi data penuh + Migrasi data inkremental | Minimal 7 hari |
Jika DTS tidak dapat memperoleh log biner karena periode retensi terlalu singkat, tugas gagal. Dalam kasus luar biasa, ketidakkonsistenan atau kehilangan data mungkin terjadi. Setelah migrasi data penuh selesai, periode retensi dapat dikurangi menjadi lebih dari 24 jam.
Periode retensi yang lebih pendek dari minimum ini berada di luar Perjanjian Tingkat Layanan (SLA) DTS.
Perilaku kunci asing
DTS memigrasikan kunci asing selama migrasi skema.
Selama migrasi data penuh dan inkremental, DTS menonaktifkan pemeriksaan kendala kunci asing dan operasi kaskade di tingkat session. Melakukan operasi kaskade atau penghapusan pada sumber selama migrasi dapat menyebabkan ketidakkonsistenan data.
Presisi tipe data
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 bahwa nilai default ini sesuai dengan kebutuhan Anda sebelum memulai migrasi.
Pembuatan database tujuan
DTS secara otomatis membuat database tujuan di instans ApsaraDB RDS for MySQL. Jika nama database sumber tidak valid, buat database secara manual sebelum mengonfigurasi tugas. Lihat Kelola database.
Operasi SQL yang didukung untuk migrasi inkremental
| Jenis operasi | Statement 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 memilih tabel sebagai objek migrasi dan mengganti namanya selama migrasi, DTS tidak akan memigrasikan data tabel tersebut. Untuk menghindarinya, pilih database (bukan tabel individual) sebagai objek migrasi, dan pastikan database sebelum dan sesudah penggantian nama termasuk dalam objek yang dipilih.
Konfigurasi tugas migrasi
Langkah 1: Buka halaman Tugas Migrasi Data
Masuk ke Konsol Data Management (DMS).
Di bilah navigasi atas, klik DTS.
Di panel navigasi sebelah kiri, pilih DTS (DTS) > Data Migration.
Anda juga dapat langsung membuka halaman Tugas Migrasi Data di konsol DTS baru. Opsi navigasi dapat berbeda tergantung mode dan tata letak konsol DMS Anda. Lihat Mode simple dan Sesuaikan tata letak dan gaya konsol DMS.
Langkah 2: Buat tugas
Dari daftar drop-down di samping Data Migration Tasks, pilih wilayah tempat instans migrasi data berada.
CatatanDi konsol DTS baru, pilih wilayah di pojok kiri atas.
Klik Create Task.
(Opsional) Di pojok kanan atas, klik New Configuration Page untuk beralih ke halaman konfigurasi baru.
CatatanLewati langkah ini jika yang ditampilkan adalah Back to Previous Version. Halaman konfigurasi baru direkomendasikan.
Langkah 3: Konfigurasi database sumber dan tujuan
Setelah mengonfigurasi database sumber dan tujuan, baca Limits yang ditampilkan di bagian atas halaman sebelum melanjutkan.
Konfigurasikan parameter berikut:
Informasi tugas
| Parameter | Deskripsi |
|---|---|
| Task Name | DTS memberikan nama secara otomatis. Tentukan nama deskriptif untuk mengidentifikasi tugas. Nama tidak perlu unik. |
Source Database
| Parameter | Nilai |
|---|---|
| Select a DMS database instance | Pilih instans terdaftar yang sudah ada, atau konfigurasi parameter database sumber secara manual. |
| Database Type | PolarDB for MySQL |
| Connection Type | Alibaba Cloud Instance |
| Instance Region | Wilayah tempat kluster PolarDB for MySQL sumber berada. |
| Replicate Data Across Alibaba Cloud Accounts | No (contoh ini menggunakan akun saat ini) |
| PolarDB Cluster ID | ID kluster PolarDB for MySQL sumber. |
| Database Account | Akun dengan izin baca pada objek yang akan dimigrasikan. |
| Database Password | Password untuk akun database. |
| Encryption | Konfigurasikan sesuai kebutuhan keamanan Anda. Lihat Configure SSL encryption. |
Destination Database
| Parameter | Nilai |
|---|---|
| Select a DMS database instance | Pilih instans terdaftar yang sudah ada, atau konfigurasi parameter database tujuan secara manual. |
| Database Type | MySQL |
| Connection Type | Alibaba Cloud Instance |
| Instance Region | Wilayah tempat instans ApsaraDB RDS for MySQL tujuan berada. |
| Replicate Data Across Alibaba Cloud Accounts | No (contoh ini menggunakan akun saat ini) |
| RDS Instance ID | ID instans ApsaraDB RDS for MySQL tujuan. |
| Database Account | Akun dengan izin baca dan tulis pada objek yang akan dimigrasikan. |
| Database Password | Password untuk akun database. |
| Encryption | Pilih Non-encrypted atau SSL-encrypted. Jika memilih SSL-encrypted, aktifkan enkripsi SSL untuk instans RDS sebelum memulai tugas. Lihat Configure the SSL encryption feature. |
Untuk mendaftarkan database ke DMS, klik Create Template di konsol DMS. Lihat Register an Alibaba Cloud database instance atau Register a database hosted on a third-party cloud service or a self-managed database. Di konsol DTS, daftarkan database di halaman Database Connections atau halaman konfigurasi baru. Lihat Manage database connections.
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 dan aturan grup keamanan database yang di-host di ECS. Jika database sumber atau tujuan di-host di beberapa instans ECS, Anda harus menambahkan blok CIDR server DTS secara manual ke aturan grup keamanan setiap instans ECS. Untuk database yang dikelola sendiri di pusat data atau layanan cloud pihak ketiga, tambahkan blok CIDR server DTS secara manual ke daftar putih alamat IP database. Lihat CIDR blocks of DTS servers.
Menambahkan blok CIDR server DTS ke daftar putih atau aturan grup keamanan menimbulkan risiko keamanan. Sebelum melanjutkan, ambil tindakan pencegahan seperti memperkuat kredensial akun, membatasi port yang terbuka, mengotentikasi panggilan API, dan melakukan audit berkala terhadap aturan daftar putih. Atau, hubungkan database ke DTS menggunakan Express Connect, VPN Gateway, atau Smart Access Gateway.
Langkah 5: Pilih objek dan konfigurasi pengaturan migrasi
Di halaman Select Objects, konfigurasikan parameter berikut:
| Parameter | Deskripsi |
|---|---|
| Migration Types | Pilih Schema Migration dan Full Data Migration untuk migrasi satu kali. Pilih ketiganya (termasuk Incremental Data Migration) agar sumber tetap berjalan selama migrasi. |
| Method to Migrate Triggers in Source Database | Tersedia hanya jika Schema Migration dan Incremental Data Migration dipilih. Lihat Synchronize or migrate triggers from the source database. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors (default): gagal dalam pemeriksaan awal jika tabel dengan nama identik ada di kedua database. Ignore Errors and Proceed: melewati pemeriksaan ini. Gunakan dengan hati-hati—ketidakkonsistenan data dapat terjadi jika skema berbeda antara sumber dan tujuan. |
| Capitalization of Object Names in Destination Instance | Default: DTS default policy. Lihat Specify the capitalization of object names in the destination instance. |
| Source Objects | Pilih objek dan klik ikon |
| Selected Objects | Klik kanan objek untuk mengganti namanya atau mengatur kondisi filter. Klik Batch Edit untuk mengganti nama beberapa objek sekaligus. Lihat Map object names. Catatan: mengganti nama objek dapat menyebabkan migrasi objek dependen gagal. |
Klik Next: Advanced Settings dan konfigurasikan hal berikut:
| Parameter | Deskripsi |
|---|---|
| Select the dedicated cluster used to schedule the task | Default: shared cluster. Beli dedicated cluster untuk stabilitas migrasi yang lebih tinggi. Lihat What is a DTS dedicated cluster. |
| Copy the temporary table of the Online DDL tool | Mengontrol cara DTS menangani tabel temporary dari alat DDL Online (Data Management (DMS) atau gh-ost). Yesalert notification settings: memigrasikan data tabel temporary (dapat menambah latensi). No, Adapt to DMS Online DDL: DTS tidak memigrasikan data tabel temporary yang dihasilkan oleh operasi DDL Online. Hanya operasi DDL asli yang dilakukan menggunakan DMS yang dimigrasikan. Catatan Jika Anda memilih No, Adapt to DMS Online DDL, tabel di database tujuan mungkin terkunci. No, Adapt to gh-ost: DTS tidak memigrasikan data tabel temporary yang dihasilkan oleh operasi DDL Online. Hanya operasi DDL asli yang dilakukan menggunakan alat gh-ost yang dimigrasikan. Catatan Jika Anda memilih No, Adapt to gh-ost, tabel di database tujuan mungkin terkunci. Catatan: pt-online-schema-change tidak didukung—menggunakannya menyebabkan tugas DTS gagal. |
| Retry Time for Failed Connections | Berapa lama DTS mencoba ulang setelah kegagalan koneksi. Nilai valid: 10–1.440 menit. Default: 720 menit. Kami menyarankan Anda mengatur parameter ini lebih dari 30. Jika tugas berbeda berbagi sumber atau tujuan yang sama, nilai yang dikonfigurasi terakhir yang berlaku. |
| The wait time before a retry when other issues occur in the source and destination databases | Berapa lama DTS mencoba ulang setelah kegagalan DDL atau DML. Nilai valid: 1–1.440 menit. Default: 10 menit. Kami menyarankan Anda mengatur parameter ini lebih dari 10. Nilai ini harus lebih kecil dari nilai Retry Time for Failed Connections. |
| Enable Throttling for Full Data Migration | Membatasi beban baca/tulis selama migrasi data penuh dengan membatasi QPS (queries per second), RPS, dan kecepatan migrasi (MB/s). Tersedia hanya jika Full Data Migration dipilih. |
| Enable Throttling for Incremental Data Migration | Membatasi beban selama migrasi inkremental dengan membatasi RPS dan kecepatan migrasi (MB/s). Tersedia hanya jika Incremental Data Migration dipilih. |
| Environment Tag | Tag opsional untuk mengidentifikasi instans DTS. |
| Whether to delete SQL operations on heartbeat tables of forward and reverse tasks | Yes: DTS tidak menulis ke tabel heartbeat; dalam hal ini, latensi instans DTS mungkin ditampilkan. No: DTS menulis ke tabel heartbeat, yang dapat memengaruhi backup fisik dan kloning database sumber. |
| Configure ETL | Aktifkan ekstrak, transformasi, dan muat (ETL) untuk memproses data selama migrasi. Lihat Configure ETL in a data migration or data synchronization task. |
| Monitoring and Alerting | Konfigurasikan peringatan untuk kegagalan tugas atau latensi yang melebihi ambang batas. Lihat Configure monitoring and alerting when you create a DTS task. |
Klik Next Step: Verification Configurations untuk mengonfigurasi verifikasi data. Lihat Configure data verification.
Langkah 6: Simpan pengaturan dan jalankan pemeriksaan awal
Klik Next: Save Task Settings and Precheck.
Untuk melihat pratinjau parameter API untuk konfigurasi tugas ini, arahkan kursor ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters.
DTS menjalankan pemeriksaan awal sebelum memulai migrasi. Tugas hanya dimulai setelah pemeriksaan awal berhasil.
Jika suatu item gagal: klik View Details, perbaiki masalahnya, lalu klik Precheck Again.
Jika muncul peringatan: klik Confirm Alert Details. Di dialog, klik Ignore, konfirmasi, lalu klik Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
Langkah 7: Beli instans
Tunggu hingga laju keberhasilan mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman Purchase Instance, konfigurasikan hal berikut:
| Parameter | Deskripsi |
|---|---|
| Resource Group Settings | Kelompok sumber daya untuk instans migrasi data. Default: default resource group. Lihat What is Resource Management? |
| Instance Class | Kecepatan migrasi bergantung pada kelas instans. Lihat Specifications of data migration instances. |
Baca dan terima Data Transmission Service (Pay-as-you-go) Service Terms, lalu klik Buy and Start.
Tugas muncul di daftar tugas. Pantau progres dari sana.
Langkah 8: Selesaikan migrasi
Setelah status tugas menunjukkan migrasi data penuh selesai dan latensi migrasi inkremental mendekati nol, database tujuan siap menerima trafik.
Sebelum mengalihkan beban kerja ke database tujuan, hentikan atau lepas tugas migrasi data—atau jalankan REVOKE untuk mencabut izin tulis dari akun DTS di database tujuan. Jika Anda mengalihkan trafik tanpa menghentikan tugas, tugas yang dilanjutkan akan menimpa data tujuan dengan data sumber.
Selesaikan langkah-langkah berikut untuk menyelesaikan migrasi:
Verifikasi konsistensi data antara database sumber dan tujuan.
Hentikan atau lepas tugas migrasi DTS. Atau, jalankan
REVOKEuntuk mencabut izin tulis yang diberikan kepada akun DTS di database tujuan.Alihkan trafik aplikasi ke instans ApsaraDB RDS for MySQL tujuan.
Validasi bahwa aplikasi berfungsi dengan benar terhadap database tujuan.
Pertimbangan
Jadwalkan migrasi selama jam sepi. Migrasi data penuh menggunakan sumber daya baca dan tulis kedua database serta meningkatkan beban pada server database.
Migrasi data penuh menyebabkan fragmentasi tabel di database tujuan akibat operasi INSERT konkuren. Setelah migrasi data penuh, ruang tabel tujuan lebih besar daripada ruang tabel sumber.
DTS mencoba melanjutkan tugas yang gagal hingga 7 hari. Hentikan atau lepas tugas sebelum mengalihkan beban kerja untuk mencegah penimpaan data saat pemulihan.
DTS secara berkala mengeksekusi
CREATE DATABASE IF NOT EXISTS \test\`` di database sumber untuk memajukan posisi log biner.
Langkah selanjutnya
Verifikasi data: Validasi konsistensi data antara sumber dan tujuan setelah migrasi.
Pemetaan nama objek: Ganti nama objek di database tujuan selama migrasi.
Ikhtisar penagihan: Pahami penetapan harga DTS untuk instans migrasi inkremental.