ApsaraDB RDS untuk MySQL menyediakan dua metode untuk meningkatkan versi utama database. Anda dapat meningkatkan versi langsung melalui Konsol atau membeli instans ApsaraDB RDS untuk MySQL baru dengan versi lebih tinggi dan menggunakan Data Transmission Service (DTS) untuk migrasi data dari instans lama ke yang baru, secara tidak langsung menaikkan versi database.
ApsaraDB RDS for MySQL tidak mendukung penurunan versi langsung dari Konsol. Untuk menurunkan versi, Anda dapat membeli instans RDS dengan versi sebelumnya dan menggunakan DTS untuk memindahkan data dari instans terbaru ke instans sebelumnya. Setelah memverifikasi keberhasilan migrasi, Anda dapat melepaskan instans dengan versi terbaru.
Pilih metode peningkatan
Kedua Metode 1: Tingkatkan versi database langsung di Konsol dan Metode 2: Tingkatkan versi database menggunakan DTS didukung untuk semua versi utama MySQL, termasuk peningkatan dari MySQL 5.5 ke 5.6, 5.6 ke 5.7, dan 5.7 ke 8.0. Sebelum meningkatkan database, pilih metode yang sesuai berdasarkan informasi berikut:
-
Jika instans Anda termasuk dalam salah satu dari empat kategori berikut dan konfigurasinya memenuhi persyaratan, gunakan Metode 1: Tingkatkan versi database langsung di Konsol.
CatatanInstans tanpa server tidak mendukung peningkatan langsung dari Konsol. Anda harus menggunakan Metode 2: Tingkatkan versi database menggunakan DTS.
Edisi Kluster (ESSD dan disk performa premium)
Batasan Replikasi Grup: Anda tidak dapat meningkatkan instans Edisi Kluster yang menggunakan Replikasi Grup MySQL (MGR).
Batasan Proksi Database (jika berlaku): Versi minor proksi database harus 1.13.41 atau lebih baru.
Batasan Status Instans: Instans harus dalam status Running. Node primer dan sekunder harus sehat dan tidak memiliki latensi replikasi.
Batasan Mesin: Database dan semua tabelnya harus menggunakan mesin penyimpanan InnoDB.
Instans tidak boleh menggunakan tipe instans yang dihentikan.
Edisi Ketersediaan Tinggi (ESSD dan disk performa premium)
Batasan Proksi Database (jika berlaku): Versi minor proksi database harus 1.13.41 atau lebih baru.
Batasan Status Instans: Instans harus dalam status Running. Node primer dan sekunder harus sehat dan tidak memiliki latensi replikasi.
Batasan Mesin: Database dan semua tabelnya harus menggunakan mesin penyimpanan InnoDB.
Instans tersebut tidak boleh menggunakan tipe instans yang sudah ditinggalkan.
Edisi Ketersediaan Tinggi (disk lokal performa premium)
Batasan Enkripsi: Fitur Enkripsi Data Transparan (TDE) harus dinonaktifkan. Jika TDE diaktifkan pada instans Anda, Anda harus menggunakan Metode 2: Tingkatkan versi database menggunakan DTS.
Batasan Proksi Database (jika berlaku): Versi minor proksi database harus 1.13.41 atau lebih baru.
Batasan Status Instans: Instans harus dalam status Running. Node primer dan sekunder harus sehat dan tidak memiliki latensi replikasi.
Batasan Jumlah Tabel: Jumlah tabel tidak boleh melebihi 1 juta.
Batasan Mesin: Database dan semua tabelnya harus menggunakan mesin penyimpanan InnoDB.
Batasan Tipe Instans: Versi database setelah peningkatan harus mendukung tipe instans asli dari instans primer dan instans hanya baca. Instans tersebut tidak boleh menggunakan tipe instans yang sudah ditinggalkan. Untuk informasi lebih lanjut, lihat Tipe Instans ApsaraDB RDS untuk MySQL Primer.
Edisi Dasar (ESSD dan disk performa premium)
Batasan Status Instans: Instans harus dalam status Running.
Batasan Mesin: Database dan semua tabelnya harus menggunakan mesin penyimpanan InnoDB.
Instans tidak boleh menggunakan tipe instans usang.
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. Kemudian, Anda dapat menggunakan Metode 1: Tingkatkan versi database langsung di Konsol atau Metode 2: Tingkatkan versi database menggunakan DTS.
Masalah
Solusi
Instans berada dalam status selain Running, seperti 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 berlebihan sebelum peningkatan.
Beberapa database atau tabel tidak menggunakan mesin InnoDB.
Jalankan perintah
ALTER TABLE <table_name> engine=InnoDB;untuk beralih ke mesin InnoDB.Instans menggunakan tipe instans yang sudah ditinggalkan.
Tingkatkan tipe instans sebelum meningkatkan versi database. Untuk informasi lebih lanjut, lihat Ubah Konfigurasi Instans.
Versi minor proksi database tidak memenuhi persyaratan.
Tingkatkan versi minor proksi database ke 1.13.41 atau lebih baru. Untuk informasi lebih lanjut, lihat Tingkatkan Versi Minor Mesin Proksi Database.
Tipe penyimpanan instans adalah SSD standar.
Pertama, tingkatkan SSD standar ke SSD Perusahaan (ESSD), lalu tingkatkan versi database.
Untuk meningkatkan versi utama database dari mesin database lainnya, lihat topik-topik berikut:
Metode 1: Tingkatkan versi database secara langsung di konsol
Persiapan
-
Pahami perbedaan dan manfaat versi baru
-
Tingkatkan 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.
-
Tingkatkan 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
Batasan Rentang Versi: Anda tidak dapat melakukan peningkatan lintas versi utama. Secara default, instans akan ditingkatkan ke versi minor terbaru dari versi utama target. Contohnya, Anda tidak dapat langsung menaikkan versi instans dari MySQL 5.6 ke MySQL 8.0. Anda harus terlebih dahulu menaikkannya ke MySQL 5.7, lalu ke MySQL 8.0.
Batasan Penurunan Versi: Anda tidak dapat langsung menurunkan versi 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 lebih lama. Setelah memverifikasi bahwa migrasi berhasil, Anda dapat melepaskan instans dengan versi lebih baru.
Proses Peningkatan untuk Instans dengan Disk Lokal Performa Premium: Sistem pertama-tama meningkatkan node sekunder. Setelah peningkatan selesai, terjadi failover primer-sekunder. Kemudian, sistem meningkatkan node primer asli. Proses peningkatan menyebabkan gangguan layanan selama 30 hingga 60 detik. Kami sarankan Anda melakukan peningkatan selama jam-jam sepi.
Proses Peningkatan untuk Instans dengan ESSD: Sistem membuat node baru dan melakukan peningkatan pada node baru tersebut. Setelah peningkatan pada node baru selesai, koneksi dialihkan ke node tersebut. Proses peningkatan menyebabkan gangguan layanan selama 30 hingga 60 detik. Kami sarankan Anda melakukan peningkatan selama jam-jam sepi.
-
Periksa Konfigurasi Instans dan Database
Periksa Kata Kunci yang Dicadangkan: Periksa fungsi yang ditentukan pengguna untuk memastikan mereka tidak menggunakan kata kunci yang dicadangkan.
Periksa Cadangan Penuh: Pastikan cadangan data penuh yang berhasil dibuat dalam minggu terakhir. Jika tidak, lakukan cadangan data penuh.
Periksa Mekanisme Penyambungan Otomatis: Selama peningkatan database, RDS melakukan alih bencana instans. Kami sarankan Anda melakukan peningkatan selama jam-jam sepi atau memastikan aplikasi Anda memiliki mekanisme penyambungan otomatis. Untuk informasi lebih lanjut 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 sarankan menyisakan setidaknya 10 GB.
Sesuaikan Kebijakan Pembersihan Log: Tingkatkan periode retensi dan persentase maksimum penggunaan penyimpanan untuk log lokal. Untuk informasi lebih lanjut, lihat Ubah Kebijakan Log Lokal.
Cadangkan Parameter Instans: Untuk memastikan stabilitas dan kinerja versi MySQL baru, RDS menghapus beberapa parameter dari versi lama. Anda tidak dapat lagi melihat atau memodifikasi parameter ini setelah peningkatan. Sebelum melakukan peningkatan versi utama, cadangkan catatan modifikasi parameter relevan 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:
Tingkatkan 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 lebih awal dari 20221130, indeks teks penuh dibuat di ruang tabel sistem. Peningkatan ke versi 5.7 mungkin merusak ruang tabel. Jika instans Anda menjalankan versi minor lebih awal, tingkatkan terlebih dahulu ke versi minor terbaru RDS for MySQL 5.6, lalu tingkatkan versi utama database. Untuk informasi lebih lanjut, lihat FAQ.
Tingkatkan dari 5.7 ke 8.0
Periksa Kompatibilitas Fitur: Jika prosedur tersimpan, pemicu, tampilan, atau fungsi di database Anda menggunakan fitur yang tidak didukung oleh MySQL 8.0, ubahlah sebelum peningkatan. Jika tidak, peningkatan akan gagal.
Periksa Dependensi Tabel Sistem: Periksa apakah layanan Anda bergantung pada tabel sistem MySQL 5.7 (tabel dalam database sys, mysql, information_schema, dan performance_schema). Beberapa tabel sistem di MySQL 5.7 diubah selama peningkatan ke 8.0. Sebagai contoh, tabel mungkin dihapus, diganti namanya, atau skemanya diubah. Jika layanan Anda bergantung pada tabel-tabel ini, mereka mungkin mengalami kesalahan.
Periksa Kompatibilitas Tipe Data: RDS for MySQL 8.0 tidak lagi mendukung beberapa tipe data dari versi lama. Jika 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 lebih lanjut, lihat Menyiapkan Instalasi Anda untuk Peningkatan.Periksa Nilai
comment: Versi minor MySQL 8.0 dari 20221231 memperkenalkan parameterloose_upgrade_clear_invalid_comment. Saat parameter ini disetel keON(nilai default), karakter acak dalam komentar tabel, bidang, dan indeks secara otomatis dibersihkan selama peningkatan untuk mencegah kegagalan. Oleh karena itu, sebelum peningkatan, periksa apakah nilaicommentdi tabel database Anda mengandung karakter acak. Jika iya,commentakan dibersihkan.Periksa Prosedur Tersimpan: Jika prosedur tersimpan atau fungsi di database Anda mengandung 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 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 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. Ini membantu menghindari masalah di mana sintaksis atau fitur dari versi sebelumnya tidak didukung setelah peningkatan.
Simulasi Peningkatan: Sebelum peningkatan, klon instans asli dan gunakan instans klon untuk menguji peningkatan. Setelah Anda memastikan bahwa semua fitur bekerja seperti yang diharapkan, tingkatkan instans asli.
-
Catatan Pasca-Peningkatan
Kembalikan Instans ke Versi Lama: Anda dapat menggunakan cadangan disk cloud dari versi lama untuk mengembalikan instans ke versi tersebut. Ini tidak didukung untuk instans dengan disk lokal performa premium.
Kembalikan Instans ke Versi Baru: Anda tidak dapat menggunakan set cadangan dari versi lama untuk mengembalikan instans ke versi baru. Untuk melakukan pemulihan, gunakan set cadangan yang dibuat setelah instans ditingkatkan.
Prosedur
Pilih metode peningkatan berdasarkan skenario peningkatan:
Metode Pemutakhiran | Skenario peningkatan |
Lakukan pemeriksaan awal lalu tingkatkan |
|
Peningkatan langsung |
|
Lakukan pemeriksaan awal lalu tingkatkan
Pergi ke halaman Instans. Di bilah navigasi atas, pilih wilayah tempat instans Anda berada. Lalu, klik ID instans.
Di panel navigasi di sebelah kiri, klik Major Version Upgrade untuk pergi ke halaman Pre-upgrade Check.
Dari daftar drop-down Select Upgrade Version, pilih nomor versi target dan klik Create Upgrade Check Report. Untuk informasi lebih lanjut tentang laporan, 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 nomor versi target dan klik Upgrade Instance.

Di kotak dialog Upgrade Major Version Of Instance, konfirmasikan versi target, pilih Switch Time, dan klik Upgrade Now.

Peningkatan langsung
Pergi ke halaman Instans. Di bilah navigasi atas, pilih wilayah tempat instans Anda berada. Lalu, klik ID instans.
Di bagian , klik Upgrade Database Version.
CatatanJika opsi ini tidak tersedia, periksa apakah instans Anda memenuhi persyaratan peningkatan.
Di kotak dialog yang muncul, pilih Switch Immediately atau Switch Within Maintenance Window, lalu klik OK.
Switch Immediately: Memulai peningkatan segera.
Switch Within Maintenance Window: Melakukan peningkatan dalam jendela pemeliharaan yang ditentukan. Anda juga dapat mengklik Settings di sebelah Maintenance Window untuk dengan cepat mengubah jendela pemeliharaan.
CatatanSelama peningkatan, status instans adalah Migrating Version.
Metode 2: Tingkatkan versi database menggunakan DTS
Untuk instans yang tidak mendukung peningkatan langsung melalui Konsol, Anda dapat membuat instans baru dengan versi database yang lebih baru. Selanjutnya, gunakan tugas migrasi data DTS untuk memigrasi data dari instans asli ke instans baru. Proses ini secara tidak langsung meningkatkan versi database dan mencakup langkah-langkah berikut:
Contoh: Misalkan Anda memiliki instans MySQL 5.7 dengan Enkripsi Data Transparan (TDE) diaktifkan, yang tidak dapat ditingkatkan langsung melalui Konsol. Dalam situasi ini, Anda dapat membuat instans baru yang menjalankan MySQL 8.0, migrasikan data dari instans asli ke instans baru, dan akhirnya lepaskan instans asli. Ini akan secara tidak langsung menaikkan versi database.
Setelah melakukan migrasi data lintas versi, uji kompatibilitas dan pantau instans selama periode waktu tertentu. Setelah Anda memastikan bahwa semuanya berfungsi normal, lepaskan instans asli.
Lampiran 1: Manfaat peningkatan dari MySQL 5.7 ke MySQL 8.0
Meningkatkan keamanan serta memberikan fleksibilitas lebih besar dalam pengelolaan akun.
Menambahkan dukungan untuk pembuatan dan pengelolaan kelompok sumber daya.
Memperkuat fitur mesin penyimpanan InnoDB.
Menyediakan dukungan untuk set karakter baru, tipe data, sintaksis, kunci cadangan baru, dan flag optimizer_switch.
Memperluas fungsionalitas JSON dan XML.
Memperkuat kemampuan pengoptimal.
Meningkatkan kinerja replikasi.
Menambahkan dukungan untuk pembuatan indeks bernilai banyak dan optimasi penurunan kondisi turunan.
Menyediakan dukungan untuk pembacaan tabel grant MySQL.
Menambahkan kontrol terhadap alokasi sumber daya.
Lampiran 2: Manfaat peningkatan dari MySQL 5.6 ke MySQL 5.7
Menambahkan fitur seperti manajemen kata sandi, penguncian akun, dan koneksi terenkripsi untuk meningkatkan keamanan database.
Mendukung operasi Online DDL, termasuk mengganti nama indeks menggunakan RENAME INDEX.
Meningkatkan skalabilitas engine InnoDB dan performa tabel sementara, sehingga mempercepat pemuatan data.
Menyediakan dukungan untuk 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, serta performa database.
Memperluas jangkauan set karakter yang didukung, termasuk set karakter GB18030 sesuai standar nasional Tiongkok.
Menyediakan plugin parser teks lengkap ngram, yang mendukung bahasa Tiongkok, Jepang, dan Korea.
Mengoptimalkan utas dump sumber untuk mengurangi konten kunci dan meningkatkan throughput sumber.
Secara signifikan mengurangi latensi replikasi.
Menambahkan sys system database, yang menyediakan berbagai metrik, mengurangi penggunaan penyimpanan, serta meningkatkan kegunaan database secara keseluruhan.
Lampiran 3: Perbedaan fitur antara MySQL 8.0 dan MySQL 5.7
Tabel berikut mencantumkan beberapa perbedaan utama antara MySQL 8.0 dan MySQL 5.7. Untuk informasi lebih lengkap mengenai perbedaan lainnya, lihat Catatan Rilis MySQL.
Fitur | 5.7 | 8.0 |
Sintaks GRANT ... IDENTIFIED BY PASSWORD | Didukung | Tidak didukung |
Fungsi PASSWORD() | Didukung | Tidak didukung |
Sintaks FLUSH QUERY CACHE dan RESET QUERY CACHE | 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 sintaks GROUP BY | Didukung | Tidak didukung |
Sintaks 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 |
Menguraikan \N sebagai NULL | Didukung | Tidak didukung |
Fungsi PROCEDURE ANALYSE() | Didukung | Tidak didukung |
Membuat tabel partisi menggunakan Mesin penyimpanan NDB | Didukung | Tidak didukung |
Kompresi tabel sementara menggunakan Mesin penyimpanan InnoDB | Didukung | Tidak didukung |
Fungsi JSON_APPEND() | Didukung | Tidak didukung |
Dukungan untuk menempatkan partisi tabel di ruang tabel bersama | Didukung | Tidak didukung |
Sintaks ALTER TABLE ... UPGRADE PARTITIONING | Didukung | Tidak didukung |
Lampiran 4: Perbedaan fitur antara MySQL 5.7 dan MySQL 5.6
Tabel berikut mencantumkan beberapa perbedaan utama antara MySQL 5.7 dan MySQL 5.6. Untuk informasi lebih lengkap mengenai perbedaan lainnya, lihat Catatan Rilis MySQL.
Fitur | 5.6 | 5.7 |
CREATE...AS SELECT dalam mode GTID | Didukung | Tidak didukung |
Menggunakan tabel sementara dalam transaksi dalam mode GTID | Didukung | Tidak didukung |
Menentukan kunci partisi dalam tabel partisi | Didukung | Tidak didukung |
Sintaks ENGINE_NO_CACHE | Didukung | Tidak didukung |
Indeks Tidak Terlihat | Didukung | Tidak didukung |
Sintaks UPDATE non_affected_rows INSERT | Didukung | Tidak didukung |
Perintah terkait proksi | Menggunakan metode perintah SET | Menggunakan mode Call Procedure |
Mesin TokuDB, Sphinx, RocksDB, dan Memory | Didukung | Tidak didukung |
Fungsi str_ord() | Didukung | Tidak didukung |
Fungsi raiseerror() | Didukung | Tidak didukung |
OPTIMIZE TABLE table ASYNC | Didukung | Tidak didukung |
ENGINE_NO_CACHE | Didukung | Tidak didukung |
Tabel INFORMATION.TABLE_UTILIZATION | Didukung | 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 |
Cache Rencana Kueri | Didukung | Tidak didukung |
Sintaks Limit + Union | Tanda kurung tidak diperlukan. | Tanda kurung diperlukan. |
Sintaks SHOW FULL PROCESSLIST | Dalam MySQL 5.7, kolom memory dan query_memory dihapus dari hasil. | |
max_statement_time dan max_execution_time | Dalam MySQL 5.7, max_statement_time dihapus, dan hanya max_execution_time yang dipertahankan. | |
Sintaks RDS_SQL_MAX_AFFECTED | Dalam MySQL 5.7, Anda tidak dapat lagi menggunakan RDS_SQL_MAX_AFFECTED untuk membatasi jumlah catatan yang terpengaruh oleh satu pernyataan UPDATE atau DELETE. Gunakan variabel rds_sql_max_affected_rows sebagai gantinya. | |
Penyesuaian optimalisasi performa konkurensi | Dalam MySQL 5.7, parameter berikut tidak lagi didukung untuk kontrol konkurensi:
| |
Penyesuaian variabel jumlah koneksi | Variabel berikut dihapus dalam MySQL 5.7:
| |
Penyesuaian terkait replikasi |
| |
Penyesuaian terkait log | Penyesuaian log kesalahan 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. Ini memperlambat proses peningkatan. |
Lampiran 5: Perbedaan fitur antara MySQL 5.5 dan MySQL 5.6
Tabel berikut mencantumkan beberapa perbedaan utama antara MySQL 5.5 dan MySQL 5.6. Untuk informasi lebih lengkap mengenai perbedaan lainnya, lihat MySQL 5.6 Reference Manual.
Fitur | MySQL 5.5 | MySQL 5.6 |
Indeks teks penuh | Tidak didukung | Didukung |
InnoDB online DDL | Tidak didukung | Sebagian didukung |
REDO | Mendukung maksimum 4 GB | Mendukung maksimum 512 GB |
Pembilasan halaman kotor | Single-threaded | Menggunakan thread pembilasan terpisah |
Pembersihan | Single-threaded | Multi-threaded |
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 lebih banyak metadata 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 hal-hal berikut:
Penting Setelah instans RDS for MySQL ditingkatkan dari versi 5.5 ke 5.6, ia secara otomatis beralih ke mode replikasi berbasis GTID. | |
Pengoptimal | MySQL 5.6 meningkatkan pengoptimal dengan fitur-fitur termasuk yang berikut ini:
| |
Tidak didukung | Didukung | |
Tidak didukung | Didukung | |
Tidak didukung | Didukung | |
Tidak didukung | Didukung | |
Tidak didukung | Didukung | |
FAQ
Q: Mengapa terjadi failover pada instans selama peningkatan? Apakah ada risiko serius lainnya?
A: Untuk memastikan stabilitas layanan, instans dengan disk lokal berperforma tinggi ditingkatkan dengan meningkatkan node sekunder terlebih dahulu, lalu melakukan failover. Instans dengan ESSD ditingkatkan dengan membuat node baru dan kemudian melakukan failover. Tidak ada risiko serius lainnya. Untuk informasi lebih lanjut tentang dampak dari failover utama/sekunder, lihat Dampak dari failover utama/sekunder.
Q: Apakah node utama dan sekunder ditingkatkan pada saat yang sama?
A: Saat Anda menaikkan versi disk lokal berkinerja-tinggi, instans sekunder ditingkatkan terlebih dahulu, diikuti oleh instans utama.
Q: Bagaimana cara saya menaikkan versi instans Edisi Dasar yang menjalankan MySQL 5.7 dengan SSD standar?
A: Anda tidak dapat langsung menaikkan versi jenis instans ini. Untuk menaikkan versi instans Edisi Dasar yang menjalankan MySQL 5.7 dengan SSD standar, Anda harus terlebih dahulu mengubah tipe penyimpanan dari SSD standar ke ESSD, dan kemudian meningkatkan versi database.
Q: Apakah template parameter tetap ada setelah versi database ditingkatkan?
A: Itu tergantung. Jika instans menggunakan template parameter sistem sebelum peningkatan, maka secara otomatis akan beralih ke template parameter sistem yang sesuai untuk versi baru. Sebagai contoh, instans yang menggunakan template parameter MySQL_InnoDB_5.7_High-availability_Performance akan beralih 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 akan dipertahankan setelah peningkatan.
Q: Dapatkah saya memodifikasi instans selama peningkatan versi database?
A: Tidak, Anda tidak bisa. Anda hanya dapat melakukan operasi lain pada instans setelah peningkatan selesai.
Q: Apakah versi database mendukung peningkatan otomatis?
A: Tidak, tidak mendukung. Peningkatan otomatis versi utama tidak didukung.
Q: Dapatkah saya menurunkan spesifikasi versi database?
A: Tidak, Anda tidak dapat langsung menurunkan versi dari Konsol. Untuk menurunkan versi, Anda dapat membeli instans dengan versi sebelumnya dan menggunakan DTS untuk memigrasikan data dari instans dengan versi terbaru ke instans baru. Setelah migrasi selesai, Anda dapat melepaskan instans dengan versi terbaru. Untuk informasi lebih lanjut, lihat Migrasi data antara instans RDS.
Q: Ketika saya menaikkan versi instans RDS for MySQL dari 5.6 ke 5.7 atau dari 5.7 ke 8.0, peningkatan gagal. Pesan yang muncul adalah "Instans saat ini memiliki indeks teks penuh dan versi minornya lebih awal dari 20221130. Harap tingkatkan versi minor sebelum menghapus dan membangun ulang indeks teks penuh" atau "Instans saat ini berisi indeks teks penuh yang dibuat di ruang tabel sistem. Harap hapus dan bangun ulang indeks teks penuh yang sesuai sebelum melanjutkan dengan peningkatan." Apa penyebab dan solusinya?
A: Penyebab dan solusinya adalah sebagai berikut:
Penyebab
Karena masalah historis di MySQL, ketika Anda membuat indeks teks penuh pada versi awal MySQL 5.6, indeks tersebut dibuat di ruang tabel sistem. Saat Anda menaikkan versi ke 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 ketidakmampuan akses.
CatatanMasalah ini telah diperbaiki di RDS for MySQL 5.6 versi 20221130. Indeks teks penuh sekarang dibuat 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 bahwa versi yang Anda tingkatkan adalah RDS for MySQL 5.6 20221130 atau lebih baru sebelum Anda menaikkan versi ke RDS for MySQL 5.7. Jika Anda menggunakan versi lebih lama, tingkatkan terlebih dahulu ke versi terbaru RDS for MySQL 5.6.
Berdasarkan nama tabel dalam prompt, hapus indeks teks penuh yang dibuat 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 Anda 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 dibuat 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 dibuat 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);
Q: Ketika saya menaikkan versi instans RDS for MySQL dari 5.7 ke 8.0, kesalahan
267 - Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation '='dilaporkan. Bagaimana cara saya menanganinya?A: 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 dan kemudian menaikkan versi 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, yang menghasilkan kesalahan.
Q: Apakah waktu koneksi sementara selama peningkatan versi utama selalu 30 hingga 60 detik, terlepas dari apakah ada instans hanya baca?
A: Ya, benar. Kami sarankan Anda melakukan peningkatan selama jam-jam sepi.
Operasi API terkait
Operasi API | Deskripsi |
Memutakhirkan versi utama database dari sebuah instans RDS. |