Bagaimana cara memutakhirkan ke versi terbaru mysql?

Saat Amazon RDS mendukung versi baru mesin database, Anda dapat memutakhirkan instans DB Anda ke versi baru. Ada dua jenis pemutakhiran untuk instans DB MySQL. peningkatan versi mayor dan peningkatan versi minor

Pembaruan versi utama dapat berisi perubahan basis data yang tidak kompatibel dengan aplikasi yang sudah ada. Akibatnya, Anda harus secara manual melakukan pemutakhiran versi utama dari instans DB Anda. Anda dapat memulai pemutakhiran versi utama dengan memodifikasi instans DB Anda. Namun, sebelum Anda melakukan pemutakhiran versi utama, kami menyarankan agar Anda mengikuti petunjuk di

Sebaliknya, pemutakhiran versi minor hanya mencakup perubahan yang kompatibel mundur dengan aplikasi yang sudah ada. Anda dapat memulai pemutakhiran versi minor secara manual dengan memodifikasi instans DB Anda. Atau Anda dapat mengaktifkan opsi Upgrade versi minor otomatis saat membuat atau memodifikasi instans DB. Melakukannya berarti instans DB Anda secara otomatis ditingkatkan setelah Amazon RDS menguji dan menyetujui versi baru. Untuk informasi tentang melakukan peningkatan, lihat Meningkatkan versi mesin instans DB

Jika instans MySQL DB Anda menggunakan replika baca, Anda harus memutakhirkan semua replika baca sebelum memutakhirkan instans sumber. Jika instans DB Anda dalam penerapan Multi-AZ, replika utama dan siaga akan ditingkatkan. Instans DB Anda tidak akan tersedia hingga pemutakhiran selesai

Pemutakhiran mesin basis data memerlukan waktu henti. Durasi waktu henti bervariasi berdasarkan ukuran instans DB Anda

Anda dapat meminimalkan waktu henti yang diperlukan untuk peningkatan instans DB dengan menggunakan penerapan biru/hijau. Untuk informasi selengkapnya, lihat Menggunakan Amazon RDS Blue/Green Deployment untuk pembaruan database

Gambaran umum peningkatan

Saat Anda menggunakan AWS Management Console untuk memutakhirkan instans DB, ini menunjukkan target pemutakhiran yang valid untuk instans DB. Anda juga dapat menggunakan perintah AWS CLI berikut untuk mengidentifikasi target pemutakhiran yang valid untuk instans DB

Untuk Linux, macOS, atau Unix

aws rds describe-db-engine-versions \
  --engine mysql \
  --engine-version version-number \
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

Untuk Windows

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
_

Misalnya, untuk mengidentifikasi target pemutakhiran yang valid untuk MySQL versi 8. 0. 23 DB, jalankan perintah AWS CLI berikut

Untuk Linux, macOS, atau Unix

aws rds describe-db-engine-versions \
  --engine mysql \
  --engine-version 8.0.23 \
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

Untuk Windows

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version 8.0.23 ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

Amazon RDS mengambil dua snapshot DB selama proses pemutakhiran. Snapshot DB pertama adalah instans DB sebelum perubahan pemutakhiran dilakukan. Jika pemutakhiran tidak berfungsi untuk database Anda, Anda dapat memulihkan snapshot ini untuk membuat instans DB yang menjalankan versi lama. Snapshot DB kedua diambil saat pemutakhiran selesai. RDS mengambil snapshot ini terlepas dari apakah AWS Backup mengelola cadangan untuk instans DB

Amazon RDS hanya mengambil snapshot DB jika Anda telah menetapkan periode penyimpanan cadangan untuk instans DB Anda ke angka yang lebih besar dari 0. Untuk mengubah periode penyimpanan cadangan Anda, lihat Memodifikasi instans DB Amazon RDS

Setelah pemutakhiran selesai, Anda tidak dapat kembali ke versi sebelumnya dari mesin basis data. Jika Anda ingin kembali ke versi sebelumnya, pulihkan snapshot DB pertama yang diambil untuk membuat instans DB baru

Anda mengontrol kapan harus memutakhirkan instans DB Anda ke versi baru yang didukung oleh Amazon RDS. Tingkat kontrol ini membantu Anda mempertahankan kompatibilitas dengan versi database tertentu dan menguji versi baru dengan aplikasi Anda sebelum diterapkan dalam produksi. Saat Anda siap, Anda dapat melakukan peningkatan versi pada waktu yang paling sesuai dengan jadwal Anda

Jika instans DB Anda menggunakan replikasi baca, Anda harus memutakhirkan semua Replika Baca sebelum memutakhirkan instans sumber

Jika instans DB Anda dalam penerapan Multi-AZ, instans DB primer dan siaga akan ditingkatkan. Instans DB utama dan siaga ditingkatkan secara bersamaan dan Anda akan mengalami pemadaman hingga peningkatan selesai. Waktu pemadaman bervariasi berdasarkan mesin database, versi mesin, dan ukuran instans DB Anda

Pembaruan versi utama untuk MySQL

Amazon RDS mendukung pemutakhiran di tempat berikut untuk versi utama mesin database MySQL

  • MySQL5. 6 hingga MySQL5. 7

  • MySQL5. 7 hingga MySQL 8. 0

Anda hanya dapat membuat MySQL versi 5. 7 dan 8. 0 instans DB dengan kelas instans DB generasi terbaru dan generasi saat ini, selain db. m3 kelas instans DB generasi sebelumnya

Dalam beberapa kasus, Anda ingin memutakhirkan MySQL versi 5. 6 instans DB berjalan pada kelas instans DB generasi sebelumnya (selain db. m3) ke MySQL versi 5. 7 instans DB. Dalam kasus ini, pertama-tama modifikasi instans DB untuk menggunakan kelas instans DB generasi terbaru atau generasi terkini. Setelah melakukannya, Anda kemudian dapat memodifikasi instans DB untuk menggunakan MySQL versi 5. 7 mesin basis data. Untuk informasi tentang kelas instans DB Amazon RDS, lihat kelas instans DB

Tinjauan tentang peningkatan versi utama MySQL

Pembaruan versi utama dapat berisi perubahan basis data yang tidak kompatibel dengan aplikasi yang sudah ada. Akibatnya, Amazon RDS tidak menerapkan pemutakhiran versi utama secara otomatis; . Kami menyarankan Anda untuk menguji pemutakhiran secara menyeluruh sebelum menerapkannya ke instans produksi Anda

Untuk melakukan upgrade versi utama untuk MySQL versi 5. Instans DB 6 di Amazon RDS ke MySQL versi 5. 7 atau lebih baru, pertama-tama lakukan pembaruan OS yang tersedia. Setelah pembaruan OS selesai, tingkatkan ke setiap versi utama. 5. 6 sampai 5. 7 dan kemudian 5. 7 sampai 8. 0. Instans DB MySQL yang dibuat sebelum 24 April 2014, menampilkan pembaruan OS yang tersedia hingga pembaruan diterapkan. Untuk informasi selengkapnya tentang pembaruan OS, lihat

Selama pemutakhiran versi utama MySQL, Amazon RDS menjalankan biner MySQL

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
0 untuk memutakhirkan tabel, jika perlu. Selain itu, Amazon RDS mengosongkan tabel
aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
1 dan
aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
2 selama peningkatan versi utama. Untuk mempertahankan informasi log, simpan konten log sebelum pemutakhiran versi utama

Pembaruan versi utama MySQL biasanya selesai dalam waktu sekitar 10 menit. Beberapa pemutakhiran mungkin memakan waktu lebih lama karena ukuran kelas instans DB atau karena instans tidak mengikuti pedoman operasional tertentu dalam Praktik terbaik untuk Amazon RDS. Jika Anda memutakhirkan instans DB dari konsol Amazon RDS, status instans DB menunjukkan kapan pemutakhiran selesai. Jika Anda memutakhirkan menggunakan AWS Command Line Interface (AWS CLI), gunakan perintah explain-db-instances dan periksa nilai

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
3

MySQL versi 5. 6. 4 memperkenalkan format tanggal dan waktu baru untuk kolom

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
4,
aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
5, dan
aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
6 yang memungkinkan komponen pecahan dalam nilai tanggal dan waktu. Saat memutakhirkan instans DB ke MySQL versi 5. 7, MySQL memaksa konversi semua jenis kolom tanggal dan waktu ke format baru

Karena konversi ini membuat ulang tabel Anda, mungkin dibutuhkan banyak waktu untuk menyelesaikan pemutakhiran instans DB. Konversi paksa terjadi untuk semua instans DB yang menjalankan versi sebelum MySQL versi 5. 6. 4. Itu juga terjadi untuk setiap instans DB yang ditingkatkan dari versi sebelum MySQL versi 5. 6. 4 ke versi selain 5. 7

Jika instans DB Anda menjalankan versi sebelum MySQL versi 5. 6. 4, atau ditingkatkan dari versi sebelum 5. 6. 4, kami merekomendasikan langkah tambahan. Dalam kasus ini, kami menyarankan Anda mengonversi kolom

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
4,
aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
5, dan
aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
6 di database Anda sebelum memutakhirkan instans DB Anda ke MySQL versi 5. 7. Konversi ini dapat secara signifikan mengurangi jumlah waktu yang diperlukan untuk memutakhirkan instans DB ke MySQL versi 5. 7. Untuk memutakhirkan kolom tanggal dan waktu Anda ke format baru, keluarkan
aws rds describe-db-engine-versions \
  --engine mysql \
  --engine-version 8.0.23 \
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
0 FORCE; . Karena mengubah tabel akan mengunci tabel sebagai hanya-baca, kami menyarankan agar Anda melakukan pembaruan ini selama jendela pemeliharaan

Untuk menemukan semua tabel di database Anda yang memiliki

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
_4,
aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
5, atau
aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
6 kolom dan buat
aws rds describe-db-engine-versions \
  --engine mysql \
  --engine-version 8.0.23 \
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
0 FORCE;

SET show_old_temporals = ON;
   SELECT table_schema, table_name,column_name, column_type
   FROM information_schema.columns
   WHERE column_type LIKE '%/* 5.5 binary format */';
   SET show_old_temporals = OFF;

Precheck untuk upgrade dari MySQL 5. 7 sampai 8. 0

MySQL8. 0 termasuk sejumlah ketidakcocokan dengan MySQL 5. 7. Ketidakcocokan ini dapat menyebabkan masalah selama pemutakhiran dari MySQL 5. 7 hingga MySQL 8. 0. Jadi, beberapa persiapan mungkin diperlukan di database Anda agar pemutakhiran berhasil. Berikut ini adalah daftar umum ketidakcocokan ini

  • Tidak boleh ada tabel yang menggunakan tipe data atau fungsi usang

  • Tidak boleh ada anak yatim*. dari file

  • Pemicu tidak boleh memiliki penentu yang hilang atau kosong atau konteks pembuatan yang tidak valid

  • Tidak boleh ada tabel terpartisi yang menggunakan mesin penyimpanan yang tidak memiliki dukungan partisi asli

  • Tidak boleh ada pelanggaran kata kunci atau kata yang dicadangkan. Beberapa kata kunci mungkin dicadangkan di MySQL 8. 0 yang tidak dipesan sebelumnya

    Untuk informasi lebih lanjut, lihat Kata kunci dan kata-kata yang dicadangkan dalam dokumentasi MySQL

  • Tidak boleh ada tabel di MySQL 5. 7

    aws rds describe-db-engine-versions \
      --engine mysql \
      --engine-version 8.0.23 \
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    _5 database sistem yang memiliki nama yang sama dengan tabel yang digunakan oleh MySQL 8. 0 kamus data

  • Tidak boleh ada mode SQL usang yang ditentukan dalam pengaturan variabel sistem

    aws rds describe-db-engine-versions \
      --engine mysql \
      --engine-version 8.0.23 \
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    6 Anda

  • Tidak boleh ada tabel atau prosedur tersimpan dengan elemen kolom

    aws rds describe-db-engine-versions \
      --engine mysql \
      --engine-version 8.0.23 \
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    7 atau
    aws rds describe-db-engine-versions \
      --engine mysql \
      --engine-version 8.0.23 \
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    8 individual yang panjangnya melebihi 255 karakter atau 1020 byte

  • Sebelum memutakhirkan ke MySQL 8. 0. 13 atau lebih tinggi, tidak boleh ada partisi tabel yang berada di tablespace InnoDB bersama

  • Tidak boleh ada kueri dan definisi program tersimpan dari MySQL 8. 0. 12 atau lebih rendah yang menggunakan

    aws rds describe-db-engine-versions \
      --engine mysql \
      --engine-version 8.0.23 \
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    _9 atau
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    0 kualifikasi untuk klausa
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    1

  • MySQL5 Anda. Instalasi 7.7 tidak boleh menggunakan fitur yang tidak didukung di MySQL 8. 0

    Untuk informasi lebih lanjut, lihat di dokumentasi MySQL

  • Tidak boleh ada nama batasan kunci asing yang lebih dari 64 karakter

  • Untuk dukungan Unicode yang ditingkatkan, pertimbangkan untuk mengonversi objek yang menggunakan rangkaian karakter

    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    2 untuk menggunakan rangkaian karakter
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    3. Rangkaian karakter
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    _2 tidak digunakan lagi. Selain itu, pertimbangkan untuk menggunakan
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    3 untuk referensi rangkaian karakter alih-alih
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    6, karena saat ini
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    6 adalah alias untuk rangkaian karakter
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    2

    Untuk informasi lebih lanjut, lihat Kumpulan karakter utf8mb3 (pengodean unicode UTF-8 3-byte) di dokumentasi MySQL

Saat Anda memulai pemutakhiran dari MySQL 5. 7 sampai 8. 0, Amazon RDS menjalankan pemeriksaan awal secara otomatis untuk mendeteksi ketidaksesuaian ini. Untuk informasi tentang pemutakhiran ke MySQL 8. 0, lihat Memutakhirkan MySQLdi dokumentasi MySQL

Pra-pemeriksaan ini wajib. Anda tidak dapat memilih untuk melewatkannya. Pemeriksaan awal memberikan manfaat berikut

  • Mereka memungkinkan Anda untuk menghindari waktu henti yang tidak direncanakan selama pemutakhiran

  • Jika ada ketidaksesuaian, Amazon RDS mencegah pemutakhiran dan menyediakan log untuk Anda pelajari tentangnya. Anda kemudian dapat menggunakan log untuk mempersiapkan database Anda untuk pemutakhiran ke MySQL 8. 0 dengan mengurangi ketidakcocokan. Untuk informasi mendetail tentang menghapus inkompatibilitas, lihat Mempersiapkan instalasi Anda untuk pemutakhiran dalam dokumentasi MySQL dan Pemutakhiran ke MySQL 8. 0? . di Blog Server MySQL

Prapemeriksaan mencakup beberapa yang disertakan dengan MySQL dan beberapa yang dibuat secara khusus oleh tim Amazon RDS. Untuk informasi tentang pemeriksaan awal yang disediakan oleh MySQL, lihat Utilitas pemutakhiran pemeriksa

Prapemeriksaan dijalankan sebelum instans DB dihentikan untuk pemutakhiran, artinya tidak menyebabkan waktu henti saat dijalankan. Jika pemeriksaan awal menemukan ketidakcocokan, Amazon RDS secara otomatis membatalkan pemutakhiran sebelum instans DB dihentikan. Amazon RDS juga membuat kejadian untuk ketidakcocokan. Untuk informasi selengkapnya tentang kejadian Amazon RDS, lihat Bekerja dengan pemberitahuan kejadian Amazon RDS

Amazon RDS mencatat informasi mendetail tentang setiap ketidakcocokan dalam file log

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version 8.0.23 ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
9. Dalam kebanyakan kasus, entri log menyertakan tautan ke dokumentasi MySQL untuk memperbaiki ketidakcocokan. Untuk informasi selengkapnya tentang menampilkan file log, lihat Melihat dan mencantumkan file log database

Karena sifat pemeriksaan awal, mereka menganalisis objek di database Anda. Analisis ini menghasilkan konsumsi sumber daya dan meningkatkan waktu penyelesaian pemutakhiran

Amazon RDS menjalankan semua pemeriksaan awal ini hanya untuk pemutakhiran dari MySQL 5. 7 hingga MySQL 8. 0. Untuk upgrade dari MySQL 5. 6 hingga MySQL5. 7, pemeriksaan awal terbatas untuk mengonfirmasi bahwa tidak ada tabel anak yatim dan bahwa ada ruang penyimpanan yang cukup untuk membangun kembali tabel. Prapemeriksaan tidak dijalankan untuk pemutakhiran ke rilis yang lebih rendah dari MySQL 5. 7

Kembalikan setelah gagal memutakhirkan dari MySQL 5. 7 sampai 8. 0

Saat Anda memutakhirkan instans DB dari MySQL versi 5. 7 ke MySQL versi 8. 0, pemutakhiran bisa gagal. Khususnya, ini bisa gagal jika kamus data berisi ketidaksesuaian yang tidak ditangkap oleh pemeriksaan awal. Dalam hal ini, database gagal memulai dengan sukses di MySQL 8 yang baru. 0 versi. Pada titik ini, Amazon RDS mengembalikan perubahan yang dilakukan untuk pemutakhiran. Setelah rollback, instance MySQL DB menjalankan MySQL versi 5. 7. Saat pemutakhiran gagal dan dibatalkan, Amazon RDS menghasilkan peristiwa dengan ID peristiwa RDS-EVENT-0188

Biasanya, pemutakhiran gagal karena ada ketidaksesuaian dalam metadata antara database di instans DB Anda dan versi MySQL target. Saat pemutakhiran gagal, Anda dapat melihat detail tentang ketidaksesuaian ini di file

SET show_old_temporals = ON;
   SELECT table_schema, table_name,column_name, column_type
   FROM information_schema.columns
   WHERE column_type LIKE '%/* 5.5 binary format */';
   SET show_old_temporals = OFF;
0. Atasi ketidakcocokan sebelum mencoba memutakhirkan lagi

Selama upaya pemutakhiran dan rollback yang gagal, instans DB Anda akan dimulai ulang. Setiap perubahan parameter yang tertunda diterapkan selama restart dan bertahan setelah rollback

Untuk informasi selengkapnya tentang memutakhirkan ke MySQL 8. 0, lihat topik berikut dalam dokumentasi MySQL

Saat ini, rollback otomatis setelah kegagalan pemutakhiran hanya didukung untuk MySQL 5. 7 sampai 8. 0 peningkatan versi utama

Menguji peningkatan

Sebelum Anda melakukan pemutakhiran versi utama pada instans DB Anda, uji secara menyeluruh database Anda untuk kompatibilitas dengan versi baru. Selain itu, uji secara menyeluruh semua aplikasi yang mengakses database untuk kompatibilitas dengan versi baru. Kami menyarankan Anda menggunakan prosedur berikut

Untuk menguji peningkatan versi utama

  1. Tinjau dokumentasi pemutakhiran untuk versi baru mesin database untuk melihat apakah ada masalah kompatibilitas yang mungkin memengaruhi database atau aplikasi Anda

  2. Jika instans DB Anda adalah anggota grup parameter DB khusus, buat grup parameter DB baru dengan pengaturan Anda yang sudah ada yang kompatibel dengan versi utama yang baru. Tentukan grup parameter DB baru saat Anda memutakhirkan instans pengujian, sehingga pengujian pemutakhiran Anda memastikan bahwa itu berfungsi dengan benar. Untuk informasi selengkapnya tentang membuat grup parameter DB, lihat Bekerja dengan grup parameter

  3. Buat snapshot DB dari instans DB yang akan ditingkatkan. Untuk informasi selengkapnya, lihat Membuat snapshot DB

  4. Pulihkan snapshot DB untuk membuat instans DB pengujian baru. Untuk informasi selengkapnya, lihat Memulihkan dari snapshot DB

  5. Ubah instans DB pengujian baru ini untuk memutakhirkannya ke versi baru, menggunakan salah satu metode yang dirinci berikut ini. Jika Anda membuat grup parameter baru di langkah 2, tentukan grup parameter tersebut

  6. Evaluasi penyimpanan yang digunakan oleh instans yang dimutakhirkan untuk menentukan apakah pemutakhiran memerlukan penyimpanan tambahan

  7. Jalankan pengujian jaminan kualitas Anda terhadap instans DB yang ditingkatkan sebanyak yang diperlukan untuk memastikan bahwa database dan aplikasi Anda bekerja dengan benar dengan versi baru. Terapkan pengujian baru apa pun yang diperlukan untuk mengevaluasi dampak masalah kompatibilitas apa pun yang Anda identifikasi di langkah 1. Uji semua prosedur dan fungsi tersimpan. Versi pengujian langsung aplikasi Anda ke instans DB yang ditingkatkan

  8. Jika semua pengujian lulus, lakukan pemutakhiran pada instans DB produksi Anda. Kami menyarankan agar Anda tidak mengizinkan operasi tulis ke instans DB sampai Anda mengonfirmasi bahwa semuanya berfungsi dengan benar

Mengupgrade instance MySQL DB

Untuk informasi tentang mengupgrade instans DB MySQL secara manual atau otomatis, lihat Mengupgrade versi mesin instans DB

Pembaruan versi minor otomatis untuk MySQL

Jika Anda menentukan pengaturan berikut saat membuat atau memodifikasi instans DB, instans DB Anda dapat ditingkatkan secara otomatis

  • Setelan pemutakhiran versi minor otomatis diaktifkan

  • Pengaturan periode penyimpanan cadangan lebih besar dari 0

Di AWS Management Console, pengaturan ini berada di Konfigurasi tambahan. Gambar berikut menunjukkan pengaturan peningkatan versi Auto minor

Bagaimana cara memutakhirkan ke versi terbaru mysql?

Untuk informasi lebih lanjut tentang pengaturan ini, lihat

Untuk beberapa RDS untuk versi utama MySQL di beberapa Wilayah AWS, satu versi minor ditetapkan oleh RDS sebagai versi pemutakhiran otomatis. Setelah versi minor diuji dan disetujui oleh Amazon RDS, pemutakhiran versi minor terjadi secara otomatis selama masa pemeliharaan Anda. RDS tidak secara otomatis menetapkan versi minor yang dirilis lebih baru sebagai versi pemutakhiran otomatis. Sebelum RDS menetapkan versi pemutakhiran otomatis yang lebih baru, beberapa kriteria dipertimbangkan, seperti berikut ini

  • Masalah keamanan yang diketahui

  • Bug dalam versi komunitas MySQL

  • Stabilitas armada secara keseluruhan sejak versi minor dirilis

Anda dapat menggunakan perintah AWS CLI berikut untuk menentukan versi target pemutakhiran minor otomatis saat ini untuk versi minor MySQL yang ditentukan di Wilayah AWS tertentu

Untuk Linux, macOS, atau Unix

aws rds describe-db-engine-versions \
--engine mysql \
--engine-version minor-version \
--region region \
--query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" \
--output text

Untuk Windows

aws rds describe-db-engine-versions ^
--engine mysql ^
--engine-version minor-version ^
--region region ^
--query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" ^
--output text

Misalnya, perintah AWS CLI berikut menentukan target pemutakhiran minor otomatis untuk MySQL minor versi 8. 0. 11 di Wilayah AWS AS Timur (Ohio) (us-timur-2)

Untuk Linux, macOS, atau Unix

aws rds describe-db-engine-versions \
--engine mysql \
--engine-version 8.0.11 \
--region us-east-2 \
--query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" \
--output table

Untuk Windows

aws rds describe-db-engine-versions ^
--engine mysql ^
--engine-version 8.0.11 ^
--region us-east-2 ^
--query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" ^
--output table

Output Anda mirip dengan yang berikut ini

----------------------------------
|    DescribeDBEngineVersions    |
+--------------+-----------------+
|  AutoUpgrade |  EngineVersion  |
+--------------+-----------------+
|  False       |  8.0.15         |
|  False       |  8.0.16         |
|  False       |  8.0.17         |
|  False       |  8.0.19         |
|  False       |  8.0.20         |
|  False       |  8.0.21         |
|  True        |  8.0.23         |
|  False       |  8.0.25         |
+--------------+-----------------+

Dalam contoh ini, nilai

SET show_old_temporals = ON;
   SELECT table_schema, table_name,column_name, column_type
   FROM information_schema.columns
   WHERE column_type LIKE '%/* 5.5 binary format */';
   SET show_old_temporals = OFF;
_1 adalah
SET show_old_temporals = ON;
   SELECT table_schema, table_name,column_name, column_type
   FROM information_schema.columns
   WHERE column_type LIKE '%/* 5.5 binary format */';
   SET show_old_temporals = OFF;
2 untuk MySQL versi 8. 0. 23. Jadi, target upgrade minor otomatis adalah MySQL versi 8. 0. 23, yang disorot dalam output

Instans DB MySQL dimutakhirkan secara otomatis selama masa pemeliharaan Anda jika kriteria berikut terpenuhi

  • Setelan pemutakhiran versi minor otomatis diaktifkan

  • Pengaturan periode penyimpanan cadangan lebih besar dari 0

  • Instans DB menjalankan versi mesin DB minor yang lebih kecil dari versi minor pemutakhiran otomatis saat ini

Untuk informasi lebih lanjut, lihat

Dalam kebanyakan kasus, penerapan biru/hijau adalah opsi terbaik untuk mengurangi waktu henti saat meningkatkan instans DB MySQL. Untuk informasi selengkapnya, lihat Menggunakan Amazon RDS Blue/Green Deployment untuk pembaruan database

Jika Anda tidak dapat menggunakan penerapan biru/hijau dan instans DB MySQL Anda sedang digunakan dengan aplikasi produksi, Anda dapat menggunakan prosedur berikut untuk memutakhirkan versi database instans DB Anda. Prosedur ini dapat mengurangi jumlah downtime untuk aplikasi Anda

Dengan menggunakan replika baca, Anda dapat melakukan sebagian besar langkah pemeliharaan sebelumnya dan meminimalkan perubahan yang diperlukan selama pemadaman yang sebenarnya. Dengan teknik ini, Anda dapat menguji dan menyiapkan instans DB baru tanpa melakukan perubahan apa pun pada instans DB yang ada

Prosedur berikut menunjukkan contoh pemutakhiran dari MySQL versi 5. 7 ke MySQL versi 8. 0. Anda dapat menggunakan langkah-langkah umum yang sama untuk memutakhirkan ke versi utama lainnya

Ketika Anda memutakhirkan dari MySQL versi 5. 7 ke MySQL versi 8. 0, selesaikan pemeriksaan awal sebelum melakukan pemutakhiran. Untuk informasi lebih lanjut, lihat

Untuk memutakhirkan database MySQL saat instans DB sedang digunakan

  1. Masuk ke AWS Management Console dan buka konsol Amazon RDS di https. //menghibur. aws. amazon. com/rds/

  2. Buat replika baca MySQL 5 Anda. 7 instans DB. Proses ini membuat salinan database Anda yang dapat diupgrade. Replika baca lainnya dari instans DB mungkin juga ada

    1. Di konsol, pilih Database, lalu pilih instans DB yang ingin Anda tingkatkan

    2. Untuk Tindakan, pilih Buat replika baca

    3. Berikan nilai untuk pengidentifikasi instans DB untuk replika baca Anda dan pastikan bahwa kelas instans DB dan pengaturan lainnya cocok dengan MySQL 5 Anda. 7 instans DB

    4. Pilih Buat replika baca

  3. (Opsional) Saat replika baca telah dibuat dan Status menampilkan Tersedia, ubah replika baca menjadi penerapan Multi-AZ dan aktifkan pencadangan

    Secara default, replika baca dibuat sebagai penerapan Single-AZ dengan pencadangan dinonaktifkan. Karena replika baca pada akhirnya menjadi instans DB produksi, praktik terbaik adalah mengonfigurasi penerapan Multi-AZ dan mengaktifkan pencadangan sekarang

    1. Di konsol, pilih Database, lalu pilih replika baca yang baru saja Anda buat

    2. Pilih Ubah

    3. Untuk penerapan Multi-AZ, pilih Buat instans siaga

    4. Untuk Periode Retensi Pencadangan, pilih nilai bukan nol positif, seperti 3 hari, lalu pilih Lanjutkan

    5. Untuk Penjadwalan modifikasi, pilih Terapkan segera

    6. Pilih Ubah instans DB

  4. Ketika Status replika baca menunjukkan Tersedia, tingkatkan replika baca ke MySQL 8. 0

    1. Di konsol, pilih Database, lalu pilih replika baca yang baru saja Anda buat

    2. Pilih Ubah

    3. Untuk versi mesin DB, pilih MySQL 8. 0 versi untuk ditingkatkan, lalu pilih Lanjutkan

    4. Untuk Penjadwalan modifikasi, pilih Terapkan segera

    5. Pilih Ubah instans DB untuk memulai pemutakhiran

  5. Ketika pemutakhiran selesai dan Status menunjukkan Tersedia, verifikasi bahwa replika baca yang ditingkatkan mutakhir dengan sumber MySQL 5. 7 instans DB. Untuk memverifikasi, sambungkan ke replika baca dan jalankan perintah

    SET show_old_temporals = ON;
       SELECT table_schema, table_name,column_name, column_type
       FROM information_schema.columns
       WHERE column_type LIKE '%/* 5.5 binary format */';
       SET show_old_temporals = OFF;
    3. Jika bidang
    SET show_old_temporals = ON;
       SELECT table_schema, table_name,column_name, column_type
       FROM information_schema.columns
       WHERE column_type LIKE '%/* 5.5 binary format */';
       SET show_old_temporals = OFF;
    4 adalah
    SET show_old_temporals = ON;
       SELECT table_schema, table_name,column_name, column_type
       FROM information_schema.columns
       WHERE column_type LIKE '%/* 5.5 binary format */';
       SET show_old_temporals = OFF;
    5, maka replikasi adalah yang terbaru

    Versi MySQL sebelumnya menggunakan

    SET show_old_temporals = ON;
       SELECT table_schema, table_name,column_name, column_type
       FROM information_schema.columns
       WHERE column_type LIKE '%/* 5.5 binary format */';
       SET show_old_temporals = OFF;
    _6 alih-alih
    SET show_old_temporals = ON;
       SELECT table_schema, table_name,column_name, column_type
       FROM information_schema.columns
       WHERE column_type LIKE '%/* 5.5 binary format */';
       SET show_old_temporals = OFF;
    3. Jika Anda menggunakan versi MySQL sebelum 8. 0. 23, lalu gunakan
    SET show_old_temporals = ON;
       SELECT table_schema, table_name,column_name, column_type
       FROM information_schema.columns
       WHERE column_type LIKE '%/* 5.5 binary format */';
       SET show_old_temporals = OFF;
    _6

  6. (Opsional) Buat replika baca dari replika baca Anda

    Jika Anda ingin instans DB memiliki replika baca setelah dipromosikan menjadi instans DB mandiri, Anda dapat membuat replika baca sekarang

    1. Di konsol, pilih Database, lalu pilih replika baca yang baru saja Anda tingkatkan

    2. Untuk Tindakan, pilih Buat replika baca

    3. Berikan nilai untuk pengidentifikasi instans DB untuk replika baca Anda dan pastikan bahwa kelas instans DB dan pengaturan lainnya cocok dengan MySQL 5 Anda. 7 instans DB

    4. Pilih Buat replika baca

  7. (Opsional) Konfigurasikan grup parameter DB kustom untuk replika baca

    Jika Anda ingin instans DB menggunakan grup parameter khusus setelah dipromosikan menjadi instans DB mandiri, Anda dapat membuat grup parameter DB sekarang dan mengaitkannya dengan replika baca

    1. Buat grup parameter DB khusus untuk MySQL 8. 0. Untuk instruksi, lihat

    2. Ubah parameter yang ingin Anda ubah di grup parameter DB yang baru saja Anda buat. Untuk instruksi, lihat

    3. Di konsol, pilih Database, lalu pilih replika baca

    4. Pilih Ubah

    5. Untuk grup parameter DB, pilih MySQL 8. 0 grup parameter DB yang baru saja Anda buat, lalu pilih Lanjutkan

    6. Untuk Penjadwalan modifikasi, pilih Terapkan segera

    7. Pilih Ubah instans DB untuk memulai pemutakhiran

  8. Jadikan MySQL 8 Anda. 0 membaca replika instans DB mandiri

    Saat Anda mempromosikan MySQL 8. 0 baca replika ke instans DB mandiri, ini bukan lagi replika MySQL 5 Anda. 7 instans DB. Kami menyarankan Anda mempromosikan MySQL 8 Anda. 0 baca replika selama masa pemeliharaan saat sumber MySQL 5. 7 Instans DB dalam mode hanya baca dan semua operasi tulis ditangguhkan. Saat promosi selesai, Anda dapat mengarahkan operasi tulis Anda ke MySQL 8 yang ditingkatkan. 0 instans DB untuk memastikan tidak ada operasi tulis yang hilang

    Selain itu, kami menyarankan, sebelum mempromosikan MySQL 8 Anda. 0 baca replika, Anda melakukan semua operasi bahasa definisi data (DDL) yang diperlukan pada MySQL 8 Anda. 0 membaca replika. Contohnya adalah membuat indeks. Pendekatan ini menghindari efek negatif pada kinerja MySQL 8. 0 baca replika setelah dipromosikan. Untuk mempromosikan replika baca, gunakan prosedur berikut

    1. Di konsol, pilih Database, lalu pilih replika baca yang baru saja Anda tingkatkan

    2. Untuk Tindakan, pilih Promosikan

    3. Pilih Ya untuk mengaktifkan pencadangan otomatis untuk instans replika baca. Untuk informasi selengkapnya, lihat Bekerja dengan cadangan

    4. Pilih Lanjutkan

    5. Pilih Promosikan Baca Replika

  9. Anda sekarang memiliki versi upgrade dari database MySQL Anda. Pada titik ini, Anda dapat mengarahkan aplikasi Anda ke MySQL 8 yang baru. 0 instans DB

    Cara memutakhirkan MySQL dari 5. 7 sampai 8?

    Yang perlu Anda lakukan hanyalah menjalankan apt upgrade atau yum update dan Anda sudah siap. Pemutakhiran bahkan lebih mudah – di masa lalu harus diingat untuk menjalankan mysql_upgrade untuk memastikan semua tabel sistem ditingkatkan dengan benar ke format yang diperlukan oleh versi baru MySQL.

    Bagaimana cara meningkatkan versi MySQL?

    Gunakan mysql_upgrade seperti ini. .
    Pastikan bahwa server berjalan
    Aktifkan mysql_upgrade untuk memutakhirkan tabel sistem di skema mysql dan periksa serta perbaiki tabel di skema lain. mysql_upgrade [opsi]
    Hentikan server dan mulai ulang agar perubahan tabel sistem berlaku

    Bagaimana cara memperbarui MySQL di Windows?

    Mulai penginstal MySQL. Dari dasbor, klik 'Katalog', yang akan mengunduh perubahan terbaru yang akan terjadi di katalog. Server yang telah diinstal dapat ditingkatkan hanya jika dasbor menampilkan tanda panah di sebelah nomor versi server. Sekarang klik 'Tingkatkan'

    Bagaimana cara mengunduh MySQL versi terbaru untuk Windows 10?

    Cara Mengunduh Edisi Komunitas Gratis MySQL .
    Buka situs web MySQL dan pilih Unduhan
    Pilih Unduhan Komunitas MySQL (GPL). .
    Pada halaman berikutnya, pilih MySQL Community Server
    Gulir ke bawah ke bagian bawah halaman dan pilih Go to Download Page di samping Windows (x86, 32 & 64-bit), MySQL Installer MSI