Peningkatan versi utama di Azure Database for MySQL - Server Fleksibel
Catatan
Artikel ini berisi referensi ke istilah slave, istilah yang tidak lagi digunakan Microsoft. Saat istilah dihapus dari perangkat lunak, kami akan menghapusnya dari artikel ini.
Artikel ini menjelaskan cara meningkatkan versi utama MySQL di tempat di server fleksibel Azure Database for MySQL. Fitur ini memungkinkan pelanggan untuk melakukan peningkatan di tempat server MySQL 5.7 mereka ke MySQL 8.0 tanpa pergerakan data atau kebutuhan untuk membuat aplikasi apa pun string koneksi perubahan.
Penting
- Durasi waktu henti bervariasi berdasarkan ukuran instans database dan jumlah tabel yang dikandungnya.
- Saat memulai peningkatan versi utama untuk server fleksibel Azure Database for MySQL melalui Rest API atau SDK, hindari memodifikasi properti layanan lain dalam permintaan yang sama. Perubahan simultan tidak diizinkan dan dapat menyebabkan hasil yang tidak diinginkan atau kegagalan permintaan. Silakan lakukan modifikasi properti dalam operasi terpisah setelah penyelesaian peningkatan.
- Beberapa beban kerja mungkin tidak menunjukkan performa yang ditingkatkan setelah peningkatan dari 5.7 ke 8.0. Kami menyarankan agar Anda mengevaluasi performa beban kerja Anda dengan terlebih dahulu membuat server replika (sebagai server pengujian), lalu mempromosikannya ke server mandiri lalu menjalankan beban kerja di server pengujian sebelum menerapkan peningkatan di lingkungan produksi.
- Meningkatkan versi MySQL utama tidak dapat diubah. Penyebaran Anda mungkin gagal jika validasi mengidentifikasi bahwa server dikonfigurasi dengan fitur apa pun yang dihapus atau tidak digunakan lagi. Anda dapat membuat perubahan konfigurasi yang diperlukan pada server dan mencoba peningkatan lagi.
Prasyarat
- Baca Replika dengan MySQL versi 5.7 harus ditingkatkan sebelum Server Utama agar replikasi kompatibel antara versi MySQL yang berbeda, baca selengkapnya tentang Kompatibilitas Replikasi antara versi MySQL.
- Sebelum meningkatkan server produksi Anda, sekarang lebih mudah dan lebih efisien dengan fitur Validasi bawaan kami di portal Azure. Alat ini telah memeriksa kompatibilitas skema database Anda dengan MySQL 8.0, menyoroti potensi masalah. Meskipun kami menawarkan opsi yang nyaman ini, kami juga sangat menyarankan Anda menggunakan alat pemeriksa Peningkatan Oracle MySQL resmi untuk menguji kompatibilitas skema database Anda dan melakukan pengujian regresi yang diperlukan untuk memverifikasi kompatibilitas aplikasi dengan fitur yang dihapus/tidak digunakan lagi dalam versi MySQL baru.
Catatan
Saat Anda menggunakan alat resmi Oracle untuk memeriksa kompatibilitas skema, Anda mungkin menemukan beberapa peringatan yang menunjukkan token tak terduga dalam prosedur tersimpan, seperti:
mysql.az_replication_change_master - at line 3,4255: unexpected token 'REPLICATION'
mysql.az_add_action_history - PROCEDURE uses obsolete NO_AUTO_CREATE_USER sql_mode
Anda dapat mengabaikan peringatan ini dengan aman. Mereka mengacu pada prosedur tersimpan bawaan yang diawali dengan mysql., yang digunakan untuk mendukung fitur Azure MySQL. Peringatan ini tidak memengaruhi fungsionalitas database Anda. - Picu pencadangan sesuai permintaan sebelum Anda melakukan peningkatan versi utama di server produksi Anda, yang dapat digunakan untuk memutar kembali ke versi 5.7 dari cadangan penuh sesuai permintaan yang diambil.
- Sebelum melanjutkan peningkatan versi utama, pastikan tidak ada transaksi XA aktif atau tertunda pada database, karena transaksi XA yang sedang berlangsung berpotensi menyebabkan proses peningkatan gagal. Untuk menghindari masalah ini, pertama-tama periksa transaksi XA apa pun dalam status "disiapkan" dengan menjalankan
XA RECOVER;
. Untuk setiap transaksi yang diidentifikasi, gunakanXA ROLLBACK '{xid}'
; untuk membatalkan setiap transaksi, mengganti {xid} dengan ID transaksi. Pastikan semua transaksi XA diterapkan atau digulung balik sebelum memulai peningkatan untuk menjaga konsistensi transaksi dan mengurangi risiko kegagalan peningkatan.
Lakukan peningkatan versi utama yang direncanakan dari MySQL 5.7 ke MySQL 8.0 menggunakan portal Azure untuk server SKU burstable
Melakukan peningkatan versi utama untuk tingkat komputasi Azure Database for MySQL Burstable SKU memerlukan alur kerja khusus. Ini karena peningkatan versi utama intensif sumber daya, menuntut CPU dan memori yang signifikan. Instans SKU yang burstable menjadi berbasis kredit mungkin kesulitan dalam persyaratan ini, berpotensi menyebabkan proses peningkatan gagal. Oleh karena itu, saat meningkatkan SKU burstable, sistem terlebih dahulu meningkatkan tingkat komputasi ke SKU Tujuan Umum untuk memastikan sumber daya yang memadai tersedia untuk peningkatan.
Untuk melakukan peningkatan versi utama untuk tingkat komputasi Azure Database for MySQL Burstable SKU menggunakan portal Azure, ikuti langkah-langkah berikut:
Di portal Azure, pilih server fleksibel Azure Database for MySQL yang sudah ada 5.7.
Penting
Sebaiknya lakukan peningkatan terlebih dahulu pada salinan server yang dipulihkan daripada meningkatkan produksi secara langsung. Lihat cara melakukan pemulihan titik waktu.
Pada halaman Gambaran Umum , di toolbar, pilih Tingkatkan.
Penting
Sebelum meningkatkan tautan kunjungan untuk daftar fitur yang dihapus di MySQL 8.0. Verifikasi nilai sql_mode yang tidak digunakan lagi dan hapus/batal pilih dari server fleksibel Azure Database for MySQL Anda saat ini 5.7 menggunakan Bilah Parameter Server di portal Azure Anda untuk menghindari kegagalan penyebaran. sql_mode dengan nilai NO_AUTO_CREATE_USER, NO_FIELD_OPTIONS, NO_KEY_OPTIONS, dan NO_TABLE_OPTIONS tidak lagi didukung di MySQL 8.0.
Validasi Kompatibilitas Skema
Sebelum melanjutkan peningkatan, jalankan alat pemeriksa Peningkatan MySQL resmi Oracle untuk memvalidasi bahwa skema database Anda saat ini kompatibel dengan MySQL 8.0. Langkah ini sangat penting untuk memastikan proses peningkatan yang lancar.
Keputusan Pra-Peningkatan
Sebelum melanjutkan peningkatan, Anda perlu memilih tingkat komputasi yang ingin Anda tingkatkan untuk melakukan peningkatan versi utama. Secara default, sistem akan meningkatkan dari SKU Burstable ke SKU Tujuan Umum paling dasar, tetapi Anda dapat memilih untuk meningkatkan ke tingkat komputasi yang lebih tinggi jika diperlukan.
Catatan
Meskipun server Anda beroperasi di tingkat "Tujuan Umum" selama peningkatan, Anda hanya akan dikenakan biaya untuk sumber daya "Tujuan Umum" aktual yang digunakan selama periode ini.
Keputusan Pasca-Peningkatan
Putuskan apakah akan mempertahankan SKU Tujuan Umum atau kembali ke SKU Burstable setelah peningkatan. Pilihan ini akan diminta selama langkah-langkah peningkatan awal.
Sistem akan secara otomatis meningkatkan tingkat komputasi Anda dari SKU Burstable ke SKU Tujuan Umum yang dipilih mendukung peningkatan versi utama.
Peningkatan Versi Utama
Setelah tingkat komputasi ditingkatkan, sistem akan memulai proses peningkatan versi utama. Pantau kemajuan peningkatan melalui portal Azure. Proses peningkatan mungkin memakan waktu tergantung pada ukuran dan aktivitas database Anda.
Catatan
Jika peningkatan versi utama gagal, tingkat komputasi tidak akan secara otomatis kembali ke SKU Burstable sebelumnya. Hal ini untuk memungkinkan pelanggan melanjutkan peningkatan versi utama tanpa perlu melakukan peningkatan tingkat komputasi lagi.
Pembalikan Otomatis
Berdasarkan keputusan pra-peningkatan Anda, sistem akan mempertahankan SKU Tujuan Umum atau secara otomatis kembali ke SKU Burstable setelah peningkatan selesai.
Catatan
Jika Anda memilih untuk secara otomatis kembali ke SKU Burstable, sistem akan kembali ke SKU B2S secara default.
Lakukan peningkatan versi utama yang direncanakan dari MySQL 5.7 ke MySQL 8.0 menggunakan portal Azure untuk server SKU Tujuan Umum dan Bisnis Kritis
Untuk melakukan peningkatan versi utama server fleksibel Azure Database for MySQL 5.7 menggunakan portal Azure, lakukan langkah-langkah berikut.
Di portal Azure, pilih server fleksibel Azure Database for MySQL yang sudah ada 5.7.
Penting
Sebaiknya lakukan peningkatan terlebih dahulu pada salinan server yang dipulihkan daripada meningkatkan produksi secara langsung. Lihat cara melakukan pemulihan titik waktu.
Pada halaman Gambaran Umum , di toolbar, pilih Tingkatkan.
Penting
Sebelum meningkatkan tautan kunjungan untuk daftar fitur yang dihapus di MySQL 8.0. Verifikasi nilai sql_mode yang tidak digunakan lagi dan hapus/batal pilih dari server fleksibel Azure Database for MySQL Anda saat ini 5.7 menggunakan Bilah Parameter Server di portal Azure Anda untuk menghindari kegagalan penyebaran. sql_mode dengan nilai NO_AUTO_CREATE_USER, NO_FIELD_OPTIONS, NO_KEY_OPTIONS, dan NO_TABLE_OPTIONS tidak lagi didukung di MySQL 8.0.
Melakukan Validasi Pra-Pemutakhiran
Sebelum melanjutkan peningkatan, Pilih tombol Validasi untuk memeriksa kompatibilitas server Anda dengan MySQL 8.0.
Penting
Saat Anda menggunakan fitur 'Validasi' untuk memeriksa skema database Anda untuk kompatibilitas dengan MySQL 8.0, ketahuilah bahwa fitur ini melibatkan penguncian tabel untuk menilai seluruh skema secara akurat. Proses ini mungkin menyebabkan batas waktu kueri.
Oleh karena itu, disarankan untuk tidak melakukan validasi selama jam kerja puncak atau ketika database Anda mengalami lalu lintas tinggi. Memilih periode aktivitas rendah untuk validasi dapat membantu meminimalkan dampak pada operasi Anda.Di bilah sisi Peningkatan , dalam kotak teks Versi MySQL untuk meningkatkan , verifikasi versi MySQL utama yang ingin Anda tingkatkan, yaitu, 8.0.
Sebelum dapat meningkatkan server utama, Anda harus terlebih dahulu meningkatkan server replika baca terkait. Hingga ini selesai, Peningkatan akan dinonaktifkan.
Di server utama, pilih pesan konfirmasi untuk memverifikasi bahwa semua server replika telah dimutakhirkan, lalu pilih Tingkatkan.
Pada replika baca dan server mandiri, Peningkatan diaktifkan secara default.
Melakukan peningkatan versi utama yang direncanakan dari MySQL 5.7 ke MySQL 8.0 menggunakan Azure CLI
Untuk melakukan peningkatan versi utama server fleksibel Azure Database for MySQL 5.7 menggunakan Azure CLI, lakukan langkah-langkah berikut.
Instal Azure CLI untuk Windows atau gunakan Azure CLI di Azure Cloud Shell untuk menjalankan perintah peningkatan.
Peningkatan ini memerlukan Azure CLI versi 2.40.0 atau yang lebih baru. Jika menggunakan Azure Cloud Shell, versi terbaru sudah terpasang. Jalankan versi az untuk mengetahui pustaka versi dan dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankan peningkatan az.
Setelah Anda masuk, jalankan perintah az mysql server upgrade .
az mysql flexible-server upgrade --name {your mysql server name} --resource-group {your resource group} --subscription {your subscription id} --version 8
Di bawah permintaan konfirmasi, ketik y untuk mengonfirmasi atau n untuk menghentikan proses peningkatan, lalu tekan Enter.
Lakukan peningkatan versi utama dari MySQL 5.7 ke MySQL 8.0 pada server replika baca menggunakan portal Azure
Untuk melakukan peningkatan versi utama server fleksibel Azure Database for MySQL 5.7 ke MySQL 8.0 pada replika baca menggunakan portal Azure, lakukan langkah-langkah berikut.
Di portal Azure, pilih server replika baca Azure Database for MySQL yang sudah ada 5.7.
Pada halaman Gambaran Umum , di toolbar, pilih Tingkatkan.
Penting
Sebelum meningkatkan tautan kunjungan untuk daftar fitur yang dihapus di MySQL 8.0. Verifikasi nilai sql_mode yang tidak digunakan lagi dan hapus/batal pilih dari server fleksibel Azure Database for MySQL Anda saat ini 5.7 menggunakan Bilah Parameter Server di Portal Microsoft Azure Anda untuk menghindari kegagalan penyebaran.
Di bagian Peningkatan , pilih Tingkatkan untuk meningkatkan server fleksibel Azure Database for MySQL 5.7 server replika baca ke MySQL 8.0.
Pemberitahuan tampaknya mengonfirmasi bahwa peningkatan berhasil.
Pada halaman Gambaran Umum , konfirmasikan bahwa server replika baca server fleksibel Azure Database for MySQL Anda menjalankan versi adalah 8.0.
Sekarang, buka server utama Anda dan lakukan peningkatan versi utama di atasnya.
Lakukan peningkatan versi utama waktu henti minimal dari MySQL 5.7 ke MySQL 8.0 menggunakan replika baca
Untuk melakukan peningkatan versi utama server fleksibel Azure Database for MySQL 5.7 ke MySQL 8.0 dengan waktu henti minimal menggunakan server replika baca, lakukan langkah-langkah berikut.
Di portal Azure, pilih server fleksibel Azure Database for MySQL yang sudah ada 5.7.
Buat replika baca dari server utama.
Tingkatkan replika baca Anda ke versi 8.0.
Setelah Anda mengonfirmasi bahwa server replika menjalankan versi 8.0, hentikan aplikasi Anda agar tidak tersambung ke server utama Anda.
Periksa status replikasi untuk memastikan bahwa replika telah tertangkap dengan primer sehingga semua data sinkron dan tidak ada operasi baru yang dilakukan pada primer.
Konfirmasi dengan perintah tampilkan status replika di server replika untuk melihat status replikasi.
SHOW SLAVE STATUS\G
Jika status Slave_IO_Running dan Slave_SQL_Running ya dan nilai Seconds_Behind_Master adalah 0, replikasi bekerja dengan baik. Seconds_Behind_Master menunjukkan seberapa lambat replikanya. Jika nilainya bukan 0, maka replika masih memproses pembaruan. Setelah Anda mengonfirmasi bahwa nilai Seconds_Behind_Master adalah ***, aman untuk menghentikan replikasi.
Dukung replika baca ke primer dengan menghentikan replikasi.
Atur Parameter Server read_only ke 0 (NONAKTIF) untuk mulai menulis pada primer yang dipromosikan.
Arahkan aplikasi Anda ke primer baru (replika sebelumnya) yang menjalankan server 8.0. Setiap server memiliki string koneksi yang unik. Perbarui aplikasi Anda agar mengarah ke replika (mantan) dan bukan ke sumber.
Catatan
Skenario ini hanya menimbulkan waktu henti selama langkah 4 hingga 7.
Tanya jawab umum
Apakah ini akan menyebabkan waktu henti server dan jika demikian, berapa lama?
Untuk memiliki waktu henti minimal selama peningkatan, ikuti langkah-langkah yang disebutkan di bawah Lakukan peningkatan versi utama waktu henti minimal dari MySQL 5.7 ke MySQL 8.0 menggunakan replika baca. Server tidak akan tersedia selama proses peningkatan, jadi kami sarankan Anda melakukan operasi ini selama jendela pemeliharaan terencana Anda. Perkiraan waktu henti tergantung pada ukuran database, ukuran penyimpanan yang disediakan (IOP yang disediakan), dan jumlah tabel pada database. Waktu peningkatan berbanding lurus dengan jumlah tabel di server. Untuk memperkirakan waktu henti lingkungan server, sebaiknya terlebih dahulu melakukan peningkatan pada salinan server yang dipulihkan.
Apa yang terjadi pada cadangan saya setelah peningkatan?
Semua cadangan (otomatis/sesuai permintaan) yang diambil sebelum peningkatan versi utama, ketika digunakan untuk pemulihan akan selalu memulihkan ke server dengan versi yang lebih lama (5.7). Semua cadangan (otomatis/sesuai permintaan) yang diambil setelah peningkatan versi utama akan dipulihkan ke server dengan versi yang ditingkatkan (8.0). Sangat disarankan untuk mengambil cadangan sesuai permintaan sebelum Anda melakukan peningkatan versi utama untuk pemutaran kembali yang mudah.
Saat ini saya menggunakan SKU Burstable, apakah Microsoft berencana untuk mendukung peningkatan versi utama untuk SKU ini di masa mendatang?
SKU burstable tidak dapat mendukung peningkatan versi utama karena keterbatasan performa SKU ini.
Jika Anda perlu melakukan peningkatan versi utama pada instans server fleksibel Azure Database for MySQL dan saat ini menggunakan SKU Burstable, satu solusi sementara adalah meningkatkan ke Tujuan Umum atau SKU Penting Bisnis, melakukan peningkatan, lalu beralih kembali ke SKU Burstable.
Meningkatkan ke SKU yang lebih tinggi mungkin melibatkan perubahan harga dan dapat mengakibatkan peningkatan biaya untuk penyebaran Anda. Namun, karena proses peningkatan tidak diharapkan memakan waktu lama, biaya tambahan seharusnya tidak signifikan.