Saat melakukan peningkatan dari instans Edisi Perusahaan ke instans Edisi Kluster, mengalihkan koneksi tanpa migrasi data berisiko menyebabkan downtime dan kehilangan data. Gunakan Data Transmission Service (DTS) untuk memigrasikan data antara kedua instans dengan downtime minimal—sehingga aplikasi tetap berjalan selama proses tersebut.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Instans sumber ApsaraDB RDS for MySQL Edisi Perusahaan dan instans tujuan Edisi Kluster. Lihat Buat instans ApsaraDB RDS for MySQL.
Ruang penyimpanan yang tersedia pada instans tujuan melebihi total ukuran data pada instans sumber.
binlog_formatdiatur keROWdanbinlog_row_imagediatur keFULLpada instans sumber. Lihat Ubah parameter instans. Jika parameter ini tidak diatur dengan benar, pemeriksaan awal gagal dan tugas migrasi tidak dapat dimulai.
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 |
|---|---|---|---|
| Instans sumber ApsaraDB RDS for MySQL Edisi Perusahaan | SELECT | SELECT | Baca dan tulis |
| Instans tujuan ApsaraDB RDS for MySQL Edisi Kluster | Baca dan tulis | Baca dan tulis | Baca dan tulis |
Untuk membuat akun dan memberikan izin, lihat Buat akun dan Ubah izin akun.
Jenis migrasi
DTS mendukung tiga jenis migrasi yang dapat dikombinasikan sesuai kebutuhan Anda.
Migrasi skema menyalin skema objek yang dipilih—tabel, view, trigger, prosedur tersimpan, dan fungsi tersimpan—dari sumber ke tujuan. Selama migrasi skema:
DTS memigrasikan kunci asing dari sumber ke tujuan.
Atribut SECURITY berubah dari DEFINER menjadi INVOKER untuk view, prosedur tersimpan, dan fungsi. Untuk memanggil objek-objek ini di tujuan, berikan izin baca dan tulis kepada INVOKER.
DTS tidak memigrasikan akun pengguna.
Selama migrasi data penuh dan migrasi data inkremental, DTS secara sementara menonaktifkan pemeriksaan kendala dan operasi kaskade pada kunci asing di tingkat session. Jika Anda melakukan operasi pembaruan dan penghapusan kaskade pada database sumber selama migrasi data, ketidakkonsistenan data dapat terjadi.
Migrasi data penuh menyalin semua data historis dalam objek yang dipilih dari sumber ke tujuan.
Migrasi data inkremental terus-menerus mereplikasi perubahan dari sumber ke tujuan setelah migrasi data penuh selesai. Hal ini menjaga kedua instans tetap sinkron dan memungkinkan aplikasi Anda tetap berjalan selama migrasi.
Pilih pendekatan migrasi Anda
| Tujuan | Pilih |
|---|---|
| Migrasi satu kali dengan jendela pemeliharaan yang direncanakan | Migrasi skema + Migrasi data penuh |
| Minimalkan downtime — pertahankan aplikasi tetap berjalan selama migrasi | Migrasi skema + Migrasi data penuh + Migrasi data inkremental |
Jika Anda hanya menjalankan migrasi data penuh (tanpa migrasi inkremental), hentikan semua operasi tulis ke database sumber selama migrasi untuk mencegah ketidakkonsistenan data.
Operasi SQL yang didukung oleh migrasi data inkremental
| Jenis operasi | Pernyataan SQL |
|---|---|
| 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 tabel tersebut dipilih sebagai objek migrasi, datanya tidak akan direplikasi ke tujuan. Untuk menghindari hal ini, pilih database (bukan tabel individual) sebagai objek migrasi, dan pastikan nama database sebelum dan sesudah penggantian nama termasuk dalam cakupan migrasi.
Penagihan
| Jenis migrasi | Biaya konfigurasi instans | Biaya lalu lintas Internet |
|---|---|---|
| Migrasi skema + migrasi data penuh | Gratis | Dikenakan biaya hanya jika data dimigrasikan dari Alibaba Cloud melalui Internet |
| Migrasi data inkremental | Dikenakan biaya | — |
Untuk detail harga, lihat Ikhtisar penagihan.
Batasan
Database sumber
Server sumber harus memiliki bandwidth keluar yang mencukupi. Bandwidth yang tidak mencukupi mengurangi kecepatan migrasi.
Tabel harus memiliki PRIMARY KEY atau kendala UNIQUE, dan semua bidang harus unik. Tabel tanpa kendala ini dapat menghasilkan catatan duplikat di tujuan.
Jika Anda memilih tabel sebagai objek migrasi dan perlu mengganti nama tabel atau kolom di tujuan, batasnya adalah 1.000 tabel per tugas. Untuk migrasi yang lebih besar, bagi menjadi beberapa tugas atau pilih seluruh database sebagai objek migrasi.
Persyaratan retensi log biner:
Hanya migrasi inkremental: simpan log biner selama lebih dari 24 jam.
Migrasi penuh + inkremental: simpan log biner selama minimal 7 hari.
Setelah migrasi penuh selesai, Anda dapat mengurangi periode retensi menjadi lebih dari 24 jam. Jika periode retensi turun di bawah ambang batas ini, DTS mungkin gagal mengambil log biner, yang dapat menyebabkan kegagalan tugas atau kehilangan data. Perjanjian Tingkat Layanan (SLA) DTS tidak menjamin keandalan layanan jika persyaratan ini tidak dipenuhi.
Selama migrasi skema dan migrasi data penuh: jangan menjalankan operasi DDL yang mengubah skema database atau tabel. Tugas akan gagal.
Selama migrasi data penuh saja: jangan menulis data ke database sumber. Jika Anda perlu melanjutkan operasi tulis, sertakan migrasi data inkremental.
Umum
Gunakan versi mesin MySQL yang sama untuk instans sumber dan tujuan guna memastikan kompatibilitas.
Jadwalkan migrasi selama jam sepi. Migrasi data penuh menggunakan resource baca dan tulis pada kedua instans, yang meningkatkan beban server.
Setelah migrasi data penuh, ruang tabel di tujuan mungkin lebih besar daripada di sumber karena fragmentasi dari operasi INSERT bersamaan.
Untuk kolom FLOAT dan DOUBLE, DTS menggunakan
ROUND(COLUMN, PRECISION)untuk membaca nilai. Jika Anda tidak menentukan presisi, DTS menggunakan default 38 digit untuk FLOAT dan 308 digit untuk DOUBLE. Verifikasi apakah default ini sesuai kebutuhan Anda sebelum memulai.DTS secara otomatis mencoba ulang tugas yang gagal hingga 7 hari. Sebelum mengalihkan beban kerja ke tujuan, hentikan atau lepas tugas yang gagal, atau jalankan
REVOKEuntuk mencabut akses tulis DTS ke tujuan. Jika tidak, data sumber dapat menimpa data tujuan saat tugas yang gagal dilanjutkan.Jika nama database sumber tidak valid, buat database tujuan secara manual sebelum mengonfigurasi tugas. Lihat Kelola database. Untuk nama database yang valid, DTS akan membuat database tujuan secara otomatis.
Konfigurasi tugas migrasi
Langkah 1: Buka halaman Tugas Migrasi Data
Login ke Konsol Data Management (DMS).
Di bilah navigasi atas, arahkan pointer ke DTS, lalu pilih DTS (DTS) > Data Migration.
Langkah-langkah dapat berbeda tergantung mode Konsol DMS. Lihat Mode simple dan Sesuaikan tata letak dan gaya Konsol DMS. Atau, langsung buka halaman Migrasi Data di Konsol DTS baru.
Langkah 2: Pilih wilayah
Dari daftar drop-down di sisi kanan 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. Di halaman Create Data Migration Task, konfigurasikan database sumber dan tujuan.
Setelah mengonfigurasi database sumber dan tujuan, baca Batasan yang ditampilkan di bagian atas halaman sebelum melanjutkan.
Database sumber
| Parameter | Nilai |
|---|---|
| Select an existing DMS database instance | (Opsional) Pilih instans yang sudah ada untuk mengisi parameter di bawah ini secara otomatis. |
| Database Type | MySQL |
| Access Method | Alibaba Cloud Instance |
| Instance Region | Wilayah tempat instans sumber berada |
| Replicate Data Across Alibaba Cloud Accounts | No |
| RDS Instance ID | ID instans Edisi Perusahaan sumber |
| Database Account | Akun database dengan izin yang diperlukan (lihat Izin yang diperlukan) |
| Database Password | Password akun |
| Encryption | Pilih Non-encrypted atau SSL-encrypted. Untuk menggunakan enkripsi SSL, aktifkan terlebih dahulu pada instans RDS. Lihat Use a cloud certificate to enable SSL encryption. |
Database tujuan
| Parameter | Nilai |
|---|---|
| Select an existing DMS database instance | (Opsional) Pilih instans yang sudah ada untuk mengisi parameter di bawah ini secara otomatis. |
| Database Type | MySQL |
| Access Method | Alibaba Cloud Instance |
| Instance Region | Wilayah tempat instans tujuan berada |
| RDS Instance ID | ID instans Edisi Kluster tujuan |
| Database Account | Akun database dengan izin baca dan tulis |
| Database Password | Password akun |
| Encryption | Pilih Non-encrypted atau SSL-encrypted. |
Langkah 4: Uji konektivitas
Klik Test Connectivity and Proceed.
DTS secara otomatis menambahkan blok CIDR servernya ke daftar putih alamat IP instans ApsaraDB RDS. Untuk database yang dikelola sendiri pada Instance Elastic Compute Service (ECS), DTS menambahkan blok CIDR-nya ke aturan grup keamanan ECS. Jika database berjalan pada beberapa Instance ECS, tambahkan secara manual blok CIDR DTS ke grup keamanan masing-masing instans. Untuk database yang dikelola sendiri di pusat data atau cloud pihak ketiga, tambahkan secara manual blok CIDR DTS ke daftar putih alamat IP database. Untuk daftar lengkap blok CIDR, lihat Tambahkan blok CIDR server DTS.
Menambahkan blok CIDR server DTS ke daftar putih atau aturan grup keamanan Anda menimbulkan risiko keamanan. Lakukan langkah pencegahan, termasuk memperkuat kredensial akun, membatasi port yang terbuka, mengotentikasi panggilan API, mengaudit aturan daftar putih dan grup keamanan secara berkala, serta mempertimbangkan opsi konektivitas privat seperti Express Connect, VPN Gateway, atau Smart Access Gateway.
Langkah 5: Pilih objek dan konfigurasi pengaturan migrasi
Konfigurasikan parameter berikut.
| Parameter | Deskripsi |
|---|---|
| Migration Types | Pilih jenis migrasi berdasarkan pendekatan Anda. Lihat Pilih pendekatan migrasi Anda. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors: gagal dalam pemeriksaan awal jika tujuan memiliki tabel dengan nama yang sama dengan sumber. Gunakan ini untuk mendeteksi konflik sebelum migrasi dimulai. Ignore Errors and Proceed: melewati pemeriksaan konflik nama. Selama migrasi data penuh, catatan yang sudah ada di tujuan dipertahankan. Selama migrasi data inkremental, catatan yang sudah ada ditimpa. Jika skema berbeda antara sumber dan tujuan, hanya kolom tertentu yang mungkin dimigrasikan, atau tugas dapat gagal. Gunakan opsi ini dengan hati-hati. |
| Capitalization of Object Names in Destination Instance | Default ke DTS default policy. Sesuaikan jika database tujuan memiliki persyaratan kapitalisasi tertentu. Lihat Tentukan kapitalisasi nama objek di instans tujuan. |
| Source Objects | Pilih satu atau beberapa objek, lalu klik ikon panah kanan untuk memindahkannya ke Selected Objects. Anda dapat memilih kolom, tabel, atau seluruh database. Memilih tabel atau kolom mengecualikan view, trigger, dan prosedur tersimpan dari migrasi. |
| Selected Objects | Untuk mengganti nama satu objek, klik kanan objek tersebut dan pilih opsi penggantian nama. Untuk mengganti nama beberapa objek, klik Batch Edit. Lihat Petakan nama objek. Untuk memfilter baris dengan kondisi WHERE, klik kanan objek dan tentukan kondisinya. Lihat Tentukan kondisi filter. Untuk memilih operasi DML atau DDL mana yang akan direplikasi secara inkremental, klik kanan objek dan konfigurasikan operasinya. |
Mengganti nama objek dapat menyebabkan migrasi objek dependen gagal.
Langkah 6: Konfigurasi pengaturan lanjutan
Klik Next: Advanced Settings.
Data Verification Settings: untuk mengaktifkan verifikasi data, lihat Konfigurasi tugas verifikasi data.
Advanced Settings:
| Parameter | Deskripsi |
|---|---|
| Monitoring and Alerting | Pilih Yes untuk menerima notifikasi saat tugas gagal atau latensi migrasi melebihi ambang batas. Konfigurasikan ambang batas peringatan dan pengaturan notifikasi. Lihat Konfigurasi pemantauan dan peringatan. |
| Copy the temporary table of the Online DDL tool that is generated in the source table to the destination database | Mengontrol cara DTS menangani tabel sementara dari alat DDL online. Yes: memigrasikan data tabel sementara. Dapat menyebabkan latensi jika volume datanya besar. No, Adapt to DMS Online DDL: hanya memigrasikan DDL asli dari DMS; data tabel sementara dilewati. Tabel di tujuan mungkin terkunci. No, Adapt to gh-ost: hanya memigrasikan DDL asli dari alat gh-ost; data tabel sementara dilewati. Gunakan ekspresi reguler default atau kustom untuk memfilter tabel bayangan. Tabel di tujuan mungkin terkunci. Penting Jangan gunakan pt-online-schema-change pada database sumber selama migrasi — hal ini akan menyebabkan tugas DTS gagal. |
| Retry Time for Failed Connections | Jendela waktu selama DTS mencoba ulang koneksi yang terputus. Rentang valid: 10 hingga 1.440 menit. Default: 720 menit. Atur minimal 30 menit. Jika DTS terhubung kembali dalam jendela ini, tugas dilanjutkan secara otomatis; jika tidak, tugas gagal. DTS mengenakan biaya untuk instans selama percobaan ulang. Jika beberapa tugas menggunakan sumber atau tujuan yang sama, nilai yang paling baru diatur akan berlaku. |
| Configure ETL | Pilih Yes untuk menggunakan fitur extract, transform, and load (ETL) guna mentransformasi data selama migrasi. Lihat Apa itu ETL? dan Konfigurasi ETL dalam tugas migrasi data atau sinkronisasi data. |
Langkah 7: Jalankan pemeriksaan awal
Klik Next: Save Task Settings and Precheck.
DTS menjalankan pemeriksaan awal secara otomatis. Tugas tidak dapat dimulai hingga semua item pemeriksaan awal lolos.
Jika item pemeriksaan awal gagal, klik View Details, perbaiki masalahnya, lalu klik Precheck Again.
Jika peringatan muncul dan dapat diabaikan, klik Confirm Alert Details, lalu Ignore, kemudian OK, dan klik Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
Untuk melihat parameter API untuk konfigurasi ini, arahkan kursor ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters.
Langkah 8: Beli instans migrasi
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 ke default resource group. Lihat Apa itu Resource Management? |
| Instance Class | Pilih kelas instans berdasarkan kecepatan migrasi yang dibutuhkan. Kelas yang lebih tinggi mendukung migrasi lebih cepat. Lihat Kelas instans migrasi data. |
Langkah 9: Mulai migrasi
Baca dan terima Data Transmission Service (Pay-as-you-go) Service Terms dengan memilih kotak centang.
Klik Buy and Start, lalu klik OK pada pesan konfirmasi.
Lacak progres migrasi di halaman Data Migration.