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 tersebut—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 memverifikasi keberhasilan migrasi, 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 jalur peningkatan MySQL berikut: MySQL 5.5 ke 5.6, 5.6 ke 5.7, 5.7 ke 8.0, dan 8.0 ke 8.4. 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): Untuk peningkatan dari 5.7 ke 8.0, versi minor proksi database harus 1.13.41 atau lebih baru. Untuk peningkatan dari 8.0 ke 8.4, versi minor proksi database harus 2.25.11 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): Untuk peningkatan dari 5.7 ke 8.0, versi minor proksi database harus 1.13.41 atau lebih baru. Untuk peningkatan dari 8.0 ke 8.4, versi minor proksi database harus 2.25.11 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 (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): Untuk peningkatan dari 5.7 ke 8.0, versi minor proksi database harus 1.13.41 atau lebih baru. Untuk peningkatan dari 8.0 ke 8.4, versi minor proksi database harus 2.25.11 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. Setelah itu, Anda dapat 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, tingkatkan SSD standar menjadi enterprise SSD (ESSD), lalu tingkatkan versi database.
Untuk meningkatkan versi utama database mesin database 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 6: Perbedaan fitur antara MySQL 5.7 dan MySQL 5.6. Untuk informasi tentang manfaat peningkatan, lihat Lampiran 3: Manfaat peningkatan dari MySQL 5.6 ke MySQL 5.7.
-
Peningkatan dari 5.7 ke 8.0: Untuk informasi tentang perbedaan fitur, lihat Lampiran 5: Perbedaan fitur antara MySQL 8.0 dan MySQL 5.7. Untuk informasi tentang manfaat peningkatan, lihat Lampiran 2: Manfaat peningkatan dari MySQL 5.7 ke MySQL 8.0.
-
Peningkatan dari 8.0 ke 8.4: Untuk informasi tentang perbedaan fitur, lihat Lampiran 4: Perbedaan fitur antara MySQL 8.4 dan MySQL 8.0. Untuk informasi tentang manfaat peningkatan, lihat Lampiran 1: Manfaat peningkatan dari MySQL 8.0 ke MySQL 8.4.
-
-
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 memverifikasi keberhasilan migrasi, 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 peningkatan dilakukan pada 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 peningkatan dilakukan pada 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 telah tersedia cadangan data penuh yang berhasil 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 pada 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 untuk menyisakan minimal 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, dari 5.7 ke 8.0, atau dari 8.0 ke 8.4, 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 tersebut, layanan tersebut mungkin mengalami kesalahan.
-
Periksa kompatibilitas tipe data: RDS for MySQL 8.0 tidak lagi mendukung beberapa tipe data dari versi lama. 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 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;
-
Peningkatan dari 8.0 ke 8.4
-
Periksa kompatibilitas fitur: MySQL 8.4 tidak lagi mendukung fitur lama tertentu, seperti Group Replication (MGR). Jika MGR diaktifkan pada instans, hentikan Group Replication dan hapus konfigurasi terkait sebelum peningkatan. Jika tidak, peningkatan tidak dapat dilanjutkan.
-
Periksa kompatibilitas tabel, indeks, dan metadata: Periksa apakah instans berisi engine penyimpanan, indeks teks penuh, ruang tabel yang dibuang, kunci asing pada tabel partisi, nama kolom tampilan atau kendala kunci asing yang terlalu panjang, atau indeks SPATIAL atau RTREE yang tidak kompatibel dengan MySQL 8.4. Jika ditemukan masalah, modifikasi skema tabel atau hapus indeks terkait sebelum peningkatan, dan buat ulang sesuai kebutuhan setelah peningkatan. Selain itu, tabel yang menggunakan bidang
FLOATatauDOUBLEsebagai kolomAUTO_INCREMENTjuga harus dimodifikasi terlebih dahulu. -
Periksa topologi instans dan kondisi peningkatan: Periksa apakah status kesehatan node primer dan sekunder, latensi replikasi, jumlah dan jenis instans hanya baca serta instans hanya baca siaga, jenis koneksi instans, tugas yang belum selesai, tipe instans versi target, dan versi MaxScale memenuhi persyaratan peningkatan. Item pemeriksaan bervariasi berdasarkan tipe instans: instans disk lokal memiliki pemeriksaan topologi instans hanya baca tambahan, dan instans disk cloud memiliki pemeriksaan tipe penyimpanan dan lingkungan cloud.
-
Periksa kompatibilitas parameter, autentikasi, dan koneksi: MySQL 8.4 menghapus beberapa parameter dan konfigurasi autentikasi versi 8.0, dan proses peningkatan secara otomatis menyaring atau mengonversi parameter yang tidak kompatibel. MySQL 8.4 tidak lagi mendukung TLSv1 atau TLSv1.1. Sistem secara otomatis menyesuaikan
tls_versiondi sisi server, tetapi klien yang menggunakan protokol TLS lama tetap gagal terhubung setelah peningkatan. Pastikan terlebih dahulu bahwa klien Anda mendukung TLSv1.2 atau TLSv1.3. Beberapa perilaku default autentikasi, izin, dan parameter juga berubah. Sebelum peningkatan, pastikan login akun, izin, dan kinerja layanan tidak terpengaruh.
-
-
-
Pengujian dan simulasi sebelum 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 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 dan 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, dan 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 tersebut—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 tersebut, lalu 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 memastikan semuanya normal, lepaskan instans asli.
Lampiran 1: Manfaat peningkatan dari MySQL 8.0 ke MySQL 8.4
-
Stabilitas jangka panjang yang ditingkatkan. MySQL 8.4 adalah rilis LTS yang cocok untuk penggunaan jangka panjang di lingkungan produksi. Rilis 8.4.x selanjutnya berfokus pada stabilitas, perbaikan keamanan, dan pemeliharaan kompatibilitas.
-
Otentikasi yang ditingkatkan. Mendukung otentikasi WebAuthn/FIDO2. Edisi Perusahaan dapat menggunakan kunci keamanan, biometrik, dan metode otentikasi lainnya. Di Windows, otentikasi SASL LDAP/GSSAPI/Kerberos didukung.
-
Kemampuan GTID yang ditingkatkan. Mendukung GTID bertanda. Anda dapat menggunakan format
UUID:TAG:NUMBERuntuk membedakan domain bisnis, operasi administratif, atau operasi data yang berbeda, dan hak istimewaTRANSACTION_GTID_TAGmenyediakan kontrol akses. -
Ketersediaan replikasi yang ditingkatkan. Applier multithread mendukung
SQL_AFTER_GTIDS, sehingga replikasi paralel dapat dilanjutkan ketika replika mengejar ketinggalan ke set GTID tertentu. -
Pemulihan log relay yang ditingkatkan. Mendukung pembersihan transaksi yang tidak lengkap di akhir log relay dan file sisa terkait, yang mengurangi risiko pemulihan akibat ketidaksesuaian log relay setelah shutdown tidak normal.
-
Operasi Group Replication yang ditingkatkan. Dalam seri LTS 8.4, anggota grup lintas versi dan penurunan versi di tempat didukung, penundaan untuk operasi DDL dan DCL selama alih bencana primer lebih lengkap, dan pembersihan awal informasi otentikasi didukung dalam mode single-primary untuk mengurangi risiko memori dan alih bencana.
-
Statistik yang ditingkatkan. Histogram mendukung kontrol pembaruan otomatis atau manual, yang membantu meningkatkan kemampuan pengontrolan pemeliharaan statistik pengoptimal.
-
Diagnostik rencana eksekusi yang ditingkatkan.
EXPLAIN FORMAT=JSONmendukung pemilihan versi format,EXPLAIN FORMAT=JSON INTOmenulis output ke variabel pengguna, danEXPLAIN FOR SCHEMAsertaFOR DATABASEdidukung, yang memfasilitasi diagnosa SQL lintas skema. -
Validasi sertifikat TLS yang ditingkatkan. Mendukung validasi sertifikat TLS yang lebih ketat untuk meningkatkan keamanan koneksi terenkripsi.
-
Clone yang ditingkatkan. Dalam seri utama atau minor yang sama, operasi clone tidak lagi memerlukan kecocokan rilis titik yang tepat, yang memfasilitasi inisialisasi, pemulihan, dan penskalaan instans antar versi 8.4.x.
-
Audit dan firewall yang ditingkatkan. Enterprise Firewall mendukung pemuatan ulang cache berkala dan skema objek internal kustom untuk fleksibilitas operasional yang lebih besar.
-
Migrasi manajemen kunci yang ditingkatkan. Mendukung migrasi dari komponen keyring ke plugin keyring, yang meningkatkan fleksibilitas untuk migrasi enkripsi dan skenario kompatibilitas.
-
Observabilitas peningkatan yang ditingkatkan. Direktori data mempertahankan
mysql_upgrade_historydalam format JSON yang mencatat riwayat instalasi dan peningkatan untuk audit dan troubleshooting. -
Evolusi SQL dan pengoptimal yang ditingkatkan. Menambahkan kata kunci seperti
TABLESAMPLE,QUALIFY, danPARALLELuntuk memberikan fondasi bagi ekstensi SQL dan pengoptimal di masa depan.
Lampiran 2: 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 cadangan 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 3: 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 Online DDL, seperti mengganti nama indeks menggunakan RENAME INDEX.
-
Meningkatkan skalabilitas engine InnoDB dan kinerja tabel sementara 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 jangkauan 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 banyak metrik dan mengurangi penggunaan penyimpanan, sehingga meningkatkan kegunaan database secara signifikan.
Lampiran 4: Perbedaan fitur antara MySQL 8.4 dan MySQL 8.0
Tabel berikut hanya mencantumkan beberapa perbedaan penting antara MySQL 8.4 dan 8.0. Untuk informasi selengkapnya tentang perbedaan lainnya, lihat Catatan Rilis MySQL.
|
Fitur |
8.0 |
8.4 |
|
Otentikasi WebAuthn |
Tidak didukung |
Mendukung otentikasi WebAuthn/FIDO2. Edisi Perusahaan menyediakan plugin sisi server. |
|
SASL LDAP di Windows |
Tidak didukung |
Mendukung otentikasi SASL LDAP/GSSAPI/Kerberos di Windows. |
|
Kemampuan cross-point-release plugin Clone |
Umumnya memerlukan kecocokan rilis titik |
Dalam versi utama atau minor yang sama, clone dapat dilakukan lintas rilis titik, seperti antara 8.4.0 dan 8.4.x. |
|
GTID bertanda |
Tidak didukung |
Mendukung format |
|
Kontrol hak istimewa tag GTID |
Tidak didukung |
Menambahkan hak istimewa |
|
Applier multithread dengan |
Penggunaan terbatas; mungkin kembali ke satu thread |
Didukung dengan applier multithread. |
|
Pembersihan sanitasi pemulihan log relay |
Perilaku pemulihan log relay lama |
Dapat membersihkan transaksi yang tidak lengkap di akhir log relay dan file sisa terkait. |
|
Kompatibilitas intra-grup Group Replication 8.4.x |
Tidak berlaku |
Dalam seri LTS 8.4, anggota grup lintas versi dan penurunan versi di tempat didukung. |
|
Pengumpulan sampah sertifikasi Group Replication |
GC standar |
Mendukung pengumpulan sampah sertifikasi preemptive dalam mode single-primary. |
|
|
Cakupan kurang |
Menunggu lebih banyak operasi DDL dan DCL selesai sebelum mengalihkan primer. |
|
Pembaruan histogram otomatis |
Tidak mendukung AUTO UPDATE atau MANUAL UPDATE |
Mendukung kontrol pembaruan histogram otomatis atau manual. |
|
Versi output |
Format JSON tunggal |
Mendukung |
|
|
Tidak didukung |
Mendukung menulis output explain JSON ke variabel pengguna. |
|
|
Tidak didukung |
Mendukung menjelaskan pernyataan untuk skema tertentu. |
|
Penanganan komentar klien MySQL |
Menghapus komentar secara default |
Mempertahankan komentar secara default. |
|
Validasi sertifikat TLS |
Perilaku lebih longgar |
Mendukung validasi sertifikat TLS yang diberlakukan. |
|
Pemuatan ulang cache Enterprise Firewall |
Terutama dimuat ulang saat startup atau instalasi ulang plugin |
Mendukung pemuatan ulang berkala. |
|
Skema penyimpanan Enterprise Firewall |
Lokasi internal tetap |
Mendukung skema kustom. |
|
Migrasi komponen keyring ke plugin |
Tidak didukung |
Mendukung migrasi dari komponen keyring ke plugin keyring. |
|
Riwayat peningkatan |
Menggunakan mekanisme file informasi peningkatan lama |
Direktori data mempertahankan |
Lampiran 5: 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 Catatan Rilis MySQL.
|
Fitur |
5.7 |
8.0 |
|
Sintaksis GRANT ... IDENTIFIED BY PASSWORD |
Didukung |
Tidak didukung |
|
Fungsi PASSWORD() |
Didukung |
Tidak didukung |
|
Sintaksis 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 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 |
Dukungan |
Tidak didukung |
|
Fungsi PROCEDURE ANALYSE() |
Didukung |
Tidak didukung |
|
Membuat tabel partisi menggunakan engine penyimpanan NDB |
Didukung |
Tidak didukung |
|
Mengompresi tabel sementara 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 6: 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 Catatan Rilis MySQL.
|
Fitur |
5.6 |
5.7 |
|
CREATE...AS SELECT dalam mode GTID |
Dukungan |
Tidak didukung |
|
Menggunakan tabel sementara 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 proxy |
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 di 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 |
Tidak memerlukan tanda kurung. |
Memerlukan tanda kurung. |
|
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 optimalisasi 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 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. Hal ini memperlambat proses peningkatan. |
Lampiran 7: 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 Manual Referensi MySQL 5.6.
|
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
-
Q: Mengapa terjadi failover instance 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.
-
T: 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.
-
T: 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 ke ESSD, lalu meningkatkan versi database.
-
T: 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.
-
T: 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.
-
T: Apakah versi database mendukung peningkatan otomatis?
J: Tidak, tidak mendukung. Peningkatan versi utama otomatis tidak didukung.
-
T: Dapatkah saya menurunkan versi database?
J: Tidak, Anda tidak dapat menurunkan versi secara langsung dari konsol. Pilih salah satu metode berikut berdasarkan apakah instans berisi data bisnis:
-
Dengan data bisnis: Beli instans yang menjalankan versi sebelumnya, gunakan DTS untuk memigrasikan data dari instans versi lebih tinggi ke instans versi lebih rendah yang baru, lalu lepaskan instans versi lebih tinggi setelah migrasi selesai. Hal ini secara tidak langsung menurunkan versi database. Untuk informasi selengkapnya, lihat Migrasi data antar instans RDS.
-
Tanpa data bisnis: Batalkan langganan instans asli dan beli instans baru yang menjalankan versi sebelumnya yang diperlukan. Untuk instans langganan, ikuti proses pengembalian dana untuk membatalkan langganan. Untuk instans berbayar sesuai penggunaan, lepaskan langsung.
-
-
T: Saat saya meningkatkan instans RDS for MySQL dari 5.6 ke 5.7 atau dari 5.7 ke 8.0, peningkatan gagal. Pesannya "Instans saat ini memiliki indeks teks penuh dan versi minornya sebelum 20221130. Harap tingkatkan versi minor terlebih dahulu 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 bahwa 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);
-
-
-
T: Saat saya meningkatkan instans RDS for MySQL dari 5.7 ke 8.0, muncul kesalahan
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, yang mengakibatkan kesalahan.
-
T: 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 pada jam sepi.
Operasi API terkait
|
Operasi API |
Deskripsi |
|
Menigkatkan versi utama database instans RDS. |