Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да замените MySQL с Percona на Plesk CentOS 7

Тази статия очертава процедурата за подмяна на родната услуга 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 и да бъде напълно достъпна от приложенията. На този етап всички сайтове или приложения, използващи база данни, трябва да бъдат тествани и всички грешки да бъдат проучени.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Автоматично или редовно архивиране на mysql данни

  2. Еквивалент на explode() за работа с низове в MySQL

  3. Мога ли да изпълня множество заявки, разделени с точка и запетая, с MySQL Connector/J?

  4. Вмъкване на първичен ключ за автоматично увеличение в съществуващата таблица

  5. Как да сравним две колони в MySQL