Artikel ini menguraikan prosedur untuk mengganti layanan MySQL®️ atau MariaDB®️ asli yang telah diinstal sebelumnya pada server Plesk Onyx 11 CentOS 7 biasa. Prosedur ini menguraikan penghapusan binari terkait MySQL yang ada dan menggantinya dengan versi binari Percona yang memadai. Setelah binari Percona ini tersedia, pemutakhiran versi MySQL Incremental multitahap khas diproses untuk membawa database yang ada dan binari Percona ke versi Percona 5.7 yang diinginkan.
Harapan Pemeliharaan:Durasi &Waktu Henti
Durasi Pemeliharaan yang Disarankan: 90 menit
Waktu Henti Minimum yang Diharapkan: ~30 menit layanan mengepak
Waktu henti layanan MySQL yang diharapkan untuk prosedur ini adalah kurang dari 30 menit ketersediaan layanan MySQL naik turun berulang kali (flapping). Angka ini mengasumsikan bahwa semua berjalan lancar dan tidak ada kesalahan yang tidak terduga yang ditemui. Durasi pemeliharaan yang disarankan memberikan waktu untuk pemecahan masalah jika terjadi kesalahan serta tambahan 30 menit jika semua perubahan perlu dikembalikan dan rencana pemeliharaan dibatalkan.
Ikhtisar Tahap Pemeliharaan
Rencana tersebut dipecah menjadi tugas dan tahapan persiapan. Tugas persiapan harus diselesaikan sebelum waktu mulai jendela pemeliharaan Anda. Tahapan dilakukan di sepanjang jendela acara pemeliharaan dan menelusuri seluruh prosedur untuk menyelesaikan setiap tahap penting dari garis besar.
Persiapan – Tugas Pra Pemeliharaan
Dua tugas penting ini harus diselesaikan sebelum waktu mulai yang dijadwalkan dari periode pemeliharaan Anda:
- Salin file konfigurasi MySQL yang ada
- Pencadangan tahap data database MySQL
Kami menggunakan tahap nol dalam rencana ini untuk membantu mempercepat proses pencadangan data MySQL. Karena jumlah data yang akan disimpan MySQL sangat bervariasi per server, praktik yang baik adalah menjalankan solusi pencadangan tambahan, seperti rsync, sebelum ke jendela acara pemeliharaan. Rsync akan mencadangkan sebagian besar data statis saat MySQL masih berjalan dan kemudian akan mencadangkan perbedaan tambahan setelah MySQL dimatikan untuk pemeliharaan.
Salin file konfigurasi MySQL yang ada:
1) Buat salinan cadangan dari file konfigurasi diri saya yang ada.
cp -pv /etc/my.cnf{,.pre-percona.bak}
Pencadangan tahap data database MySQL:
2) Jalankan rsync berikut untuk mengkloning data MySQL. [PENTING:garis miring diperlukan]
rsync -vaH /var/lib/mysql{,.pre-percona}/
3) Tunggu hingga langkah 1 selesai sebelum memulai Tahap 1.
Tahap 1 – Matikan MySQL &Jalankan Kembali Rsync Final Sync
Tujuan dari tahap satu adalah untuk memastikan cadangan murni dari data MySQL sudah ada sebelum melanjutkan. Untuk mencapai ini, perlu untuk menghentikan layanan MySQL sepenuhnya sehingga semua buffer ditulis dan tidak ada perubahan tambahan yang ditulis ke database. Setelah dihentikan, rsync dijalankan lagi untuk menyalin perbedaan antara data asli yang sekarang dihentikan dan data cadangan target.
1) Matikan Layanan MySQL/MariaDB
systemctl stop mysql
2) Jalankan kembali rsync berikut untuk menyelesaikan data kloning. [PENTING:garis miring diperlukan]
rsync -vaH /var/lib/mysql{,.pre-percona}/
3) Tunggu hingga rsync selesai sebelum melanjutkan ke Tahap 3.
Tahap 2 – Ganti Binari MariaDB 5.5 Dengan Percona 5.5
CATATAN:MariaDB 5.5 adalah versi yang diinstal dengan Onyx 11 CentOS 7, jadi ini adalah titik awalnya.Mengganti biner yang ada melibatkan penghapusan paket biner yang diperlukan dari sistem menggunakan alat baris perintah RPM alih-alih yum. Ini memungkinkan paket dihapus tanpa menyentuh dependensi apa pun yang terhubung ke paket sistem lain. Karena Percona, seperti MariaDB, adalah pengganti drop-in untuk MySQL, setelah binari baru diterapkan, dependensi yang ditautkan tidak akan mengetahui perbedaannya dan akan berfungsi secara normal.
1) Hapus paket MariaDB tanpa ketergantungan:
rpm -e --nodeps mariadb mariadb-libs mariadb-server
2) Hapus paket mariadb-devel (lakukan ini sebagai perintah terpisah dari atas untuk menghindari kegagalan penghapusan yang dilakukan pada paket yang hilang)
rpm -e --nodeps mariadb-devel
3) Instal repositori Percona:
yum install https://www.percona.com/redir/downloads/percona-release/redhat/percona-release-0.1-4.noarch.rpm
4) Instal server Percona DB:
yum install Percona-Server-client-55 Percona-Server-server-55 Percona-Server-shared-55
5) Jalankan perintah berikut (memungkinkan plugin InnoDB memuat dengan benar)
mv /var/lib/mysql/ibdata1 /var/lib/mysql/ibdata1.bak
cp -a /var/lib/mysql/ibdata1.bak /var/lib/mysql/ibdata1
mv /var/lib/mysql/ib_logfile0 /var/lib/mysql/ib_logfile0.bak
cp -a /var/lib/mysql/ib_logfile0.bak /var/lib/mysql/ib_logfile0
mv /var/lib/mysql/ib_logfile1 /var/lib/mysql/ib_logfile1.bak
cp -a /var/lib/mysql/ib_logfile1.bak /var/lib/mysql/ib_logfile1
6) Pastikan tidak ada proses yang mendengarkan pada port 3306 dan matikan proses jika ada.
netstat -tulpn | grep 3306
7) Mulai MySQL (sekarang Percona 5.5)
service mysql start
8) Jalankan skrip mysql_upgrade
mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`
9) [Opsional] Aktifkan UDF Percona XtraDB Cluster dari Percona Toolkit:
plesk db -e "CREATE FUNCTION fnv1a_64 RETURNS INTEGER SONAME 'libfnv1a_udf.so'"
plesk db -e "CREATE FUNCTION fnv_64 RETURNS INTEGER SONAME 'libfnv_udf.so'"
plesk db -e "CREATE FUNCTION murmur_hash RETURNS INTEGER SONAME 'libmurmur_udf.so'"
10) Mulai ulang MySQL untuk menyelesaikan prosedur peningkatan
systemctl start mysql
Tahap 3 – Pindah Paket Plesk MySQL ke paket Komunitas Plesk MySQL
Menjalankan Percona di Plesk adalah konfigurasi yang tidak didukung. Untuk alasan ini, untuk memenuhi koneksi ketergantungan antara paket MySQL Plesk dan binari Percona yang baru, rilis Plesk MySQL perlu diganti dengan menggunakan rilis Komunitas Plesk MySQL. Perubahan diperlukan untuk memfasilitasi peningkatan dan penurunan versi Percona.
1) Buat file konfigurasi repo yang diperlukan:
printf '[PLESK_17_8_11-dist] %s\nname=PLESK_17_5_3 dist %s\nbaseurl=http://autoinstall.plesk.com/PSA_17.8.11/dist-rpm-CentOS-7-x86_64/ %s\nenabled=1 %s\ngpgcheck=1 %s\n' > /etc/yum.repos.d/plesk178.repo
2) Instal paket “plesk-mysql-server-community” dari repositori baru:
yum install plesk-mysql-server-community
3) Nonaktifkan file /etc/yum.repos.d/plesk178.repo karena tidak diperlukan lagi:
mv /etc/yum.repos.d/plesk178.repo{,.disabled}
4) Hapus paket ”plesk-mysql-server” tanpa menyentuh dependensi.
rpm -e --nodeps plesk-mysql-server
Percona sekarang harus diinstal dan bekerja pada versi dasar 5.5. Tahap selanjutnya identik dengan proses upgrade MySQL biasa di mana binari ditingkatkan, dan kemudian pembaruan skema dilakukan secara manual menggunakan alat mysql_upgrade.
Tingkatkan Percona 5.5 ke 5.6
1) Hentikan layanan MySQL:
service mysql stop
2) Hapus paket Percona 55 tanpa ketergantungan:
rpm -e --nodeps Percona-Server-shared-55 Percona-Server-client-55 Percona-Server-server-55
3) Instal paket Percona 56
yum install Percona-Server-shared-56 Percona-Server-client-56 Percona-Server-server-56
4) Pastikan tidak ada proses yang mendengarkan pada port 3306 dan matikan proses jika ada.
netstat -tulpn | grep 3306
5) Mulai layanan MySQL:
service mysql start
6) Tingkatkan tabel MySQL:
mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`
Tahap 4 – Tingkatkan Percona 5.6 ke 5.7
1) Hentikan layanan MySQL:
service mysql stop
2) Hapus paket Percona 56 tanpa ketergantungan:
rpm -e --nodeps Percona-Server-shared-56 Percona-Server-client-56 Percona-Server-server-56
3) Instal paket Percona 57
yum install Percona-Server-shared-57 Percona-Server-client-57 Percona-Server-server-57
4) Pastikan tidak ada proses yang mendengarkan pada port 3306 dan matikan proses jika ada.
netstat -tulpn | grep 3306
5) Mulai layanan MySQL:
service mysql start
6) Tingkatkan tabel MySQL:
mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`
Tahap 5 – Menyelesaikan Peningkatan Versi
Sistem sekarang harus menjalankan Percona 5.7 dan dapat diakses sepenuhnya oleh aplikasi. Pada tahap ini, situs atau aplikasi apa pun yang menggunakan database harus diuji dan kesalahan apa pun diselidiki.