Comment installer un serveur Fresh Percona ou remplacer MySQL

introduction

Percona Server est une fourche de remplacement en insertion du projet MySQL. Percona vise à améliorer les performances, la cohérence et l’évolutivité de tout le matériel. Ce didacticiel vous guidera pour remplacer une installation MySQL ou MariaDB actuelle par la version la plus récente de Percona Server ou pour installer Percona Server à partir de zéro sur un nouveau Droplet.

Avantages

Percona Server présente de nombreux avantages par rapport à une installation MySQL de base:

  • * XtraDB *: L’un des principaux avantages du passage à Percona Server est XtraDB, une version compatible du moteur InnoDB avec une compatibilité ascendante, avec de grandes améliorations en termes de performances et d’efficacité, vous permettant d’obtenir un meilleur débit de requête de votre matériel actuel. Comme il est construit sur InnoDB, vos tables InnoDB actuelles seront chargées de manière transparente via XtraDB sans processus de migration.

  • * Stabilité et cohérence *: Percona Server exécute plus uniformément sous charge, ce qui signifie que vos applications seront moins exposées aux arrêts ou ralentissements intermittents.

  • * Métriques *: Percona Server est livré avec un certain nombre de métriques de performance supplémentaires, vous permettant de savoir exactement quels utilisateurs, tables, index ou requêtes vous ralentissent. Obtenir d’excellentes performances de votre serveur devient plus scientifique et moins dépendant des approximations.

  • * Authentification PAM *: Habituellement, une fonctionnalité réservée à MySQL Enterprise Edition. Avec Percona Server, vous pouvez associer votre schéma d’authentification à votre accès à la base de données.

  • * Compatibilité *: étant donné que le serveur Percona est un remplacement instantané de MySQL, vous bénéficiez également de tous les avantages habituels de la popularité de MySQL et de sa vaste communauté d’utilisateurs. Cela signifie que toute application conçue pour MySQL peut utiliser Percona Server en toute sécurité, sans aucune modification.

Conditions préalables

  • * Serveur en nuage Debian, Ubuntu ou CentOS *: Les autres distributions ne sont actuellement pas prises en charge. Seules les versions 5 et 6 de CentOS sont prises en charge. CentOS 7 n’est pas pris en charge au moment de la rédaction.

  • * Soit une nouvelle Droplet ou une installation MySQL / MariaDB à jour *: Percona Server peut être installé à partir de zéro sur une nouvelle Droplet ou en remplacement d’une installation MySQL / MariaDB actuelle. Selon la situation dans laquelle vous vous trouvez, certaines étapes de cet article peuvent concerner un seul cas et seront marquées par * (Nouveau uniquement) * ou * (Remplacement uniquement) *. Toute section ou tout paragraphe non marqué doit être utilisé dans les deux cas.

  • * Accès racine *: Toutes les commandes de cet article doivent être exécutées en tant que root.

  • * Mémoire *: Pour une installation par défaut, vous aurez besoin * d’au moins 1 Droplet *, sinon vous risquez d’obtenir des échecs lors de l’installation en raison d’une mémoire insuffisante pour l’allocation de pools de mémoire tampon. Si vous disposez d’un droplet de 512 Mo avec swap space alloué, vous pouvez également obtenir une installation réussie, même si les performances sont inférieures à la moyenne.

  • * Sauvegarde des données (remplacement uniquement) *: Avant de modifier la configuration de votre serveur de base de données, assurez-vous de sauvegarder toutes vos données actuelles. Ce tutoriel laissera tous les fichiers de données en place, en supprimant uniquement le binaire MySQL et les outils associés - mais il est toujours idéal de disposer d’une sauvegarde en cas de problème. Nous avons un number d’articles sur DigitalOcean qui couvre la sauvegarde de vos fichiers de base de données.

  • * Sauvegarde de la configuration (remplacement uniquement) *: De même, il est recommandé de copier votre configuration actuelle de MySQL / MariaDB si vous remplacez une installation actuelle. Ce fichier se trouve sur les systèmes Debian / Ubuntu et + / etc / my.cnf + sur les systèmes CentOS. Sur CentOS, le package MariaDB supprimera le fichier de configuration lors de la désinstallation. Cette étape est donc particulièrement importante sur ces systèmes.

Première étape - Vérification des versions (remplacement uniquement)

Les versions de Percona Server sont compatibles avec les versions équivalentes de MySQL uniquement. i.e. MySQL 5.6 ne doit être remplacé que par Percona Server 5.6. Tenter d’utiliser des versions incompatibles peut entraîner une corruption de la table ou empêcher le démarrage du serveur.

Pour vérifier quelle version vous utilisez actuellement, connectez-vous d’abord à MySQL avec votre mot de passe root actuel:

mysql -u root -p

Ensuite, trouvez la version actuelle installée:

SHOW VARIABLES LIKE "version";

Cela devrait indiquer si vous devez installer Percona Server 5.5 ou 5.6. Si vous utilisez MariaDB 10.0, vous devez le remplacer par Percona Server 5.6. Si vous utilisez une version de MySQL antérieure à 5.5, vous devez tout d’abord mettre à niveau MySQL vers la version 5.5 ou une version ultérieure avant de continuer.

Deuxième étape - Suppression de MySQL (remplacement uniquement)

Avant d’installer le serveur Percona, nous devrons supprimer tous les packages MySQL ou MariaDB actuellement installés, car vous ne devriez pas essayer de les exécuter simultanément sur les mêmes données.

Vous devriez avoir une sauvegarde de vos données et de vos fichiers de configuration avant de continuer.

Avant de désinstaller MySQL, il est conseillé d’arrêter le serveur de base de données pour éviter toute corruption des données dans le cas où le processus ne serait pas arrêté en toute sécurité lors de la suppression du paquet:

service mysql stop

Pour les serveurs Debian et Ubuntu, les packages client et serveur MySQL doivent être supprimés:

apt-get remove mysql-server mysql-client mysql-common
apt-get autoremove

Pour les systèmes CentOS, la base de données par défaut est maintenant MariaDB, qui peut être désinstallée comme suit:

yum remove MariaDB-server MariaDB-client MariaDB-shared

Pour les autres variantes, veuillez consulter votre documentation pour la procédure de désinstallation.

Troisième étape - Installation du serveur Percona

Percona Server ne figure probablement pas dans les référentiels par défaut de votre distribution Linux, car Percona gère ses propres dépôts pour garantir que les mises à jour sont transmises aux utilisateurs aussi rapidement que possible. Par conséquent, nous devrons ajouter manuellement les référentiels Percona APT ou yum avant l’installation. Suivez les instructions ci-dessous pour le système d’exploitation de votre serveur.

Debian et Ubuntu (Apt)

Les paquets Debian et Ubuntu publiés par Percona sont signés, ce qui signifie que APT doit être informé de la nouvelle clé de signature:

apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A

Avant de passer à l’étape suivante, assurez-vous de connaître la distribution que vous utilisez actuellement. Pour Debian, ce sera l’un des suivants:

  • écraser

  • asthmatique

De même, pour Ubuntu, les distributions prises en charge sont les suivantes:

  • lucide

  • précis

  • grivois

  • sûr

Si vous ne savez pas quelle version de distribution vous utilisez, vous pouvez exécuter la commande suivante:

lsb_release -c

Une fois que vous êtes sûr de la distribution que vous utilisez, nous pouvons ajouter les nouveaux référentiels Percona en ajoutant les lignes suivantes au fichier:

nano /etc/apt/sources.list

Ajoutez ces lignes au bas du fichier, en veillant à remplacer "+ DIST +" par votre nom de distribution (c’est-à-dire que vous remplaceriez * DIST * par * wheezy * ou * trusty *, etc.):

deb http://repo.percona.com/apt  main
deb-src http://repo.percona.com/apt  main

Une fois que vous avez enregistré le fichier de sources, les packages Percona doivent ensuite être épinglés pour vous assurer que les packages de Percona seront toujours prioritaires par rapport aux packages des référentiels par défaut de votre distribution. Pour ce faire, nous créons d’abord un nouveau fichier de préférences pour APT:

touch /etc/apt/preferences.d/00percona.pref

Maintenant ouvrez ce fichier avec votre éditeur de texte choisi (Vim, nano, etc.), ajoutez les lignes suivantes et sauvegardez:

Package: *
Pin: release o=Percona Development Team
Pin-Priority: 1001

Enfin, une fois les sources ajoutées et épinglées, la liste de packages peut être mise à jour et nous pouvons installer le package Percona Server.

  • (Nouveau uniquement) * Pour une nouvelle Droplet, il est conseillé d’installer le package virtuel, qui installera la version de Percona Server recommandée par l’équipe Percona:

apt-get update
apt-get install percona-server-server
  • (Remplacement uniquement) * Reportez-vous à la version de MySQL ou MariaDB que vous avez localisée précédemment. Pour remplacer la version 5.5, utilisez le package et pour 5.6. MariaDB 10.0 doit être remplacé par Percona Server 5.6.

apt-get update
apt-get install percona-server-server-

Si cette commande se termine sans erreur, Percona Server sera installé et fonctionnera correctement. Cependant, si vous rencontrez des erreurs lors de l’installation, assurez-vous de disposer de suffisamment de mémoire libre, comme indiqué dans la section sur les conditions préalables ci-dessus. Vous trouverez plus d’informations sur les erreurs de démarrage dans le fichier journal de Percona Server à l’adresse.

  • (Nouveau uniquement) * Lors de l’installation sur un nouveau système, il peut vous être demandé pendant le processus d’installation de définir un mot de passe utilisateur de la base de données racine. Il est également recommandé dans cette situation de s’exécuter pour éviter tout problème de sécurité évident:

/usr/bin/mysql_secure_installation

CentOS (miam)

Seules les versions 5 et 6 de CentOS sont actuellement prises en charge par Percona. Au moment de la rédaction, CentOS 7 n’est pas pris en charge.

La première étape pour les systèmes CentOS est l’installation des packages de référentiel Percona sur yum.

Pour les systèmes CentOS 64 bits:

yum install http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm

Pour les systèmes CentOS 32 bits:

yum install http://www.percona.com/downloads/percona-release/percona-release-0.0-1.i386.rpm

Une fois cette opération terminée, nous pouvons ensuite installer la version correcte du package Percona Server.

  • (Nouveau seulement) * Lors de l’installation à partir de zéro, il est recommandé d’utiliser le package Percona Server 5.6:

yum install Percona-Server-client-56 Percona-Server-server-56
  • (Remplacement uniquement) * Lors du remplacement d’une installation précédente, utilisez le numéro de version indiqué dans la section sur la vérification de la version ci-dessus pour choisir le package correspondant correct pour ou. MariaDB 10.0 doit être remplacé par Percona Server 5.6.

yum install Percona-Server-client- Percona-Server-server-

Vous serez invité à accepter les packages, puis à accepter la clé de signature du package, en accord avec ces deux éléments. Après un court instant, l’installation devrait se terminer sans aucune erreur. Si vous recevez des erreurs de transaction lors de l’installation, assurez-vous d’avoir supprimé tous les packages MySQL / MariaDB avant de réessayer.

Avec le paquet maintenant installé, la dernière étape de l’installation consiste à démarrer le serveur:

service mysql start

Si vous recevez une erreur concernant le fichier PID, le serveur ne parvient pas à démarrer. Comme indiqué dans les conditions préalables, cela se produit souvent sur des serveurs à faible RAM où la limite de mémoire empêche l’allocation de pool de mémoire tampon XtraDB. Si ce n’est pas le cas, recherchez d’autres messages d’erreur, en vous assurant que les versions correspondantes de MariaDB et de Percona Server correspondent bien.

  • Remarque: * Si vous effectuez une mise à niveau à partir de MariaDB et recevez une erreur comme celle-ci:

Can't read dir of '/etc/my.cnf.d' (Errcode: 2 - No such file or directory)
Fatal error in defaults handling. Program aborted
Starting MySQL (Percona Server). ERROR! The server quit without updating PID file (/var/lib/mysql/percona-centos.pid).

Vous devriez pouvoir créer le répertoire approprié avec la commande. Ensuite, essayez de démarrer le serveur.

  • (Nouveau uniquement) * Lors de l’installation sur un nouveau système, l’utilisateur root de Percona Server n’aura pas de mot de passe et par conséquent, vos bases de données ne seront pas sécurisées. Il est donc fortement recommandé d’utiliser un nouveau mot de passe et d’autres options de sécurité. Lorsqu’il vous est demandé de saisir le mot de passe root actuel, appuyez simplement sur Entrée.

/usr/bin/mysql_secure_installation

Quatrième étape - Configuration

Si vous avez remplacé une installation MySQL existante, vous devriez avoir copié votre fichier de configuration, qui peut maintenant être copié. Vous pouvez probablement ignorer cette section, même si les exemples de paramètres sont utiles.

Toutefois, si vous installez Percona Server sur une nouvelle Droplet, vous devrez ajouter un fichier de configuration, car Percona Server s’exécute actuellement sur des valeurs par défaut qui risquent de ne pas être optimales pour votre Droplet. Avant de mettre à jour la configuration pour la première fois, il est conseillé d’arrêter Percona Server, car l’emplacement du fichier PID peut changer. Pour les modifications de configuration futures, un simple redémarrage devrait suffire une fois les modifications apportées.

service mysql stop

Vous trouverez ci-dessous un exemple de fichier de configuration pour un droplet de 1 Go, avec un pool de mémoire tampon relativement petit pour des raisons de compatibilité. Sur Debian / Ubuntu, ce fichier doit être écrit. Sur CentOS, ce fichier doit être écrit. Le fichier contient des commentaires en ligne pour expliquer ce que font les différentes sections.

# Generated by Percona Configuration Wizard (http://tools.percona.com/) version REL5-20120208
[mysql]

# CLIENT #
# Configure default options for clients
port                           = 3306

[mysqld]

# GENERAL #
# Choose user for execution, default storage engine and location of the PID file
user                           = mysql
default-storage-engine         = InnoDB
pid-file                       = /var/lib/mysql/mysql.pid

# MyISAM #
# Setup MyISAM options with a minimal config, as InnoDB is our default engine
key-buffer-size                = 32M
myisam-recover                 = FORCE,BACKUP

# SAFETY #
# Enforce limits and safety checks
max-allowed-packet             = 16M
max-connect-errors             = 1000000
innodb                         = FORCE

# DATA STORAGE #
# Select location for database files
datadir                        = /var/lib/mysql/

# BINARY LOGGING #
# Enable and setup the binary log
log-bin                        = /var/lib/mysql/mysql-bin
expire-logs-days               = 14
sync-binlog                    = 1

# CACHES AND LIMITS #
# Configure reasonable default limits throughout Percona Server
tmp-table-size                 = 32M
max-heap-table-size            = 32M
query-cache-type               = 0
query-cache-size               = 0
max-connections                = 500
thread-cache-size              = 50
open-files-limit               = 65535
table-definition-cache         = 1024
table-open-cache               = 2048

# INNODB #
# Setup InnoDB/XtraDB engine a 300MB buffer pool and 32MB log file size
innodb-flush-method            = O_DIRECT
innodb-log-files-in-group      = 2
innodb-log-file-size           = 32M
innodb-flush-log-at-trx-commit = 1
innodb-file-per-table          = 1
innodb-buffer-pool-size        = 300M

# LOGGING #
# Setup log file locations for error log and slow log
# Slow log may be disabled on production setups to prevent extra IO
log-error                      = /var/lib/mysql/mysql-error.log
log-queries-not-using-indexes  = 1
slow-query-log                 = 1
slow-query-log-file            = /var/lib/mysql/mysql-slow.log

Pour les plus grosses gouttelettes ou comme point de départ pour votre fichier de configuration personnalisé, vous pouvez utiliser l’Assistant de configuration Percona pour créer une base appropriée pour votre fichier de configuration.

Une fois le fichier enregistré, vous pouvez redémarrer Percona Server:

service mysql restart

Si le serveur ne parvient pas à démarrer avec cette configuration, essayez de réduire la valeur et de répéter la commande ci-dessus.

Cinquième étape - Vérification de votre installation

Maintenant que Percona Server est installé et opérationnel, nous pouvons nous assurer que tout se passe comme prévu en effectuant quelques vérifications finales. Commencez par vous connecter à la base de données à l’aide du client, en vous connectant avec le mot de passe de l’utilisateur racine de la base de données:

mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 45
Server version: 5.5.38-35.2 Percona Server (GPL), Release 35.2, Revision 674

Copyright (c) 2009-2014 Percona LLC and/or its affiliates
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Immédiatement, nous pouvons voir que la version du serveur dans le texte de connexion spécifie maintenant Percona Server. En utilisant la commande SHOW VARIABLES, nous pouvons approfondir la description de la version spécifique installée:

SHOW VARIABLES LIKE "version%";
+-------------------------+--------------------------------------------------+
| Variable_name           | Value                                            |
+-------------------------+--------------------------------------------------+
| version                 | 5.5.38-35.2                                      |
| version_comment         | Percona Server (GPL), Release 35.2, Revision 674 |
| version_compile_machine | x86_64                                           |
| version_compile_os      | debian-linux-gnu                                 |
+-------------------------+--------------------------------------------------+
4 rows in set (0.00 sec)

Les valeurs et les versions peuvent varier dans votre installation, mais le point clé est que nous avons maintenant Percona Server exécuté plutôt que MySQL.

Ensuite, nous pouvons vérifier que nous tirons parti de XtraDB pour toutes les tables basées sur InnoDB:

SHOW STORAGE ENGINES\G

Le résultat montrera ce bloc parmi beaucoup d’autres:

...

*************************** 8. row ***************************
     Engine: InnoDB
    Support: DEFAULT
    Comment: Percona-XtraDB, Supports transactions, row-level locking, and foreign keys
Transactions: YES
         XA: YES
 Savepoints: YES

...

9 rows in set (0.00 sec)

Le champ de commentaire dans la réponse indique que le moteur XtraDB a été chargé en tant que moteur pour les tables basées sur InnoDB. Lors de la vérification finale, il est conseillé de vous assurer que toutes vos bases de données et vos tables sont lues correctement sur le nouveau serveur.

Si toutes ces vérifications ont été réussies, Percona Server fonctionne correctement. Cependant, si l’une de ces vérifications échouait, assurez-vous d’avoir correctement suivi toutes les étapes précédentes de ce didacticiel, en veillant particulièrement à faire correspondre les numéros de version de MySQL aux numéros de version de Percona Server.

Prochaines étapes

Comme Percona est compatible avec MySQL, tous les tutoriels DigitalOcean couvrant MySQL peuvent être utilisés en toute sécurité avec Percona Server. Lors de la connexion à la base de données, vos applications fonctionneront toujours de manière identique, même si, espérons-le, l’augmentation des performances de Percona Server et de XtraDB a été améliorée.

Les commandes MySQL fonctionneront exactement comme avant.