ApsaraDB RDS untuk MySQL menyediakan dua metode untuk meningkatkan versi utama database. Anda dapat langsung meningkatkan versi database di Konsol atau membeli instans ApsaraDB RDS untuk MySQL baru yang menjalankan versi lebih baru dan menggunakan tugas migrasi data Data Transmission Service (DTS) untuk memigrasikan data dari instans asli ke instans baru—proses ini secara tidak langsung meningkatkan versi database.
ApsaraDB RDS untuk MySQL tidak mendukung penurunan versi database secara langsung dari Konsol. Anda dapat membeli instans RDS yang menjalankan versi sebelumnya dan menggunakan DTS untuk memigrasikan data dari instans dengan versi lebih baru ke instans dengan versi sebelumnya. Setelah migrasi berhasil diverifikasi, Anda dapat melepas instans dengan versi lebih baru.
Pilih metode peningkatan
Baik Metode 1: Langsung tingkatkan versi database di Konsol maupun Metode 2: Tingkatkan versi database menggunakan DTS mendukung peningkatan untuk semua versi utama MySQL, termasuk dari MySQL 5.5 ke 5.6, 5.6 ke 5.7, dan 5.7 ke 8.0. Sebelum meningkatkan database, pilih metode peningkatan yang sesuai berdasarkan informasi berikut:
Jika instans Anda termasuk dalam salah satu dari empat kategori berikut dan konfigurasinya memenuhi persyaratan yang sesuai, gunakan Metode 1: Langsung tingkatkan versi database di Konsol.
CatatanInstans Serverless tidak mendukung peningkatan langsung dari Konsol. Anda harus menggunakan Metode 2: Tingkatkan versi database menggunakan DTS.
Edisi Kluster (ESSD dan disk performa premium)
Pembatasan replikasi grup: Anda tidak dapat meningkatkan instans Edisi Kluster yang menggunakan MySQL Group Replication (MGR).
Pembatasan proksi database (jika berlaku): Versi minor proksi database harus 1.13.41 atau lebih baru.
Pembatasan status instans: Status instans harus Running, dan node primer serta sekunder harus dalam kondisi sehat tanpa latensi replikasi.
Pembatasan engine: Database dan semua tabelnya harus menggunakan Mesin penyimpanan InnoDB.
Instans tidak boleh menggunakan tipe instans yang telah dihentikan.
Edisi Ketersediaan Tinggi (ESSD dan disk performa premium)
Pembatasan proksi database (jika berlaku): Versi minor proksi database harus 1.13.41 atau lebih baru.
Batasan status Instans: Status instans harus Running, dan node utama dan sekunder harus sehat dan tidak memiliki latensi replikasi.
Pembatasan engine: Database dan semua tabelnya harus menggunakan Mesin penyimpanan InnoDB.
Instans tidak boleh menggunakan tipe instans yang telah dihentikan.
Edisi Ketersediaan Tinggi (disk lokal performa premium)
Pembatasan enkripsi: Fitur Enkripsi Data Transparan (TDE) harus dinonaktifkan. Setelah TDE diaktifkan, fitur tersebut tidak dapat dinonaktifkan. Jika TDE diaktifkan pada instans Anda, Anda harus menggunakan Metode 2: Tingkatkan versi database menggunakan DTS.
Pembatasan proksi database (jika berlaku): Versi minor proksi database harus 1.13.41 atau lebih baru.
Pembatasan status instans: Status instans harus Running, dan node primer serta sekunder harus dalam kondisi sehat tanpa latensi replikasi.
Pembatasan jumlah tabel: Jumlah tabel tidak boleh melebihi 1 juta.
Pembatasan engine: Database dan semua tabelnya harus menggunakan Mesin penyimpanan InnoDB.
Pembatasan tipe instans: Versi database setelah peningkatan harus mendukung tipe instans asli dari instans primer dan instans hanya baca. Instans tidak boleh menggunakan tipe instans yang telah dihentikan. Untuk informasi selengkapnya, lihat Tipe instans primer ApsaraDB RDS untuk MySQL.
Edisi Dasar (ESSD dan disk performa premium)
Pembatasan status instans: Status instans harus Running.
Pembatasan engine: Database dan semua tabelnya harus menggunakan Mesin penyimpanan InnoDB.
Instans tidak boleh menggunakan tipe instans yang telah dihentikan.
Jika instans Anda tidak termasuk dalam salah satu dari empat kategori sebelumnya atau jika TDE diaktifkan, gunakan Metode 2: Tingkatkan versi database menggunakan DTS.
Jika instans Anda termasuk dalam salah satu dari empat kategori sebelumnya tetapi konfigurasinya tidak memenuhi persyaratan, Anda dapat memodifikasi konfigurasi seperti yang dijelaskan dalam tabel berikut, lalu menggunakan Metode 1: Langsung tingkatkan versi database di Konsol atau Metode 2: Tingkatkan versi database menggunakan DTS.
Masalah
Solusi
Status instans bukan Running; misalnya, berstatus Restarting.
Tunggu hingga tugas saat ini selesai sebelum meningkatkan versi database.
Jumlah tabel pada instans Edisi Ketersediaan Tinggi dengan disk lokal performa premium melebihi 1 juta.
Hapus tabel yang tidak diperlukan sebelum peningkatan.
Beberapa database atau tabel tidak menggunakan engine InnoDB.
Jalankan perintah
ALTER TABLE <table_name> engine=InnoDB;untuk beralih ke engine InnoDB.Instans menggunakan tipe instans yang telah dihentikan.
Tingkatkan tipe instans sebelum meningkatkan versi database. Untuk informasi selengkapnya, lihat Ubah konfigurasi.
Versi minor proksi database tidak memenuhi persyaratan.
Tingkatkan versi minor proksi database ke 1.13.41 atau lebih baru. Untuk informasi selengkapnya, lihat Tingkatkan versi minor engine proksi database.
Tipe penyimpanan instans adalah SSD standar.
Pertama-tama, tingkatkan SSD standar menjadi enterprise SSD (ESSD), lalu tingkatkan versi database.
Untuk meningkatkan versi utama database engine lainnya, lihat topik berikut:
Metode 1: Langsung tingkatkan versi database di Konsol
Persiapan
Pahami perbedaan dan manfaat versi baru
Peningkatan dari 5.6 ke 5.7: Untuk informasi tentang perbedaan fitur, lihat Lampiran 4: Perbedaan fitur antara MySQL 5.7 dan MySQL 5.6. Untuk informasi tentang manfaat peningkatan, lihat Lampiran 2: Manfaat peningkatan dari MySQL 5.6 ke MySQL 5.7.
Peningkatan dari 5.7 ke 8.0: Untuk informasi tentang perbedaan fitur, lihat Lampiran 3: Perbedaan fitur antara MySQL 8.0 dan MySQL 5.7. Untuk informasi tentang manfaat peningkatan, lihat Lampiran 1: Manfaat peningkatan dari MySQL 5.7 ke MySQL 8.0.
Pahami proses peningkatan dan dampaknya
Pembatasan rentang versi: Anda tidak dapat melakukan peningkatan lintas versi utama. Secara default, instans akan ditingkatkan ke versi minor terbaru dari versi utama target. Misalnya, Anda tidak dapat langsung meningkatkan instans dari MySQL 5.6 ke MySQL 8.0. Anda harus terlebih dahulu meningkatkannya ke MySQL 5.7, lalu ke MySQL 8.0.
Pembatasan penurunan versi: Anda tidak dapat menurunkan versi secara langsung dari Konsol. Anda dapat membeli instans RDS yang menjalankan versi sebelumnya dan menggunakan DTS untuk memigrasikan data dari instans dengan versi lebih baru ke instans dengan versi sebelumnya. Setelah migrasi berhasil diverifikasi, Anda dapat melepas instans dengan versi lebih baru.
Proses peningkatan untuk instans dengan disk lokal performa premium: Sistem terlebih dahulu meningkatkan instans sekunder. Setelah peningkatan selesai, terjadi alih bencana primer/sekunder. Kemudian, sistem meningkatkan instans primer. Peningkatan ini menyebabkan gangguan layanan selama 15 detik. Kami menyarankan agar Anda melakukan peningkatan selama jam sepi.
Proses peningkatan untuk instans dengan ESSD: Sistem membuat node baru dan melakukan peningkatan pada node tersebut. Setelah node baru ditingkatkan, sistem mengalihkan koneksi ke node tersebut. Peningkatan ini menyebabkan gangguan layanan selama 15 detik. Kami menyarankan agar Anda melakukan peningkatan selama jam sepi.
Periksa konfigurasi instans dan database
Periksa kata kunci yang dicadangkan: Periksa user-defined function untuk memastikan tidak menggunakan kata kunci yang dicadangkan.
Periksa cadangan penuh: Pastikan pencadangan data penuh yang berhasil telah dibuat dalam minggu terakhir. Jika belum, lakukan pencadangan data penuh.
Periksa mekanisme penghubungan ulang otomatis: Selama peningkatan database, RDS melakukan alih bencana instans. Kami menyarankan agar Anda melakukan peningkatan selama jam sepi atau memastikan aplikasi Anda memiliki mekanisme penghubungan ulang otomatis. Untuk informasi selengkapnya tentang dampak alih bencana instans, lihat Dampak alih bencana instans.
Periksa ruang penyimpanan yang tersedia: Pastikan Anda memiliki cukup ruang disk kosong sebelum peningkatan. Kami menyarankan menyisakan setidaknya 10 GB.
Sesuaikan kebijakan pembersihan log: Tingkatkan periode retensi dan persentase penggunaan penyimpanan maksimum untuk log lokal. Untuk informasi selengkapnya, lihat Ubah kebijakan log lokal.
Cadangkan parameter instans: Untuk memastikan stabilitas dan kinerja versi MySQL baru, RDS menghentikan beberapa parameter dari versi lama. Anda tidak dapat lagi melihat atau mengubah parameter tersebut setelah peningkatan. Sebelum melakukan peningkatan versi utama, cadangkan catatan modifikasi parameter terkait untuk operasi dan audit di masa mendatang.
Untuk peningkatan dari 5.6 ke 5.7 atau dari 5.7 ke 8.0, Anda harus melakukan pemeriksaan tambahan berikut:
Peningkatan dari 5.6 ke 5.7
Periksa indeks teks penuh dan informasi versi: Untuk database pada instans RDS for MySQL 5.6 dengan versi minor sebelum 20221130, indeks teks penuh dibuat di ruang tabel sistem. Peningkatan ke versi 5.7 dapat merusak ruang tabel tersebut. Jika instans Anda menjalankan versi minor sebelumnya, pertama-tama tingkatkan ke versi minor terbaru RDS for MySQL 5.6, lalu tingkatkan versi utama database. Untuk informasi selengkapnya, lihat FAQ.
Peningkatan dari 5.7 ke 8.0
Periksa kompatibilitas fitur: Jika prosedur tersimpan, pemicu, tampilan, atau fungsi dalam database Anda menggunakan fitur yang tidak didukung oleh MySQL 8.0, modifikasi fitur tersebut sebelum peningkatan. Jika tidak, peningkatan akan gagal.
Periksa dependensi tabel sistem: Periksa apakah layanan Anda bergantung pada tabel sistem MySQL 5.7 (tabel di database sys, mysql, information_schema, dan performance_schema). Beberapa tabel sistem di MySQL 5.7 berubah selama peningkatan ke 8.0. Misalnya, tabel mungkin dihapus, diganti namanya, atau skemanya diubah. Jika layanan Anda bergantung pada tabel-tabel ini, layanan tersebut mungkin mengalami error.
Periksa kompatibilitas tipe data: RDS for MySQL 8.0 tidak lagi mendukung beberapa tipe data dari versi sebelumnya. Jika sebuah tabel berisi bidang dengan tipe data yang tidak didukung di MySQL 8.0, Anda harus menyelesaikan masalah ini dengan menjalankan
REPAIR TABLEatau dengan melakukan ekspor dan impor logis sebelum peningkatan. Untuk informasi selengkapnya, lihat Preparing Your Installation for Upgrade.Periksa nilai
comment: Versi minor MySQL 8.0 mulai 20221231 memperkenalkan parameterloose_upgrade_clear_invalid_comment. Ketika parameter ini diatur keON(nilai default), karakter acak dalam komentar tabel, bidang, dan indeks akan secara otomatis dihapus selama peningkatan untuk mencegah kegagalan. Oleh karena itu, sebelum peningkatan, periksa apakah nilaicommentdalam tabel database Anda berisi karakter acak. Jika iya,commenttersebut akan dihapus.Periksa prosedur tersimpan: Jika prosedur tersimpan atau fungsi dalam database Anda berisi karakter acak, perbaiki sebelum peningkatan untuk mencegah kegagalan.
Periksa tipe data waktu dari MySQL 5.5 dan sebelumnya: Jika database Anda berisi tabel dengan tipe data waktu dari MySQL 5.5 atau sebelumnya, bangun ulang tabel tersebut sebelum meningkatkan ke MySQL 8.0 untuk mencegah kegagalan.
Jalankan pernyataan SQL berikut untuk memeriksa apakah instans database Anda berisi tabel dengan tipe data waktu dari MySQL 5.5 atau sebelumnya:
# Tampilkan tipe data waktu lama. SET SESSION show_old_temporals= ON; # Kueri untuk tabel yang berisi tipe data waktu lama. SELECT TABLE_NAME, COLUMN_NAME, COLUMN_TYPE FROM information_schema.columns WHERE COLUMN_TYPE IN ("time /* 5.5 binary format */ ", "timestamp /* 5.5 binary format */", "datetime /* 5.5 binary format */ ");Jika sebuah tabel berisi tipe data waktu dari MySQL 5.5 atau sebelumnya, Anda dapat menjalankan perintah berikut untuk membangun ulang skema tabel:
# Bangun ulang tabel. ALTER TABLE <table_name> FORCE;
Pengujian dan simulasi pra-peningkatan
Pengujian sintaksis: Sebelum peningkatan, buat instans RDS baru dengan versi lebih baru untuk menguji kompatibilitas sintaksis. Hal ini membantu menghindari masalah di mana sintaksis atau fitur dari versi sebelumnya tidak didukung setelah peningkatan.
Simulasi peningkatan: Sebelum peningkatan, kloning instans asli dan gunakan instans hasil kloning untuk menguji peningkatan. Setelah Anda memastikan bahwa semua fitur berfungsi sebagaimana mestinya, tingkatkan instans asli.
Catatan pasca-peningkatan
Pulihkan instans ke versi lama: Anda dapat menggunakan cadangan disk cloud dari versi lama untuk memulihkan instans ke versi tersebut. Ini tidak didukung untuk instans dengan disk lokal performa premium.
Pulihkan instans ke versi baru: Anda tidak dapat menggunakan set cadangan dari versi lama untuk memulihkan instans ke versi baru. Untuk melakukan pemulihan, gunakan set cadangan yang dibuat setelah instans ditingkatkan.
Prosedur
Pilih metode peningkatan berdasarkan skenario peningkatan:
Metode peningkatan | Skenario peningkatan |
Lakukan pemeriksaan awal lalu tingkatkan |
|
Peningkatan langsung |
|
Lakukan pemeriksaan awal lalu tingkatkan
Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans Anda berada. Lalu, klik ID instans.
Di panel navigasi kiri, klik Major Version Upgrade untuk membuka halaman Upgrade Check.
Dari daftar drop-down Select upgrade version, pilih versi target, lalu klik Create upgrade check report. Untuk informasi selengkapnya tentang laporan tersebut, lihat Deskripsi laporan pemeriksaan peningkatan versi utama.
Setelah pemeriksaan selesai dan Anda memastikan tidak ada risiko, beralihlah ke tab Upgrade Instance.
Dari daftar drop-down Select upgrade version, pilih versi target dan klik Upgrade Instance.
Di kotak dialog Major Engine Version Upgrade, konfirmasi versi target, pilih Switching Time, lalu klik Upgrade.
Peningkatan langsung
Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans Anda berada. Lalu, klik ID instans.
Di bagian , klik Upgrade Major Engine Version.
CatatanJika opsi ini tidak tersedia, periksa apakah instans Anda memenuhi persyaratan peningkatan.
Di kotak dialog yang muncul, pilih Switch Now atau Switch Within Maintenance Window, lalu klik OK.
Switch Now: Memulai peningkatan segera.
Switch Within Maintenance Window: Peningkatan dijalankan dalam jendela pemeliharaan yang ditentukan. Anda juga dapat mengklik Settings di samping Maintenance Window untuk mengubah jendela pemeliharaan dengan cepat.
CatatanSelama peningkatan, status instans adalah Upgrading Version.
Metode 2: Tingkatkan versi database menggunakan DTS
Untuk instans yang tidak mendukung peningkatan langsung dari Konsol, Anda dapat membuat instans baru dengan versi database lebih baru, lalu menggunakan tugas migrasi data DTS untuk memigrasikan data dari instans asli ke instans baru—proses ini secara tidak langsung meningkatkan versi database. Proses ini mencakup langkah-langkah berikut:
Contoh: Anda memiliki instans MySQL 5.7 dengan TDE diaktifkan, yang tidak dapat ditingkatkan langsung dari Konsol. Dalam kasus ini, Anda dapat membuat instans baru yang menjalankan MySQL 8.0, memigrasikan data dari instans asli ke instans baru, dan akhirnya melepas instans asli—hal ini secara tidak langsung meningkatkan versi database.
Setelah migrasi data lintas versi, uji kompatibilitas dan pantau instans selama periode tertentu. Setelah Anda memastikan semuanya normal, lepaskan instans asli.
Lampiran 1: Manfaat peningkatan dari MySQL 5.7 ke MySQL 8.0
Meningkatkan keamanan dan memberikan fleksibilitas lebih besar dalam manajemen akun.
Mendukung pembuatan dan manajemen kelompok sumber daya.
Menyempurnakan fitur Mesin penyimpanan InnoDB.
Menambah dukungan untuk set karakter baru, tipe data, sintaksis, kunci pencadangan baru, dan flag optimizer_switch.
Menyempurnakan fungsionalitas JSON dan XML.
Menyempurnakan fitur pengoptimal.
Meningkatkan kinerja replikasi.
Mendukung pembuatan indeks multi-nilai dan optimasi penurunan kondisi turunan.
Mendukung pembacaan tabel grant MySQL.
Mendukung kontrol alokasi sumber daya.
Lampiran 2: Manfaat peningkatan dari MySQL 5.6 ke MySQL 5.7
Menambah fitur seperti manajemen password, penguncian akun, dan koneksi terenkripsi untuk meningkatkan keamanan database.
Mendukung operasi DDL Online, seperti mengganti nama indeks menggunakan RENAME INDEX.
Meningkatkan skalabilitas engine InnoDB dan kinerja tabel temporary untuk pemuatan data lebih cepat.
Mendukung JSON.
Mendukung Index Condition Pushdown (ICP) untuk tabel partisi dan indeks spasial InnoDB baru.
Mengoptimalkan sebagian besar parser, pengoptimal, dan model biaya untuk meningkatkan kemampuan pemeliharaan, skalabilitas, dan kinerja database.
Memperluas rentang set karakter yang didukung, termasuk set karakter GB18030 yang ditentukan oleh standar nasional Tiongkok.
Menyediakan plugin parser teks penuh ngram, yang mendukung bahasa Tiongkok, Jepang, dan Korea.
Mengoptimalkan thread dump sumber untuk mengurangi kontensi kunci dan meningkatkan throughput sumber.
Mengurangi latensi replikasi secara signifikan.
Menambah database sistem sys, yang menyediakan berbagai metrik dan mengurangi penggunaan penyimpanan, sehingga meningkatkan kegunaan database secara signifikan.
Lampiran 3: Perbedaan fitur antara MySQL 8.0 dan MySQL 5.7
Tabel berikut hanya mencantumkan beberapa perbedaan penting antara MySQL 8.0 dan 5.7. Untuk informasi selengkapnya tentang perbedaan lainnya, lihat MySQL Release Notes.
Fitur | 5.7 | 8.0 |
GRANT ... IDENTIFIED BY PASSWORD syntax | Didukung | Tidak didukung |
Fungsi PASSWORD() | Didukung | Tidak didukung |
FLUSH QUERY CACHE dan RESET QUERY CACHE syntax | Didukung | Tidak didukung |
Parameter untuk variabel sistem SQL_MODE: DB2, MAXDB, MSSQL, MYSQL323, MYSQL40, ORACLE, POSTGRESQL, NO_FIELD_OPTIONS, NO_KEY_OPTIONS, NO_TABLE_OPTIONS | Didukung | Tidak didukung |
Pengurutan otomatis default untuk sintaksis GROUP BY | Dukungan | Tidak didukung |
Sintaksis yang berisi kata kunci EXTENDED atau PARTITIONS | Didukung | Tidak didukung |
Fungsi enkripsi seperti ENCODE(), DECODE(), dan ENCRYPT() | Didukung | Tidak didukung |
Fungsi terkait analisis spasial | Didukung | Tidak didukung |
Fungsi yang sebelumnya menerima argumen string WKB atau geometri tetapi tidak lagi menerima argumen geometri | Didukung | Tidak didukung |
Mengurai \N sebagai NULL | Didukung | Tidak didukung |
Fungsi PROCEDURE ANALYSE() | Didukung | Tidak didukung |
Membuat tabel partisi menggunakan engine penyimpanan NDB | Didukung | Tidak didukung |
Mengompresi tabel temporary menggunakan engine penyimpanan InnoDB | Didukung | Tidak didukung |
Fungsi JSON_APPEND() | Didukung | Tidak didukung |
Dukungan untuk menempatkan partisi tabel di ruang tabel bersama | Didukung | Tidak didukung |
Sintaksis ALTER TABLE ... UPGRADE PARTITIONING | Didukung | Tidak didukung |
Lampiran 4: Perbedaan fitur antara MySQL 5.7 dan MySQL 5.6
Tabel berikut hanya mencantumkan beberapa perbedaan penting antara MySQL 5.7 dan 5.6. Untuk informasi selengkapnya tentang perbedaan lainnya, lihat MySQL Release Notes.
Fitur | 5.6 | 5.7 |
CREATE...AS SELECT dalam mode GTID | Dukungan | Tidak didukung |
Menggunakan tabel temporary dalam transaksi dalam mode GTID | Didukung | Tidak didukung |
Menentukan kunci partisi dalam tabel partisi | Didukung | Tidak didukung |
Sintaksis ENGINE_NO_CACHE | Didukung | Tidak didukung |
Indeks Tak Terlihat | Dukungan | Tidak didukung |
Sintaksis UPDATE non_affected_rows INSERT | Didukung | Tidak didukung |
Perintah terkait proksi | Menggunakan metode perintah SET | Menggunakan mode Call Procedure |
Engine TokuDB, Sphinx, RocksDB, dan Memory | Didukung | Tidak didukung |
Fungsi str_ord() | Didukung | Tidak didukung |
Fungsi raiseerror() | Didukung | Tidak didukung |
OPTIMIZE TABLE table ASYNC | Dukungan | Tidak didukung |
ENGINE_NO_CACHE | Didukung | Tidak didukung |
Tabel INFORMATION.TABLE_UTILIZATION | Dukungan | Tidak didukung |
Kolom requesting_thd_id dan blocking_thd_id dalam tabel INFORMATION_SCHEMA.INNODB_LOCK_WAITS | Didukung | Tidak didukung |
Tabel INFORMATION_SCHEMA.INNODB_RSEG | Didukung | Tidak didukung |
Tabel INFORMATION_SCHEMA.INNODB_IO_STATUS | Didukung | Tidak didukung |
Fitur kompresi kolom | Didukung | Tidak didukung |
Query Plan Cache | Didukung | Tidak didukung |
Sintaksis Limit + Union | Tanda kurung tidak diperlukan. | Tanda kurung diperlukan. |
Sintaksis SHOW FULL PROCESSLIST | Di MySQL 5.7, kolom memory dan query_memory dihapus dari hasil. | |
max_statement_time dan max_execution_time | Di MySQL 5.7, max_statement_time dihapus, dan hanya max_execution_time yang dipertahankan. | |
Sintaksis RDS_SQL_MAX_AFFECTED | Di MySQL 5.7, Anda tidak dapat lagi menggunakan RDS_SQL_MAX_AFFECTED untuk membatasi jumlah catatan yang dipengaruhi oleh satu pernyataan UPDATE atau DELETE. Gunakan variabel rds_sql_max_affected_rows sebagai gantinya. | |
Penyesuaian optimasi kinerja konkurensi | Di MySQL 5.7, parameter berikut tidak lagi didukung untuk kontrol konkurensi:
| |
Penyesuaian variabel jumlah koneksi | Variabel berikut dihapus di MySQL 5.7:
| |
Penyesuaian terkait replikasi |
| |
Penyesuaian terkait log | Penyesuaian log error MySQL 5.7:
| |
Tipe data waktu lama ( | Sebelum versi 5.6.4, tipe data waktu lama tidak mendukung mikrodetik. | Tipe data waktu mendukung presisi mikrodetik. Penting Selama peningkatan dari 5.6 ke 5.7, sistem mendeteksi dan membangun ulang tabel yang berisi bidang dengan tipe data waktu lama. Hal ini memperlambat proses peningkatan. |
Lampiran 5: Perbedaan fitur antara MySQL 5.5 dan MySQL 5.6
Tabel berikut hanya mencantumkan beberapa perbedaan penting antara MySQL 5.5 dan 5.6. Untuk informasi selengkapnya tentang perbedaan lainnya, lihat MySQL 5.6 Reference Manual.
Fitur | MySQL 5.5 | MySQL 5.6 |
Indeks teks penuh | Tidak didukung | Didukung |
DDL online InnoDB | Tidak didukung | Didukung sebagian |
REDO | Mendukung maksimal 4 GB | Mendukung maksimal 512 GB |
Pengosongan halaman kotor | Tunggal-thread | Menggunakan thread pengosongan terpisah |
Purge | Tunggal-thread | Multi-thread |
EXCHANGE PARTITION | Tidak didukung | Didukung |
Pemilihan partisi eksplisit dalam DML | Tidak didukung | Didukung |
INFORMATION_SCHEMA | MySQL 5.6 menyediakan lebih banyak informasi tentang kolam buffer dan metadata lebih lengkap tentang tabel, indeks, dan bidang. | |
PERFORMANCE_SCHEMA | Performance Schema di MySQL 5.6 menambahkan lebih banyak informasi pemantauan dan format tampilan. | |
Replikasi | Penyempurnaan dan perubahan replikasi di MySQL 5.6 meliputi:
Penting Setelah instans RDS for MySQL ditingkatkan dari 5.5 ke 5.6, instans tersebut secara otomatis beralih ke mode replikasi berbasis GTID. | |
Pengoptimal | MySQL 5.6 menyempurnakan pengoptimal dengan fitur-fitur berikut:
| |
Tidak didukung | Didukung | |
Tidak didukung | Didukung | |
Tidak didukung | Didukung | |
Tidak didukung | Didukung | |
Tidak didukung | Didukung | |
FAQ
T: Mengapa failover instans terjadi selama peningkatan? Apakah ada risiko serius lainnya?
J: Untuk memastikan stabilitas layanan, instans dengan disk lokal performa premium ditingkatkan dengan terlebih dahulu meningkatkan node sekunder lalu melakukan alih bencana. Instans dengan ESSD ditingkatkan dengan membuat node baru lalu melakukan alih bencana. Tidak ada risiko serius lainnya. Untuk informasi selengkapnya tentang dampak failover primer/sekunder, lihat Dampak failover primer/sekunder.
P: Apakah node primer dan sekunder ditingkatkan secara bersamaan?
J: Saat Anda meningkatkan disk lokal berkinerja-tinggi, instans sekunder ditingkatkan terlebih dahulu, diikuti oleh instans primer.
P: Bagaimana cara meningkatkan instans Edisi Dasar yang menjalankan MySQL 5.7 dengan SSD standar?
J: Anda tidak dapat langsung meningkatkan jenis instans ini. Untuk meningkatkan instans Edisi Dasar yang menjalankan MySQL 5.7 dengan SSD standar, Anda harus terlebih dahulu mengubah tipe penyimpanan dari SSD standar menjadi ESSD, lalu meningkatkan versi database.
P: Apakah template parameter dipertahankan setelah versi database ditingkatkan?
J: Tergantung. Jika instans menggunakan template parameter sistem sebelum peningkatan, template tersebut secara otomatis dialihkan ke template parameter sistem yang sesuai untuk versi baru. Misalnya, instans yang menggunakan template parameter MySQL_InnoDB_5.7_High-availability_Performance dialihkan ke template parameter MySQL_InnoDB_8.0_High-availability_Performance setelah peningkatan dari MySQL 5.7 ke 8.0. Namun, jika instans menggunakan template parameter kustom, template parameter tersebut tidak dipertahankan setelah peningkatan.
P: Dapatkah saya memodifikasi instans selama peningkatan versi database?
J: Tidak, Anda tidak dapat melakukannya. Anda hanya dapat melakukan operasi lain pada instans setelah peningkatan selesai.
P: Apakah versi database mendukung peningkatan otomatis?
J: Tidak, tidak mendukung. Peningkatan versi utama otomatis tidak didukung.
P: Dapatkah saya menurunkan versi database?
J: Tidak, Anda tidak dapat menurunkan versi secara langsung dari Konsol. Untuk menurunkan versi, Anda dapat membeli instans dengan versi sebelumnya dan menggunakan DTS untuk memigrasikan data dari instans dengan versi lebih baru ke instans baru tersebut. Setelah migrasi selesai, Anda dapat melepas instans dengan versi lebih baru. Untuk informasi selengkapnya, lihat Migrasi data antar instans RDS.
P: Saat saya meningkatkan instans RDS for MySQL dari 5.6 ke 5.7 atau dari 5.7 ke 8.0, peningkatan gagal. Muncul pesan "Instans saat ini memiliki indeks teks penuh dan versi minornya sebelum 20221130. Harap tingkatkan versi minor sebelum menghapus dan membangun ulang indeks teks penuh" atau "Instans saat ini berisi indeks teks penuh yang dibangun di ruang tabel sistem. Harap hapus dan bangun ulang indeks teks penuh yang sesuai sebelum melanjutkan peningkatan." Apa penyebab dan solusinya?
J: Penyebab dan solusinya adalah sebagai berikut:
Penyebab
Karena masalah historis di MySQL, saat Anda membuat indeks teks penuh pada versi awal MySQL 5.6, indeks tersebut dibangun di ruang tabel sistem. Saat Anda meningkatkan ke versi 5.7 atau 8.0, indeks teks penuh di ruang tabel sistem dapat menyebabkan korupsi ruang tabel. Oleh karena itu, Anda harus menyelesaikan masalah ini sebelum peningkatan untuk mencegah korupsi data dan ketidakaksesan.
CatatanMasalah ini telah diperbaiki di RDS for MySQL 5.6 versi 20221130. Indeks teks penuh kini dibangun di ruang tabel terpisah.
Solusi
PentingIndeks teks penuh pada versi awal RDS for MySQL 5.6 dibuat di ruang tabel sistem. Oleh karena itu, pastikan versi yang Anda tingkatkan adalah RDS for MySQL 5.6 20221130 atau lebih baru sebelum meningkatkan ke RDS for MySQL 5.7. Jika Anda menggunakan versi sebelumnya, tingkatkan terlebih dahulu ke versi terbaru RDS for MySQL 5.6.
Berdasarkan nama tabel dalam prompt, hapus indeks teks penuh yang dibangun di ruang tabel sistem.
# Hapus indeks teks penuh. ALTER TABLE $table_name DROP INDEX $fts_name;Buat ulang indeks teks penuh.
# Buat ulang indeks teks penuh. ALTER TABLE $table_name ADD FULLTEXT INDEX $fts_name;Setelah membuat indeks, Anda dapat menjalankan pernyataan SQL berikut untuk memeriksa indeks teks penuh pada instans saat ini. Pernyataan ini mengembalikan indeks teks penuh apa pun yang dibangun di ruang tabel sistem. Jika kueri mengembalikan hasil kosong, peningkatan dari RDS for MySQL 5.6 ke RDS for MySQL 5.7 tidak akan gagal karena masalah ini.
# Kueri untuk indeks teks penuh yang dibangun di ruang tabel sistem. SELECT NAME FROM information_schema.INNODB_SYS_TABLES WHERE TABLE_ID IN ( SELECT CONV(SUBSTRING_INDEX(SUBSTRING_INDEX(NAME, '_', -4),'_', 1),16,10) FROM INNODB_SYS_TABLES WHERE NAME LIKE '%fts_00000000%' AND SPACE = 0);
P: Saat saya meningkatkan instans RDS for MySQL dari 5.7 ke 8.0, muncul error
267 - Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation '='. Bagaimana cara menanganinya?J: Periksa set karakter dan aturan pengurutan di MySQL. Jika Anda menggunakan utf8mb4_general_ci, jalankan pernyataan SQL berikut untuk mengubahnya menjadi utf8mb4_0900_ai_ci.
# Ubah set karakter dan aturan pengurutan database. ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci; # Ubah set karakter dan aturan pengurutan tabel. ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; # Ubah set karakter dan aturan pengurutan bidang. ALTER TABLE table_name CHANGE column_name column_name type CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;Jika Anda membuat tabel dengan aturan pengurutan utf8mb4_general_ci di MySQL 5.7 lalu meningkatkan ke MySQL 8.0, sistem menggunakan utf8mb4_0900_ai_ci sebagai aturan pengurutan default. Jika Anda menjalankan kueri yang membandingkan kolom yang menggunakan utf8mb4_general_ci dengan kolom yang menggunakan utf8mb4_0900_ai_ci, MySQL tidak dapat memproses dua aturan pengurutan yang berbeda, sehingga menghasilkan error.
P: Apakah waktu koneksi sementara untuk peningkatan versi utama selalu 15 detik, terlepas dari apakah instans hanya baca ada atau tidak?
J: Ya, demikian. Kami menyarankan agar Anda melakukan peningkatan selama jam sepi.
Operasi API terkait
Operasi API | Deskripsi |
Menigkatkan versi utama database instans RDS. |