Anda mungkin perlu mengubah set karakter tabel untuk memenuhi kebutuhan bisnis, misalnya dari gbk ke utf8mb4. Penggunaan perintah ALTER secara langsung akan mengunci tabel, yang dapat berdampak signifikan terhadap layanan jika tabel tersebut berukuran besar.
Topik ini menjelaskan metode untuk mengubah set karakter pada instans ApsaraDB RDS for MySQL dengan gangguan layanan minimal. Prosesnya melibatkan pembuatan skema tabel dengan set karakter baru di instans tujuan, migrasi data dari instans sumber menggunakan Data Transmission Service (DTS), serta penerapan solusi rollback atau solusi dual-write untuk memastikan transisi yang lancar.
Peringatan
-
Sebelum mengubah set karakter, uji aplikasi dan pernyataan SQL Anda untuk memastikan kompatibilitasnya dengan set karakter baru.
-
Selama migrasi data penuh, DTS mengonsumsi sumber daya baca dan tulis pada kedua instans (sumber dan tujuan), yang dapat meningkatkan beban database. Sebelum memulai, evaluasi performa kedua instans dan pertimbangkan untuk melakukan migrasi data selama jam sepi.
-
Jika suatu tabel di instans sumber tidak memiliki primary key atau unique constraint dan kolom-kolomnya tidak menjamin keunikan, migrasi tersebut dapat menghasilkan data duplikat di instans tujuan.
Langkah 1: Ekspor dan impor skema tabel
Dalam contoh ini, semua instans yang diakses melalui Data Management (DMS) menggunakan Flexible Control Mode.
-
Ekspor skrip skema untuk tabel-tabel yang ingin Anda ubah set karakternya dari instans sumber.
-
Login ke instans sumber menggunakan DMS. Untuk informasi lebih lanjut, lihat Login ke instans ApsaraDB RDS menggunakan DMS.
-
Di bilah navigasi atas, pilih .
CatatanUntuk melakukan operasi ini, Anda harus terlebih dahulu mengaktifkan Drop-down Menus in Top Navigation Bar di menu pengaturan, yang dapat diakses melalui ikon di pojok kanan atas.
-
Konfigurasikan pengaturan ekspor.
CatatanParameter yang diperlukan dan proses konfigurasi dapat berbeda tergantung pada mode manajemen instans tujuan. Untuk informasi lebih lanjut, lihat Export databases.
Setting
Description
Data Export Type in Application
Pilih Database Export.
Database name
Pilih database yang ingin Anda ekspor.
CatatanAnda harus memiliki izin yang diperlukan untuk mengekspor database tersebut. Untuk informasi lebih lanjut, lihat View my permissions.
Exported table
Dalam contoh ini, Specific Tables dipilih. Anda dapat memilih Specific Tables atau All Tables sesuai kebutuhan Anda.
CatatanJika Anda memilih Specific Tables, Anda harus memilih tabel dan mengonfigurasi kondisi filter di sisi kanan halaman.
Export content
Pilih Code Structure.
File Format
Dalam contoh ini, SQL dipilih secara default dan tidak dapat diubah.
Exported Structure Type
Pilih jenis skema yang akan diekspor sesuai kebutuhan bisnis Anda.
-
Procedure
-
Function
-
Trigger
-
View
-
Event
CatatanJenis skema yang didukung bervariasi tergantung pada tipe database. Opsi yang ditampilkan di konsol bersifat final.
More Options
Klik Big Data Export Options atau SQL Script Options, lalu pilih opsi yang diperlukan.
-
-
Klik Submit an application dan tunggu tiket disetujui.
-
Setelah tiket disetujui, di bagian Download, klik Download Exported File. Tautan unduhan berlaku selama 24 jam. Pastikan Anda mengunduh file tersebut dalam periode ini.
-
-
Ekstrak file yang telah diunduh. Lalu, buka skrip skema dan modifikasi konfigurasi set karakter menjadi set karakter target Anda.
-
Beli instans ApsaraDB RDS for MySQL baru dengan spesifikasi yang sama seperti instans sumber. Untuk informasi lebih lanjut, lihat Create an ApsaraDB RDS for MySQL instance.
-
Impor skrip skema yang telah dimodifikasi ke instans ApsaraDB RDS for MySQL baru.
-
Login ke instans ApsaraDB RDS for MySQL baru menggunakan DMS. Untuk informasi lebih lanjut, lihat Login ke instans ApsaraDB RDS menggunakan DMS.
-
Di bilah navigasi atas, pilih .
-
Konfigurasikan pengaturan impor.
CatatanParameter yang diperlukan dan proses konfigurasi dapat berbeda tergantung pada mode manajemen instans. Untuk informasi lebih lanjut, lihat Import data.
Parameter
Description
Data Change Type in Application
Pilih Large Data Import.
Database
Database tujuan untuk impor.
CatatanUntuk instans dalam Flexible atau Stable Control Mode, Anda harus login ke database terlebih dahulu sebelum dapat memilihnya.
File Encoding
Pilih pengkodean karakter file impor:
-
UTF-8
-
GBK
-
ISO-8859-1
-
Auto-detect
Import Mode
Pilih mode impor. Dua mode didukung:
-
Speed Mode: Selama fase eksekusi, sistem membaca file dan langsung menjalankan pernyataan SQL pada database tujuan. Mode ini lebih cepat tetapi kurang aman dibandingkan Security Mode.
CatatanSecara default, aturan keamanan untuk mode Speed Mode tidak mengizinkan impor data dalam Speed Mode. Anda dapat mengaktifkan fitur ini untuk aturan keamanan terkait di .
-
Security Mode: Selama fase pemeriksaan awal, sistem mengurai file dan menyimpan cache data SQL atau CSV. Selama fase eksekusi, sistem membaca dari cache dan mengeksekusi pernyataan pada database tujuan. Mode ini menawarkan keamanan lebih baik tetapi lebih lambat dibandingkan Speed Mode.
File Type
Pilih jenis file yang Anda impor.
-
SQL script: Dalam mode Security Collaboration, hanya tipe perintah INSERT dan REPLACE yang diizinkan secara default. DBA atau administrator dapat mengubah pengaturan di Security Rules > SQL Correct > Large Data Import.
-
CSV: Pemisah dalam file harus berupa koma.
-
Excel: File Excel dapat berisi header (atribut) atau hanya data.
Attachment
Klik File untuk mengunggah lampiran.
Catatan-
Tipe file yang didukung: SQL, CSV, TXT, XLSX, dan ZIP.
-
Ukuran file maksimum adalah 5 GB.
Other Options
Pilih apakah akan mengabaikan error.
-
Jangan abaikan (tidak dicentang): Default. Jika terjadi error, sistem akan berhenti mengeksekusi pernyataan SQL berikutnya dan melaporkan error.
-
Abaikan (dicentang): Jika terjadi error, sistem akan mengabaikannya dan melanjutkan eksekusi pernyataan SQL berikutnya.
-
-
Klik Submit an application. Tunggu hingga pemeriksaan awal sistem berhasil. Jika pemeriksaan awal gagal, identifikasi dan perbaiki masalah berdasarkan prompt, lalu kirim ulang tiket.
CatatanSistem melakukan pemeriksaan awal terhadap skrip SQL yang Anda unggah. Jika Anda mengunggah file CSV, sistem akan menghasilkan pernyataan
INSERTyang sesuai. -
Setelah tiket disetujui, di bagian Perform, klik Execute Change.
-
Di kotak dialog Task Settings, pilih kapan akan mengeksekusi tiket. Anda dapat memilih untuk Execute Immediately. Jika tidak, matikan sakelar Execute Immediately dan pilih waktu mulai. Lalu, klik Confirm Execution. Kotak dialog juga menampilkan Note for Security Change: Usahakan mengeksekusi selama jam sepi.
Prosedur ini terdiri dari langkah-langkah berikut:
Execute Immediately: Ini adalah pengaturan default. Tiket dieksekusi segera setelah Anda mengklik Confirm Execution.
Scheduled Execution: Pilih waktu mulai untuk tugas. Sistem secara otomatis menjalankan tugas pada waktu yang ditentukan setelah Anda mengklik Confirm Execution.
CatatanSelama eksekusi, sistem membaca SQL yang telah diurai dalam bentuk aliran dan menjalankannya pada database dalam batch (1 MB per batch).
Di bagian Execution, Anda dapat melihat status eksekusi tugas, detail pemeriksaan SQL tugas, dan log penjadwalan.
Jika tugas yang dijeda dijalankan ulang, tugas tersebut akan berjalan dari awal atau dari titik di mana tugas dijeda, tergantung pada mode impor.
Speed mode: Jika tugas yang dijeda dijalankan ulang, skrip dijalankan atau file data diimpor dari awal.
Security mode: Jika tugas yang dijeda dijalankan ulang, skrip dijalankan atau file data diimpor dari titik di mana tugas dijeda.
-
Setelah impor berhasil, Anda dapat memverifikasi set karakter tabel dengan menjalankan perintah
show create table <table_name>;.
-
Langkah 2: Migrasi data ke instans baru
-
Login ke Data Transmission Service (DTS) console.
Catatan-
Jika Anda dialihkan secara otomatis ke konsol Data Management (DMS), klik ikon
di chatbot
di pojok kanan bawah untuk kembali ke versi sebelumnya dari konsol DTS. -
Jika Anda berada di konsol DTS baru, klik ikon
di pojok kanan bawah untuk kembali ke versi sebelumnya.
-
-
Di panel navigasi kiri, klik Data Migration.
-
Di bagian atas halaman Migration Tasks, pilih wilayah kluster tujuan.
-
Di pojok kanan atas halaman, klik Create Data Migration Task.
-
Konfigurasikan database sumber dan tujuan untuk tugas migrasi.
Category
Setting
Description
Task name
-
DTS secara otomatis menghasilkan nama tugas. Tentukan nama deskriptif agar mudah diidentifikasi. Nama tersebut tidak perlu unik.
Source database
Instance type
Pilih RDS Instance.
Instance region
Pilih wilayah tempat instans RDS sumber berada.
RDS instance ID
Pilih ID instans RDS sumber.
Database account
Masukkan akun database untuk instans RDS sumber. Akun ini harus memiliki izin baca dan tulis pada database yang akan dimigrasi.
Database password
Masukkan password untuk akun database.
CatatanSetelah Anda memasukkan informasi database sumber, Anda dapat mengklik Test Connectivity di sebelah Database Password untuk memverifikasi kebenaran informasi tersebut. Jika informasi benar, pesan Passed akan ditampilkan. Jika pesan Failed ditampilkan, klik Diagnose di sebelah pesan Failed dan sesuaikan informasi database sumber berdasarkan petunjuk.
Connection method
Pilih Non-encrypted atau SSL-encrypted. Jika Anda memilih SSL-encrypted, Anda harus terlebih dahulu mengaktifkan enkripsi SSL untuk instans RDS. Untuk informasi lebih lanjut, lihat Configure SSL encryption.
CatatanPengaturan Encryption hanya tersedia di wilayah Tiongkok daratan.
Destination database
Instance type
Pilih RDS Instance.
Instance region
Pilih wilayah tempat instans RDS tujuan berada.
RDS instance ID
Pilih ID instans RDS tujuan.
Database account
Masukkan akun database untuk instans RDS tujuan. Akun ini harus memiliki izin baca dan tulis pada database tujuan.
Database password
Masukkan password untuk akun database.
CatatanSetelah Anda memasukkan informasi database tujuan, Anda dapat mengklik Test Connectivity setelah Database Password untuk memverifikasi kebenaran informasi yang dimasukkan. Jika informasi benar, pesan Passed akan ditampilkan. Jika pesan Failed ditampilkan, klik Diagnose setelah Failed dan sesuaikan informasi database tujuan berdasarkan petunjuk.
Connection method
Pilih Non-encrypted atau SSL-encrypted. Jika Anda memilih SSL-encrypted, Anda harus terlebih dahulu mengaktifkan enkripsi SSL untuk instans RDS. Untuk informasi lebih lanjut, lihat Configure SSL encryption.
CatatanPengaturan Encryption hanya tersedia di wilayah Tiongkok daratan.
-
Setelah konfigurasi selesai, klik Add Whitelist and Proceed to Next Step di pojok kanan bawah halaman.
CatatanPada langkah ini, alamat IP server DTS secara otomatis ditambahkan ke daftar putih instans ApsaraDB RDS for MySQL untuk memastikan bahwa server DTS dapat terhubung ke instans sumber dan tujuan.
-
Pilih jenis dan objek migrasi.
Setting
Description
Migration types
Karena migrasi skema telah diselesaikan di Langkah 1, Anda tidak perlu memilih Schema Migration di sini.
-
Untuk melakukan hanya migrasi penuh, pilih hanya Full Data Migration.
PeringatanUntuk memastikan konsistensi data, jangan menulis data baru ke instans sumber selama migrasi data penuh.
-
Untuk migrasi tanpa downtime, pilih kedua opsi: Full Data Migration dan Incremental Data Migration.
CatatanOperasi SQL yang didukung selama fase migrasi data inkremental adalah INSERT, UPDATE, DELETE, CREATE TABLE, ALTER TABLE, RENAME TABLE, TRUNCATE TABLE, dan DROP TABLE.
Migration objects
Di kotak Migration Object, pilih objek-objek yang skemanya telah Anda migrasikan di Langkah 1. Lalu, klik ikon
untuk memindahkannya ke kotak Selected Objects.PeringatanJangan melakukan pemetaan nama objek, karena skema sudah dimigrasikan. Hal ini akan menyebabkan migrasi gagal.
-
-
Mulai tugas migrasi.
-
Di pojok kanan bawah halaman, klik Precheck and Start.
Catatan-
DTS melakukan pemeriksaan awal sebelum memulai tugas migrasi. Tugas hanya dapat dilanjutkan setelah lulus pemeriksaan awal.
-
Jika pemeriksaan awal gagal, klik ikon
di sebelah item pemeriksaan tertentu untuk melihat detailnya. Perbaiki masalah berdasarkan petunjuk, lalu jalankan kembali pemeriksaan awal.
-
-
Setelah pemeriksaan awal berhasil, klik Next.
-
Di kotak dialog Confirm Settings, pilih Instance Class dan centang kotak Data Transmission Service (Pay-As-You-Go) Terms of Service.
-
Klik Buy and Start untuk memulai tugas migrasi.
-
Langkah 3: Lakukan alih bencana workload
Lakukan alih bencana workload menggunakan salah satu solusi berikut, sesuai kebutuhan bisnis Anda.
-
Solusi rollback (tidak memerlukan perubahan aplikasi, tetapi rollback dapat gagal)
-
Verifikasi data yang telah dimigrasikan di instans ApsaraDB RDS for MySQL tujuan.
-
Ikuti prosedur dalam dokumen Workload switchover procedure untuk mengalihkan workload Anda dan membuat rencana rollback. Hal ini melibatkan migrasi data inkremental dari instans tujuan baru kembali ke instans sumber asli.
-
Pertahankan tugas migrasi data balik berjalan selama satu siklus bisnis. Setelah siklus tersebut, uji semua fungsionalitas. Jika semuanya berfungsi dengan baik, Anda dapat menghentikan tugas migrasi data balik yang dibuat untuk rencana rollback.
-
Opsional: Jika instans sumber tidak lagi diperlukan, Anda dapat melepasnya (jika merupakan instans pay-as-you-go) atau membatalkan langganan (jika merupakan instans subscription).
-
-
Solusi dual-write (tingkat keberhasilan rollback lebih tinggi, tetapi memerlukan perubahan aplikasi yang signifikan)
-
Modifikasi aplikasi Anda untuk menerapkan logika dual-write, di mana perubahan data ditulis secara simultan ke kedua instans (sumber dan tujuan).
-
Hentikan tugas migrasi data.
- Full data migration
Jangan hentikan tugas secara manual selama migrasi data penuh. Jika tidak, sistem mungkin gagal memigrasikan semua data. Tunggu hingga tugas migrasi berakhir secara otomatis.
- Incremental data migration
Tugas jenis ini tidak berhenti secara otomatis; Anda harus menghentikannya secara manual.
- Tunggu hingga tugas memasuki tahap Incremental Data Migration dengan status Undelayed. Lalu, hentikan penulisan ke database sumber selama beberapa menit. Selama periode ini, status Incremental Data Migration mungkin menunjukkan latensi.
- Tunggu hingga status Incremental Data Migration kembali ke Undelayed. Setelah dikonfirmasi dalam daftar, centang kotak tugas tersebut dan klik tombol StopEnd di bilah operasi batch di bagian bawah.
CatatanAnda dapat login ke instans sumber dan menjalankan
show processlist;untuk memeriksa informasi session dan memastikan tidak ada session baru yang melakukan operasi tulis. - Full data migration
-
Verifikasi data yang telah dimigrasikan di instans ApsaraDB RDS for MySQL tujuan.
-
Konfigurasikan aplikasi Anda untuk dual-write, di mana perubahan data ditulis ke kedua instans (sumber dan tujuan).
-
Pertahankan status dual-write selama satu siklus bisnis. Setelah siklus tersebut, uji semua fungsionalitas. Jika semuanya berfungsi dengan baik, Anda dapat menyesuaikan aplikasi agar hanya menulis ke instans tujuan.
-
Opsional: Jika instans sumber tidak lagi diperlukan, Anda dapat melepasnya (jika merupakan instans pay-as-you-go) atau membatalkan langganan (jika merupakan instans subscription).
-