Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara Mengganti MySQL dengan Percona di Plesk CentOS 7

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}/

Catatan:Basis data yang sangat besar akan membutuhkan waktu lebih lama untuk diselesaikan, jadi rencanakan dengan tepat.

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jenis di MySQL:BigInt(20) vs Int(20)

  2. Bagaimana cara mengisi tabel dengan rentang tanggal?

  3. Mendapatkan semua baris induk dalam satu kueri SQL

  4. Menggunakan fungsi password_hash dan password_verify PHP 5.5

  5. MySQL Pesan sebelum Grup oleh