Meningkatkan mesin DB MySQL - Layanan Basis Data Relasional Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Meningkatkan mesin DB MySQL

Ketika Amazon RDS mendukung versi baru mesin basis data, Anda dapat meningkatkan instans DB Anda ke versi baru. Ada dua jenis peningkatan untuk basis data MySQL: peningkatan versi mayor dan peningkatan versi minor.

Peningkatan versi mayor

Peningkatan versi mayor dapat berisi perubahan basis data yang tidak memiliki kompatibilitas mundur dengan aplikasi yang ada. Oleh karena itu, Anda harus melakukan peningkatan versi mayor untuk instans DB Anda secara manual. Anda dapat memulai peningkatan versi mayor dengan mengubah instans DB Anda. Sebelum Anda melakukan peningkatan versi mayor, kami sarankan agar Anda mengikuti petunjuk dalam Peningkatan versi mayor untuk MySQL.

Untuk peningkatan versi mayor terhadap deployment instans DB Multi-AZ, Amazon RDS secara bersamaan meningkatkan replika utama dan siaga. Instans DB Anda tidak akan tersedia hingga peningkatan selesai. Saat ini, Amazon RDS tidak mendukung peningkatan versi mayor untuk deployment klaster DB Multi-AZ.

Tip

Anda dapat meminimalkan waktu henti yang diperlukan untuk peningkatan versi mayor dengan menggunakan deployment blue/green. Untuk informasi selengkapnya, lihat Menggunakan Deployment Blue/Green Amazon RDS untuk pembaruan basis data.

Peningkatan versi minor

Peningkatan versi minor hanya mencakup perubahan yang memiliki kompatibilitas mundur dengan aplikasi yang ada. Anda dapat memulai peningkatan versi minor secara manual dengan memodifikasi instans DB Anda. Atau Anda dapat mengaktifkan opsi Peningkatan versi minor otomatis saat membuat atau memodifikasi instans DB. Tindakan ini akan membuat Amazon RDS secara otomatis meningkatkan instans DB Anda setelah menguji dan menyetujui versi baru. Untuk informasi tentang melakukan peningkatan, lihat Meningkatkan versi mesin instans DB.

Saat Anda melakukan peningkatan versi minor klaster DB Multi-AZ, Amazon RDS meningkatkan instans DB pembaca satu per satu. Kemudian, salah satu instans DB pembaca beralih menjadi instans DB penulis baru. Amazon RDS kemudian meningkatkan instans penulis lama (yang sekarang menjadi instans pembaca).

catatan

Waktu henti untuk peningkatan versi minor deployment instans DB Multi-AZ dapat berlangsung selama beberapa menit. Klaster DB Multi-AZ biasanya mengurangi waktu henti peningkatan versi minor menjadi sekitar 35 detik. Saat digunakan dengan Proksi RDS, Anda dapat mengurangi waktu henti menjadi satu detik atau kurang. Untuk informasi selengkapnya, lihat Menggunakan Proksi Amazon RDS. Sebagai alternatif, Anda dapat menggunakan proxy database open source seperti ProxySQL, PgBouncer, atau Driver AWS JDBC untuk MySQL.

Jika instans DB MySQL Anda menggunakan replika baca, maka Anda harus meningkatkan semua replika baca sebelum meningkatkan instans sumber.

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 AWS CLI perintah 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 instance MySQL versi 8.0.28 DB, jalankan perintah berikut: AWS CLI

Untuk Linux, macOS, atau Unix:

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

Untuk Windows:

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

Amazon RDS mengambil dua atau lebih snapshot DB selama proses peningkatan. Amazon RDS mengambil hingga dua snapshot dari instans DB sebelum melakukan perubahan peningkatan. Jika peningkatan tidak berfungsi untuk basis data Anda, Anda dapat memulihkan salah satu snapshot ini untuk membuat instans DB yang menjalankan versi lama. Amazon RDS mengambil snapshot lain dari instans DB saat peningkatan selesai. Amazon RDS mengambil snapshot ini terlepas dari apakah AWS Backup mengelola cadangan untuk instans DB.

catatan

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

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

Anda mengontrol waktu untuk meningkatkan instans DB Anda ke versi baru yang didukung oleh Amazon RDS. Tingkat kontrol ini membantu Anda menjaga kompatibilitas dengan versi basis data spesifik dan menguji versi baru untuk aplikasi Anda sebelum menerapkannya dalam produksi. Saat Anda siap, Anda dapat melakukan peningkatan versi pada waktu yang paling cocok dengan jadwal Anda.

Jika instans DB Anda menggunakan replikasi baca, maka Anda harus meningkatkan semua replika baca sebelum meningkatkan instans sumber.

Nomor versi MySQL

Urutan penomoran versi untuk RDS untuk mesin database MySQL baik dalam bentuk major.minor.patch.yyyymmdd atau major.minor.patch, misalnya, 8.0.33.R2.20231201 atau 5.7.44. Format yang digunakan tergantung pada versi mesin MySQL. Untuk informasi tentang penomoran versi RDS Extended Support, lihat. Penamaan versi Amazon RDS Extended Support

mayor

Nomor versi utama adalah bilangan bulat dan bagian fraksional pertama dari nomor versi, misalnya, 8.0. Peningkatan versi mayor akan meningkatkan bagian mayor dari nomor versi. Misalnya, upgrade dari 5.7 .44 ke 8.0.33 adalah upgrade versi utama, di mana 5.7 dan 8.0 adalah nomor versi utama.

kecil

Nomor versi minor adalah bagian ketiga dari nomor versi, misalnya, 33 di 8.0.33.

tambalan

Patch adalah bagian keempat dari nomor versi, misalnya, R2 di 8.0.33.R2. Versi patch RDS mencakup perbaikan bug penting yang ditambahkan ke versi minor setelah dirilis.

YYYMMDD

Tanggal adalah bagian kelima dari nomor versi, misalnya, 20231201 di 8.0.33.R2.20231201. Versi tanggal RDS adalah patch keamanan yang mencakup perbaikan keamanan penting yang ditambahkan ke versi minor setelah dirilis. Itu tidak termasuk perbaikan apa pun yang mungkin mengubah perilaku mesin.

Tabel berikut menjelaskan skema penamaan untuk RDS untuk MySQL versi 8.0.

8.0 versi minor Skema penamaan
≥ 33 Instans DB baru menggunakan major.minor.patch.YYMMDD, misalnya, 8.0.33.R2.20231201.

Instans DB yang ada mungkin menggunakan major.minor.patch, misalnya, 8.0.33.R2, hingga versi mayor atau minor Anda berikutnya ditingkatkan.

< 33 Instans DB yang ada menggunakan major.minor.patch, misalnya, 8.0.32.R2.

Tabel berikut menjelaskan skema penamaan untuk RDS untuk MySQL versi 5.7.

5.7 versi minor Skema penamaan
≥ 42 Instans DB baru menggunakan major.minor.patch.YYMMDD, misalnya, 5.7.42.R2.20231201.

Instans DB yang ada mungkin menggunakan major.minor.patch, misalnya, 5.7.42.R2, hingga versi mayor atau minor Anda berikutnya ditingkatkan.

Nomor versi RDS

Nomor versi RDS menggunakan skema major.minor.patch atau major.minor.patch.YYYYMMDD penamaan. Versi patch RDS mencakup perbaikan bug penting yang ditambahkan ke versi minor setelah dirilis. Versi tanggal RDS (YYMMDD) adalah patch keamanan. Patch keamanan tidak menyertakan perbaikan apa pun yang dapat mengubah perilaku mesin. Untuk informasi tentang penomoran versi RDS Extended Support, lihat. Penamaan versi Amazon RDS Extended Support

Untuk mengidentifikasi nomor versi Amazon RDS untuk basis data Anda, Anda harus terlebih dahulu membuat ekstensi rds_tools dengan menggunakan perintah berikut:

CREATE EXTENSION rds_tools;

Anda dapat mengetahui nomor versi RDS dari database RDS untuk MySQL Anda dengan kueri SQL berikut:

mysql> select mysql.rds_version();

Misalnya, query RDS untuk MySQL 8.0.34 database mengembalikan output berikut:

+---------------------+ | mysql.rds_version() | +---------------------+ | 8.0.34.R2.20231201 | +---------------------+ 1 row in set (0.01 sec)

Peningkatan versi mayor untuk MySQL

Amazon RDS mendukung peningkatan di tempat berikut untuk versi mayor mesin basis data MySQL:

  • MySQL 5.6 ke MySQL 5.7

  • MySQL 5.7 ke MySQL 8.0

catatan

Anda hanya dapat membuat instans DB MySQL versi 5.7 dan 8.0 dengan kelas instans DB generasi terbaru dan generasi saat ini, selain kelas instans DB db.m3 generasi sebelumnya.

Dalam beberapa kasus, Anda sebaiknya meningkatkan instans DB MySQL versi 5.6 yang berjalan pada kelas instans DB generasi sebelumnya (selain db.m3) ke instans DB MySQL versi 5.7. Dalam hal ini, pertama-tama modifikasi instans DB untuk menggunakan kelas instans DB generasi terbaru atau generasi saat ini. Setelah Anda melakukannya, Anda lalu dapat memodifikasi instans DB untuk menggunakan mesin basis data MySQL versi 5.7. Untuk informasi kelas instans DB Amazon RDS, lihat Kelas instans DB .

Gambaran umum peningkatan versi mayor MySQL

Peningkatan versi mayor dapat berisi perubahan basis data yang tidak memiliki kompatibilitas mundur dengan aplikasi yang ada. Akibatnya, Amazon RDS tidak menerapkan peningkatan versi mayor secara otomatis; Anda harus memodifikasi instans DB secara manual. Kami menyarankan Anda untuk menguji peningkatan apa pun secara menyeluruh sebelum menerapkannya ke instans produksi Anda.

Untuk melakukan peningkatan versi mayor untuk instans DB MySQL versi 5.6 pada Amazon RDS ke MySQL versi 5.7 atau lebih baru, lakukan pembaruan OS yang tersedia terlebih dahulu. Setelah pembaruan OS selesai, tingkatkan ke masing-masing versi mayor: 5.6 ke 5.7, lalu 5.7 ke 8.0. Instans DB MySQL yang dibuat sebelum tanggal 24 April 2014 akan menunjukkan pembaruan OS yang tersedia hingga pembaruan ini diterapkan. Untuk informasi selengkapnya tentang pembaruan OS, lihat Menerapkan pembaruan untuk instans DB.

Selama peningkatan versi mayor MySQL, Amazon RDS menjalankan mysql_upgrade biner MySQL untuk meningkatkan tabel, jika perlu. Selain itu, Amazon RDS mengosongkan tabel slow_log dan general_log selama peningkatan versi mayor. Untuk mempertahankan informasi log, simpan konten log sebelum peningkatan versi mayor.

Peningkatan versi mayor MySQL biasanya selesai dalam waktu sekitar 10 menit. Beberapa peningkatan mungkin memakan waktu lebih lama karena ukuran kelas instans DB atau karena instans tidak mengikuti panduan operasional tertentu dalam Praktik terbaik untuk Amazon RDS. Jika Anda meningkatkan instans DB dari konsol Amazon RDS, status instans DB menunjukkan waktu peningkatan selesai. Jika Anda meng-upgrade menggunakan AWS Command Line Interface (AWS CLI), gunakan describe-db-instancesperintah dan periksa Status nilainya.

Peningkatan ke MySQL versi 5.7 mungkin berjalan lambat

MySQL versi 5.6.4 memperkenalkan format tanggal dan waktu baru untuk kolom datetime, time, dan timestamp yang memungkinkan komponen pecahan dalam nilai tanggal dan waktu. Saat meningkatkan 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 perlu waktu yang cukup lama untuk menyelesaikan peningkatan instans DB. Konversi paksa terjadi untuk setiap instans DB yang menjalankan versi sebelum MySQL versi 5.6.4. Hal ini 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 sebuah langkah tambahan. Dalam kasus ini, kami menyarankan Anda untuk mengonversi kolom datetime, time, dan timestamp di basis data Anda sebelum meningkatkan instans DB Anda ke MySQL versi 5.7. Konversi ini dapat secara signifikan mengurangi jumlah waktu yang diperlukan untuk meningkatkan instans DB ke MySQL versi 5.7. Untuk meningkatkan kolom tanggal dan waktu Anda ke format baru, berikan perintah ALTER TABLE <table_name> FORCE; untuk setiap tabel yang berisi kolom tanggal dan waktu. Karena mengubah tabel akan mengunci tabel sebagai hanya baca, kami menyarankan Anda melakukan pembaruan ini selama periode pemeliharaan.

Untuk menemukan semua tabel di basis data Anda yang memiliki datetime, time, atau timestamp dan membuat ALTER TABLE <table_name> FORCE; perintah untuk setiap tabel, gunakan kueri berikut.

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;

Pra-pemeriksaan untuk peningkatan dari MySQL 5.7 ke 8.0

MySQL 8.0 menyertakan sejumlah inkompatibilitas dengan MySQL 5.7. Inkompatibilitas ini dapat menyebabkan masalah selama peningkatan dari MySQL 5.7 ke MySQL 8.0. Jadi, beberapa persiapan mungkin diperlukan di basis data Anda agar peningkatan berhasil. Berikut ini adalah daftar umum inkompatibilitas tersebut:

  • Tidak boleh ada tabel yang menggunakan jenis atau fungsi data yang usang.

  • Tidak boleh ada file orphan *.frm.

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

  • Tidak boleh ada tabel partisi yang menggunakan mesin penyimpanan yang tidak memiliki dukungan partisi native.

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

    Untuk informasi selengkapnya, lihat Keywords and reserved words dalam dokumentasi MySQL.

  • Tidak boleh ada tabel di basis data sistem mysql MySQL 5.7 yang memiliki nama yang sama dengan tabel yang digunakan oleh kamus data MySQL 8.0.

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

  • Tidak boleh ada tabel atau prosedur tersimpan dengan elemen kolom individu ENUM atau SET dengan panjang melebihi 255 karakter atau 1020 byte.

  • Sebelum melakukan peningkatan ke MySQL 8.0.13 atau lebih tinggi, tidak boleh ada partisi tabel yang berada di ruang tabel InnoDB yang dibagikan.

  • Tidak boleh ada kueri dan definisi program tersimpan dari MySQL 8.0.12 atau lebih rendah yang menggunakan pengualifikasi ASC atau DESC untuk klausa GROUP BY.

  • Penginstalan MySQL 5.7 Anda tidak boleh menggunakan fitur yang tidak didukung di MySQL 8.0.

    Untuk informasi selengkapnya, lihat Features removed in MySQL 8.0 dalam dokumentasi MySQL.

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

  • Untuk peningkatan dukungan Unicode, pertimbangkan untuk mengonversi objek yang menggunakan charset utf8mb3 agar menggunakan charset utf8mb4. Set karakter utf8mb3 sudah tidak digunakan lagi. Selain itu, pertimbangkan untuk menggunakan utf8mb4 untuk referensi set karakter, bukan utf8, karena saat ini utf8 adalah alias untuk set karakter utf8mb3.

    Untuk informasi selengkapnya, lihat The utf8mb3 character set (3-byte UTF-8 unicode encoding) dalam dokumentasi MySQL.

Saat Anda memulai peningkatan dari MySQL 5.7 ke 8.0, Amazon RDS menjalankan pra-pemeriksaan secara otomatis untuk mendeteksi inkompatibilitas ini. Untuk informasi tentang peningkatan ke MySQL 8.0, lihat Upgrading MySQL dalam dokumentasi MySQL.

Pra-pemeriksaan ini wajib dilakukan. Anda tidak dapat memilih untuk melewatinya. Pra-pemeriksaan menyediakan manfaat berikut:

  • Hal ini memungkinkan Anda menghindari waktu henti yang tidak direncanakan selama peningkatan.

  • Jika ada inkompatibilitas, Amazon RDS mencegah peningkatan dan menyediakan log bagi Anda untuk mempelajarinya. Kemudian, Anda dapat menggunakan log ini untuk menyiapkan basis data Anda untuk peningkatan ke MySQL 8.0 dengan mengurangi inkompatibilitas. Untuk informasi terperinci tentang cara mengatasi inkompatibilitas, lihat Preparing your installation for upgrade dalam dokumentasi MySQL dan Upgrading to MySQL 8.0? Inilah yang perlu Anda ketahui... di Blog MySQL Server.

Sebagian pra-pemeriksaan disertakan dengan MySQL dan sebagian lainnya dibuat secara khusus oleh tim Amazon RDS. Untuk informasi tentang pra-pemeriksaan yang disediakan oleh MySQL, lihat Peningkatan checker utility.

Pra-pemeriksaan berjalan sebelum instans DB dihentikan untuk peningkatan, sehingga instans tersebut tidak akan menyebabkan waktu henti ketika berjalan. Jika pra-pemeriksaan menemukan inkompatibilitas, Amazon RDS secara otomatis membatalkan peningkatan sebelum instans DB dihentikan. Amazon RDS juga menghasilkan peristiwa untuk inkompatibilitas. Untuk informasi selengkapnya tentang peristiwa Amazon RDS, lihat Menggunakan pemberitahuan peristiwa Amazon RDS.

Amazon RDS mencatat informasi terperinci tentang setiap inkompatibilitas dalam file log PrePatchCompatibility.log. Dalam kebanyakan kasus, entri log berisi tautan ke dokumentasi MySQL untuk mengoreksi inkompatibilitas. Untuk informasi selengkapnya tentang format file log, lihat Melihat dan mencantumkan file log basis data.

Karena sifatnya, pra-pemeriksaan akan menganalisis objek di basis data Anda. Analisis ini mengakibatkan konsumsi sumber daya dan menambah waktu penyelesaian peningkatan.

catatan

Amazon RDS menjalankan semua pra-pemeriksaan ini hanya untuk peningkatan dari MySQL 5.7 ke MySQL 8.0. Untuk peningkatan dari MySQL 5.6 ke MySQL 5.7, pra-pemeriksaan terbatas untuk mengonfirmasi bahwa tidak ada tabel orphan dan ada ruang penyimpanan yang cukup untuk membuat ulang tabel. Pra-pemeriksaan tidak dijalankan untuk peningkatan terhadap rilis yang lebih rendah daripada MySQL 5.7.

Rollback setelah kegagalan untuk meningkatkan dari MySQL 5.7 ke 8.0

Ketika Anda meningkatkan instans DB dari MySQL versi 5.7 ke MySQL versi 8.0, tingkatkan dapat gagal. Secara khusus, tingkatkan dapat gagal jika kamus data memiliki inkompatibilitas yang tidak terdeteksi oleh pra-pemeriksaan. Dalam kasus ini, basis data akan gagal diaktifkan dalam versi MySQL 8.0 yang baru. Pada tahap ini, Amazon RDS melakukan rollback perubahan yang dilakukan untuk peningkatan. Setelah rollback, instans DB MySQL menjalankan MySQL versi 5.7. Ketika peningkatan gagal dan di-rollback, Amazon RDS menghasilkan peristiwa dengan ID peristiwa RDS-EVENT-0188.

Biasanya, tingkatkan gagal karena ada inkompatibilitas dalam metadata antara basis data dalam instans DB Anda dan versi MySQL target. Ketika peningkatan gagal, Anda dapat melihat detail tentang inkompatibilitas ini dalam file upgradeFailure.log. Atasi inkompatibilitas sebelum mencoba meningkatkan kembali.

Selama percobaan peningkatan yang gagal dan rollback, instans DB Anda akan diaktifkan ulang. Perubahan parameter tertunda diterapkan selama pengaktifan ulang ini dan dipersistensi setelah rollback.

Untuk informasi tentang peningkatan ke MySQL 8.0, lihat topik-topik berikut dalam dokumentasi MySQL:

catatan

Saat ini, rollback otomatis setelah kegagalan peningkatan hanya didukung untuk peningkatan versi mayor MySQL 5.7 ke 8.0.

Menguji peningkatan

Sebelum Anda melakukan peningkatan versi mayor pada instans DB Anda, uji basis data Anda secara menyeluruh untuk kompatibilitas dengan versi baru. Selain itu, uji secara menyeluruh semua aplikasi yang mengakses basis data untuk kompatibilitas dengan versi baru. Kami menyarankan agar Anda menggunakan prosedur berikut.

Untuk menguji peningkatan versi mayor
  1. Tinjau dokumentasi peningkatan untuk versi baru mesin basis data untuk melihat apakah ada masalah kompatibilitas yang mungkin memengaruhi basis data atau aplikasi Anda:

  2. Jika instans DB Anda adalah anggota dari grup parameter DB kustom, buat grup parameter DB baru dengan pengaturan Anda saat ini yang kompatibel dengan versi mayor yang baru. Tentukan grup parameter DB baru saat Anda meningkatkan instans uji Anda, sehingga pengujian peningkatan Anda memastikan bahwa instans ini berfungsi dengan benar. Untuk informasi selengkapnya tentang cara membuat grup parameter DB, lihat Menggunakan grup parameter.

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

  4. Pulihkan snapshot DB untuk membuat instans DB uji baru. Untuk informasi selengkapnya, lihat Memulihkan ke instans DB.

  5. Modifikasi instans DB uji baru ini untuk ditingkatkan ke versi baru menggunakan salah satu metode yang dijelaskan sebagai berikut. Jika Anda membuat grup parameter baru di langkah 2, tentukan grup parameter tersebut.

  6. Evaluasi penyimpanan yang digunakan oleh instans yang ditingkatkan untuk menentukan apakah peningkatan memerlukan penyimpanan tambahan.

  7. Jalankan pengujian jaminan kualitas terhadap instans DB yang ditingkatkan sebanyak yang diperlukan untuk memastikan bahwa basis data dan aplikasi Anda berfungsi baik dengan versi baru. Terapkan setiap pengujian baru yang diperlukan untuk mengevaluasi dampak dari masalah kompatibilitas yang Anda identifikasi dalam langkah 1. Uji semua prosedur tersimpan dan fungsi. Arahkan versi pengujian aplikasi Anda ke instans DB yang ditingkatkan.

  8. Jika semua pengujian berhasil, maka lakukan peningkatan pada instans DB produksi Anda. Kami menyarankan agar Anda tidak mengizinkan operasi tulis ke instans DB hingga Anda mengonfirmasi bahwa semuanya berfungsi dengan benar.

Meningkatkan instans DB MySQL

Untuk informasi tentang peningkatan instans DB MySQL secara manual atau otomatis, lihat Meningkatkan versi mesin instans DB.

Peningkatan versi minor otomatis untuk MySQL

Jika Anda menentukan pengaturan berikut saat membuat atau memodifikasi instans DB, Anda dapat melakukan peningkatan instans DB secara otomatis.

  • Pengaturan Peningkatan versi minor otomatis diaktifkan.

  • Pengaturan Periode retensi cadangan lebih besar dari 0.

Di AWS Management Console, pengaturan ini berada di bawah Konfigurasi tambahan. Gambar berikut menunjukkan pengaturan Peningkatan versi minor otomatis.

Bagian Pemeliharaan dengan Aktifkan peningkatan versi minor otomatis dipilih di konsol Amazon RDS.

Untuk informasi selengkapnya tentang pengaturan ini, lihat Pengaturan untuk instans DB.

Untuk beberapa RDS untuk versi utama MySQL di Wilayah AWS beberapa, satu versi minor ditunjuk oleh RDS sebagai versi upgrade otomatis. Setelah versi minor diuji dan disetujui oleh Amazon RDS, tingkatkan versi minor terjadi secara otomatis selama periode pemeliharaan Anda. RDS tidak secara otomatis menetapkan versi minor yang lebih baru sebagai versi peningkatan otomatis. Sebelum RDS menetapkan versi peningkatan otomatis yang lebih baru, beberapa kriteria dipertimbangkan, seperti yang berikut ini:

  • Masalah keamanan yang diketahui

  • Bug dalam versi komunitas MySQL

  • Stabilitas armada secara keseluruhan sejak versi minor dirilis

Anda dapat menggunakan AWS CLI perintah berikut untuk menentukan versi target pemutakhiran minor otomatis saat ini untuk versi minor MySQL tertentu secara spesifik. Wilayah AWS

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, AWS CLI perintah berikut menentukan target upgrade minor otomatis untuk MySQL minor versi 8.0.11 di AS Timur (Ohio) (us-east-2). Wilayah AWS

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 akan seperti 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 AutoUpgrade adalah True untuk MySQL versi 8.0.23. Jadi, target peningkatan minor otomatis adalah MySQL versi 8.0.23, yang disorot dalam output.

Instans DB MySQL secara otomatis ditingkatkan selama periode pemeliharaan Anda jika kriteria berikut terpenuhi:

  • Pengaturan Peningkatan versi minor otomatis diaktifkan.

  • Pengaturan Periode retensi cadangan lebih besar dari 0.

  • Instans DB menjalankan versi mesin DB minor yang lebih rendah dari versi minor peningkatan otomatis saat ini.

Untuk informasi selengkapnya, lihat Meningkatkan versi mesin minor secara otomatis.

Menggunakan replika baca untuk mengurangi waktu henti ketika meningkatkan basis data MySQL

Dalam kebanyakan kasus, deployment blue/green adalah opsi terbaik untuk mengurangi waktu henti saat meningkatkan instans MySQL DB. Untuk informasi selengkapnya, lihat Menggunakan Deployment Blue/Green Amazon RDS untuk pembaruan basis data.

Jika Anda tidak dapat menggunakan deployment blue/green dan instans DB MySQL saat ini sedang digunakan dengan aplikasi produksi, Anda dapat menggunakan prosedur berikut untuk meningkatkan versi basis data untuk instans DB Anda. Prosedur ini dapat mengurangi jumlah waktu henti untuk aplikasi Anda.

Dengan menggunakan replika baca, Anda dapat melakukan sebagian besar langkah-langkah pemeliharaan terlebih dahulu dan meminimalkan perubahan yang diperlukan selama pemadaman sebenarnya. Dengan teknik ini, Anda dapat menguji dan mempersiapkan instans DB baru tanpa membuat perubahan pada instans DB Anda yang sudah ada.

Prosedur berikut menunjukkan contoh peningkatan dari MySQL versi 5.7 ke MySQL versi 8.0. Anda dapat menggunakan langkah umum yang sama untuk peningkatan ke versi mayor lainnya.

catatan

Ketika Anda meningkatkan dari MySQL versi 5.7 ke MySQL versi 8.0, selesaikan pra-pemeriksaan sebelum melakukan peningkatan. Untuk informasi selengkapnya, lihat Pra-pemeriksaan untuk peningkatan dari MySQL 5.7 ke 8.0.

Untuk meningkatkan basis data MySQL saat instans DB sedang digunakan
  1. Masuk ke AWS Management Console dan buka konsol Amazon RDS di https://console.aws.amazon.com/rds/.

  2. Buat sebuah replika baca dari instans DB MySQL 5.7 Anda. Proses ini membuat salinan yang dapat ditingkatkan dari basis data Anda. Mungkin ada replika baca lainnya dari instans DB tersebut.

    1. Pada konsol, pilih Basis data, 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 sudah sesuai dengan instans DB MySQL 5.7 Anda.

    4. Pilih Buat replika baca.

  3. (Opsional) Ketika replika baca telah dibuat dan Status menunjukkan Tersedia, ubah replika baca menjadi deployment Multi-AZ dan aktifkan pencadangan.

    Secara default, replika baca dibuat sebagai deployment AZ Tunggal dengan pencadangan dinonaktifkan. Karena replika baca ini akhirnya akan menjadi instans DB produksi, praktik terbaiknya adalah mengonfigurasi deployment Multi-AZ dan mengaktifkan pencadangan sekarang.

    1. Pada konsol, pilih Basis data, lalu pilih replika baca yang baru saja Anda buat.

    2. Pilih Ubah.

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

    4. Untuk Periode Retensi Cadangan, pilih nilai selain nol positif, misalnya 3 hari, lalu pilih Lanjutkan.

    5. Untuk Penjadwalan modifikasi, pilih Terapkan segera.

    6. Pilih Modifikasi instans DB.

  4. Saat Status replika baca menunjukkan Tersedia, tingkatkan replika baca ke MySQL 8.0:

    1. Pada konsol, pilih Basis data, lalu pilih replika baca yang baru saja Anda buat.

    2. Pilih Ubah.

    3. Untuk Versi mesin DB, pilih versi MySQL 8.0 sebagai target peningkatan, lalu pilih Lanjutkan.

    4. Untuk Penjadwalan modifikasi, pilih Terapkan segera.

    5. Pilih Modifikasi instans DB untuk memulai peningkatan.

  5. Ketika pemutakhiran selesai dan Status menunjukkan Tersedia, verifikasi bahwa replika baca yang ditingkatkan adalah up-to-date dengan instans MySQL 5.7 DB sumber. Untuk memverifikasi, hubungkan ke replika baca dan jalankan perintah SHOW REPLICA STATUS. Jika Seconds_Behind_Master bidangnya0, maka replikasi adalah up-to-date.

    catatan

    Versi MySQL sebelumnya menggunakan SHOW SLAVE STATUS, bukan SHOW REPLICA STATUS. Jika Anda menggunakan versi MySQL sebelum 8.0.23, gunakan SHOW SLAVE STATUS.

  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. Pada konsol, pilih Basis data, 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 sudah sesuai dengan instans DB MySQL 5.7 Anda.

    4. Pilih Buat replika baca.

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

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

    1. Buat grup parameter DB kustom untuk MySQL 8.0. Untuk petunjuk, lihat Membuat grup parameter DB.

    2. Modifikasi parameter yang ingin Anda ubah dalam grup parameter DB yang baru saja Anda buat. Untuk petunjuk, lihat Memodifikasi parameter dalam grup parameter DB.

    3. Pada konsol, pilih Basis data, lalu pilih replika baca.

    4. Pilih Ubah.

    5. Untuk Grup parameter DB, pilih grup parameter DB MySQL 8.0 yang baru Anda buat, lalu pilih Lanjutkan.

    6. Untuk Penjadwalan modifikasi, pilih Terapkan segera.

    7. Pilih Modifikasi instans DB untuk memulai peningkatan.

  8. Jadikan replika baca MySQL 8.0 Anda sebagai instans DB mandiri.

    penting

    Saat Anda mempromosikan replika baca MySQL 8.0 Anda menjadi instans DB mandiri, replika baca ini bukan lagi merupakan replika dari instans DB MySQL 5.7 Anda. Kami sarankan Anda mempromosikan replika baca MySQL 8.0 selama periode pemeliharaan jika instans DB MySQL 5.7 sumber Anda berada dalam mode hanya baca dan semua operasi tulis ditangguhkan. Saat promosi selesai, Anda dapat mengarahkan operasi tulis Anda ke instans DB MySQL 8.0 yang telah ditingkatkan untuk memastikan bahwa tidak ada operasi tulis yang hilang.

    Selain itu, sebelum mempromosikan replika baca MySQL 8.0, kami sarankan Anda menjalankan semua operasi bahasa definisi data (DDL) yang diperlukan di replika baca MySQL 8.0 tersebut. Contohnya adalah membuat indeks. Pendekatan ini akan menghindari efek negatif pada performa replika baca MySQL 8.0 setelah dipromosikan. Untuk mempromosikan replika baca, gunakan prosedur berikut.

    1. Pada konsol, pilih Basis data, 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 Pengantar cadangan.

    4. Pilih Lanjutkan.

    5. Pilih Promosikan Replika Baca.

  9. Sekarang Anda memiliki versi peningkatan dari basis data MySQL Anda. Pada tahap ini, Anda dapat mengarahkan aplikasi Anda ke instans DB MySQL 8.0 yang baru.