sql >> Database >  >> RDS >> Mysql

MySQL vervangen door Percona op Plesk CentOS 7

Dit artikel beschrijft de procedure voor het vervangen van de native MySQL®️- of MariaDB®️-service die vooraf is geïnstalleerd op een typische Plesk Onyx 11 CentOS 7-server. De procedure beschrijft het verwijderen van de bestaande MySQL-gerelateerde binaire bestanden en vervangt ze door een adequate versie van de Percona-binaire bestanden. Zodra deze Percona-binaries zijn geïnstalleerd, wordt een typische meertraps MySQL Incremental-versie-upgrade verwerkt om de bestaande databases en Percona-binaries naar de gewenste Percona 5.7-versie te brengen.

Onderhoudsverwachtingen:duur en uitvaltijd

Voorgestelde onderhoudsduur: 90 minuten
Minimum verwachte uitvaltijd: ~30 minuten service klapperen

De verwachte uitvaltijd van de MySQL-service voor deze procedure is minder dan 30 minuten van de beschikbaarheid van de MySQL-service die herhaaldelijk op en neer gaat (fladderend). Dit cijfer gaat ervan uit dat alles soepel verloopt en dat er geen onvoorziene fouten optreden. De voorgestelde onderhoudsduur biedt tijd voor het oplossen van problemen als er een fout optreedt, evenals een extra 30 minuten in het onwaarschijnlijke geval dat alle wijzigingen ongedaan moeten worden gemaakt en het onderhoudsplan moet worden afgebroken.

Overzicht onderhoudsfasen

Het plan is opgedeeld in voorbereidende taken en fasen. Voorbereidingstaken moeten worden voltooid vóór de starttijd van uw onderhoudsvenster. De fasen worden uitgevoerd tijdens het onderhoudsgebeurtenisvenster en doorlopen de volledige procedure om elke belangrijke fase van het overzicht te voltooien.

Voorbereiding – Pre-onderhoudstaken

Deze twee belangrijke taken moeten vóór de geplande starttijd van uw onderhoudsperiode zijn voltooid:

  • Kopieer bestaand MySQL-configuratiebestand
  • Faseback-up van MySQL-databasegegevens

We gebruiken fase nul in dit plan om het back-upproces van de MySQL-gegevens te versnellen. Aangezien de hoeveelheid gegevens die MySQL kan bevatten enorm verschilt per server, is het een goede gewoonte om een ​​incrementele back-upoplossing uit te voeren, zoals rsync, prior naar het onderhoudsgebeurtenisvenster. Rsync maakt een back-up van de meeste statische gegevens terwijl MySQL nog actief is en maakt vervolgens een back-up van het incrementele verschil zodra MySQL wordt afgesloten voor onderhoud.

Kopieer bestaand MySQL-configuratiebestand:
1) Maak een reservekopie van het bestaande configuratiebestand voor mezelf.

cp -pv /etc/my.cnf{,.pre-percona.bak}

Faseback-up van MySQL-databasegegevens:

2) Voer de volgende rsync uit om de MySQL-gegevens te klonen. [BELANGRIJK:slash vereist]

rsync -vaH /var/lib/mysql{,.pre-percona}/

Opmerking:bij zeer grote databases duurt het aanzienlijk langer om te voltooien, dus plan dienovereenkomstig.

3) Wacht tot stap 1 is voltooid voordat u met fase 1 begint.

Fase 1 - MySQL afsluiten en Rsync Final Sync opnieuw uitvoeren

Het doel van fase één is om ervoor te zorgen dat er een onberispelijke back-up van de MySQL-gegevens is voordat u verder gaat. Om dit te bereiken, is het noodzakelijk om MySQL-services volledig te stoppen, zodat alle buffers worden geschreven en er geen extra wijzigingen naar de database worden geschreven. Eenmaal gestopt, wordt rsync opnieuw uitgevoerd om de verschillen tussen de nu gestopte ongerepte gegevens en de doelback-upgegevens te kopiëren.

1) MySQL/MariaDB-service afsluiten

systemctl stop mysql

2) Voer de volgende rsync opnieuw uit om de gekloonde gegevens te voltooien. [BELANGRIJK:slash vereist]

rsync -vaH /var/lib/mysql{,.pre-percona}/

3) Wacht tot rsync is voltooid voordat u doorgaat naar fase 3.

Fase 2 – Vervang MariaDB 5.5 binaries door Percona 5.5

OPMERKING:MariaDB 5.5 is de versie die is geïnstalleerd met Onyx 11 CentOS 7, dus dit is het startpunt.

Het vervangen van de bestaande binaire bestanden omvat het verwijderen van de benodigde binaire pakketten van het systeem met behulp van de RPM-opdrachtregeltool in plaats van yum. Hierdoor kunnen de pakketten worden verwijderd zonder de afhankelijkheden aan te raken die naar andere systeempakketten verwijzen. Aangezien Percona, net als MariaDB, een drop-in vervanging is voor MySQL, zullen de gekoppelde afhankelijkheden, zodra de nieuwe binaire bestanden eenmaal zijn geïnstalleerd, het verschil niet meer weten en normaal functioneren.

1) Verwijder MariaDB-pakketten zonder afhankelijkheden:

rpm -e --nodeps mariadb mariadb-libs mariadb-server

2) Verwijder mariadb-devel-pakket (doe dit als een afzonderlijke opdracht van hierboven om te voorkomen dat het verwijderen van een ontbrekend pakket mislukt)

rpm -e --nodeps mariadb-devel

3) Percona-repository installeren:

yum install https://www.percona.com/redir/downloads/percona-release/redhat/percona-release-0.1-4.noarch.rpm

4) Percona DB-server installeren:

yum install Percona-Server-client-55 Percona-Server-server-55 Percona-Server-shared-55

5) Voer de volgende opdrachten uit (laat de InnoDB-plug-in correct laden)

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) Zorg ervoor dat er geen processen luisteren op poort 3306 en stop het proces indien aanwezig.

netstat -tulpn | grep 3306

7) Start MySQL (nu Percona 5.5)

service mysql start

8) Voer het mysql_upgrade-script uit

mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`

9) [Optioneel] Percona XtraDB Cluster UDF inschakelen vanuit 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) Start MySQL opnieuw om de upgradeprocedure te voltooien

systemctl start mysql

Fase 3 – Schakel het Plesk MySQL-pakket over naar het Plesk MySQL Community-pakket

Het uitvoeren van Percona op Plesk is een niet-ondersteunde configuratie. Om deze reden is het, om te voldoen aan de afhankelijkheidsverbindingen tussen het Plesk MySQL-pakket en de nieuwe Percona-binaries, noodzakelijk om de Plesk MySQL-release over te schakelen naar het gebruik van de Plesk MySQL Community-release. De wijziging is nodig om het upgraden en downgraden van Percona-versies te vergemakkelijken.

1) Maak het benodigde repo-configuratiebestand:

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) Installeer het pakket “plesk-mysql-server-community” vanuit de nieuwe repository:

yum install plesk-mysql-server-community

3) Schakel het bestand /etc/yum.repos.d/plesk178.repo uit omdat het niet langer nodig is:

mv /etc/yum.repos.d/plesk178.repo{,.disabled}

4) Verwijder het pakket ”plesk-mysql-server” zonder afhankelijkheden aan te raken.

rpm -e --nodeps plesk-mysql-server

Percona zou nu geïnstalleerd moeten zijn en werken op de basis 5.5-versie. De volgende fasen zijn identiek aan het typische MySQL-upgradeproces waarbij binaire bestanden worden geüpgraded, en vervolgens worden de schema-updates handmatig gemaakt met behulp van de mysql_upgrade-tool.

Upgrade Percona 5.5 naar 5.6

1) MySQL-service stoppen:

service mysql stop

2) Percona 55-pakketten verwijderen zonder afhankelijkheden:

rpm -e --nodeps Percona-Server-shared-55 Percona-Server-client-55 Percona-Server-server-55

3) Percona 56-pakketten installeren

yum install Percona-Server-shared-56 Percona-Server-client-56 Percona-Server-server-56

4) Zorg ervoor dat er geen processen luisteren op poort 3306 en stop het proces indien aanwezig.

netstat -tulpn | grep 3306

5) Start de MySQL-service:

service mysql start

6) Upgrade MySQL-tabellen:

mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`

Fase 4 – Upgrade Percona 5.6 naar 5.7

1) MySQL-service stoppen:

service mysql stop

2) Percona 56-pakketten verwijderen zonder afhankelijkheden:

rpm -e --nodeps Percona-Server-shared-56 Percona-Server-client-56 Percona-Server-server-56

3) Percona 57-pakketten installeren

yum install Percona-Server-shared-57 Percona-Server-client-57 Percona-Server-server-57

4) Zorg ervoor dat er geen processen luisteren op poort 3306 en stop het proces indien aanwezig.

netstat -tulpn | grep 3306

5) Start de MySQL-service:

service mysql start

6) Upgrade MySQL-tabellen:

mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`

Fase 5 – Upgrade afronden

Het systeem zou nu Percona 5.7 moeten draaien en volledig toegankelijk zijn voor applicaties. In dit stadium moeten alle sites of applicaties die een database gebruiken worden getest en moeten eventuele fouten worden onderzocht.


  1. Een-op-nul-of-een-relatie implementeren in SQL Server

  2. Leer hoe u de prestaties van Microsoft SQL Server kunt afstemmen

  3. Hoe schrijf ik een Oracle Insert-script met één veld als CLOB?

  4. Digitale transformatie:het begint allemaal met datadenken