Тази статия очертава процедурата за подмяна на родната услуга MySQL®️ или MariaDB®️, която е предварително инсталирана на всеки типичен Plesk Onyx 11 CentOS 7 сървър. Процедурата очертава премахването на съществуващите свързани с MySQL двоични файлове и ги заменя с подходяща версия на двоичните файлове на Percona. След като тези двоични файлове на Percona са на място, се обработва типично многоетапно надграждане на MySQL с инкрементална версия, за да доведе съществуващите бази данни и двоични файлове на Percona до желаната версия на Percona 5.7.
Очаквания за поддръжка:продължителност и престой
Предложена продължителност на поддръжката: 90 минути
Минимално очаквано време за престой: ~ 30 минути обслужване клапане
Очакваното време за прекъсване на услугата MySQL за тази процедура е по-малко от 30 минути наличността на услугата MySQL, която се увеличава и намалява многократно (клапане). Тази цифра предполага, че всичко върви гладко и не се срещат непредвидени грешки. Предложената продължителност на поддръжката позволява време за отстраняване на неизправности, ако възникне грешка, както и допълнителни 30 минути в малко вероятния случай, че всички промени трябва да бъдат отменени и планът за поддръжка прекратен.
Преглед на етапите на поддръжка
Планът е разделен на подготвителни задачи и етапи. Подготвителните задачи трябва да бъдат завършени преди началото на вашия прозорец за поддръжка. Етапите се провеждат през целия прозорец на събитието за поддръжка и преминават през цялата процедура за изпълнение на всеки важен етап от схемата.
Подготовка – Задачи за предварителна поддръжка
Тези две важни задачи трябва да бъдат изпълнени преди планирания начален час на вашия прозорец за поддръжка:
- Копирайте съществуващ конфигурационен файл на MySQL
- Етапно архивиране на данни от базата данни MySQL
Ние използваме етап нула в този план, за да помогнем за ускоряване на процеса на архивиране на MySQL данните. Тъй като количеството данни, които MySQL ще съхранява, варира значително за всеки сървър, добра практика е да стартирате инкрементално решение за архивиране, като rsync, преди към прозореца на събитието за поддръжка. Rsync ще архивира по-голямата част от статичните данни, докато MySQL все още работи, и след това ще архивира инкременталната разлика, след като MySQL бъде изключен за поддръжка.
Копиране на съществуващ конфигурационен файл на MySQL:
1) Направете резервно копие на съществуващия конфигурационен файл за себе си.
cp -pv /etc/my.cnf{,.pre-percona.bak}
Етапно архивиране на данните от базата данни MySQL:
2) Изпълнете следния rsync, за да клонирате MySQL данните. [ВАЖНО:изисква се наклонена черта в края]
rsync -vaH /var/lib/mysql{,.pre-percona}/
3) Изчакайте стъпка 1 да завърши, преди да започнете етап 1.
Етап 1 – Изключване на MySQL и повторно стартиране на Rsync Final Sync
Целта на първия етап е да гарантира, че е направено чисто архивно копие на MySQL данните, преди да продължите. За да постигнете това, е необходимо напълно да спрете MySQL услугите, така че всички буфери да бъдат записани и да не се записват допълнителни промени в базата данни. Веднъж спрян, rsync се изпълнява отново, за да копира разликите между вече спрените девствени данни и целевите резервни данни.
1) Изключете услугата MySQL/MariaDB
systemctl stop mysql
2) Изпълнете отново следния rsync, за да финализирате клонираните данни. [ВАЖНО:изисква се наклонена черта в края]
rsync -vaH /var/lib/mysql{,.pre-percona}/
3) Изчакайте rsync да завърши, преди да преминете към етап 3.
Етап 2 – Заменете двоичните файлове на MariaDB 5.5 с Percona 5.5
ЗАБЕЛЕЖКА:MariaDB 5.5 е версията, инсталирана с Onyx 11 CentOS 7, така че това е отправната точка.Подмяната на съществуващите двоични файлове включва премахване на необходимите двоични пакети от системата с помощта на инструмента за команден ред RPM вместо yum. Това позволява пакетите да бъдат премахнати, без да се докосват зависимостите, свързващи се с други системни пакети. Тъй като Percona, подобно на MariaDB, е добавен заместител на MySQL, след като новите двоични файлове са на място, свързаните зависимости няма да знаят разликата и ще функционират нормално.
1) Премахване на пакети MariaDB без зависимости:
rpm -e --nodeps mariadb mariadb-libs mariadb-server
2) Премахнете пакета mariadb-devel (направете това като отделна команда отгоре, за да избегнете неуспешно премахване, направете с липсващ пакет)
rpm -e --nodeps mariadb-devel
3) Инсталирайте хранилището на Percona:
yum install https://www.percona.com/redir/downloads/percona-release/redhat/percona-release-0.1-4.noarch.rpm
4) Инсталирайте Percona DB сървър:
yum install Percona-Server-client-55 Percona-Server-server-55 Percona-Server-shared-55
5) Изпълнете следните команди (позволява на приставката InnoDB да се зарежда правилно)
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) Уверете се, че няма процеси, които слушат порт 3306 и убийте процеса, ако има такъв.
netstat -tulpn | grep 3306
7) Стартирайте MySQL (сега Percona 5.5)
service mysql start
8) Изпълнете скрипт mysql_upgrade
mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`
9) [По избор] Активирайте Percona XtraDB Cluster UDF от 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) Рестартирайте MySQL, за да завършите процедурата за надстройка
systemctl start mysql
Етап 3 – Превключете Plesk MySQL пакета към пакета Plesk MySQL Community
Изпълнението на Percona на Plesk е неподдържана конфигурация. Поради тази причина, за да се удовлетворят връзките на зависимост между пакета Plesk MySQL и новите двоични файлове на Percona, е необходимо да превключите версията на Plesk MySQL към използване на версията на Plesk MySQL Community. Промяната е необходима, за да се улесни надграждането и понижаването на версиите на Percona.
1) Създайте необходимия конфигурационен файл на репо:
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) Инсталирайте пакет „plesk-mysql-server-community“ от новото хранилище:
yum install plesk-mysql-server-community
3) Деактивирайте /etc/yum.repos.d/plesk178.repo файла, тъй като вече не е необходим:
mv /etc/yum.repos.d/plesk178.repo{,.disabled}
4) Премахнете пакета „plesk-mysql-server“, без да докосвате зависимости.
rpm -e --nodeps plesk-mysql-server
Percona вече трябва да бъде инсталирана и да работи върху базовата версия 5.5. Следващите етапи са идентични с типичния процес на надграждане на MySQL, при който двоичните файлове се надграждат, а след това актуализациите на схемата се правят ръчно с помощта на инструмента mysql_upgrade.
Надстройте Percona 5.5 до 5.6
1) Спрете услугата MySQL:
service mysql stop
2) Премахване на пакети Percona 55 без зависимости:
rpm -e --nodeps Percona-Server-shared-55 Percona-Server-client-55 Percona-Server-server-55
3) Инсталирайте пакети Percona 56
yum install Percona-Server-shared-56 Percona-Server-client-56 Percona-Server-server-56
4) Уверете се, че няма процеси, които слушат порт 3306 и убийте процеса, ако има такъв.
netstat -tulpn | grep 3306
5) Стартирайте услугата MySQL:
service mysql start
6) Надстройте MySQL таблици:
mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`
Етап 4 – Надстройте Percona 5.6 до 5.7
1) Спрете услугата MySQL:
service mysql stop
2) Премахване на пакети Percona 56 без зависимости:
rpm -e --nodeps Percona-Server-shared-56 Percona-Server-client-56 Percona-Server-server-56
3) Инсталирайте пакети Percona 57
yum install Percona-Server-shared-57 Percona-Server-client-57 Percona-Server-server-57
4) Уверете се, че няма процеси, които слушат порт 3306 и убийте процеса, ако има такъв.
netstat -tulpn | grep 3306
5) Стартирайте услугата MySQL:
service mysql start
6) Надстройте MySQL таблици:
mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`
Етап 5 – Завършване на надстройката
Сега системата трябва да работи с Percona 5.7 и да бъде напълно достъпна от приложенията. На този етап всички сайтове или приложения, използващи база данни, трябва да бъдат тествани и всички грешки да бъдат проучени.