Optimisez votre serveur MySQL avec MySQL Tuning Primer

Vous avez des serveurs de bases de données MySQL mais vous n’êtes pas DBA et ne savez pas comment les optimiser ? Dans ce cas, vous serez intéressé par le script MySQL Tuning Primer qui analyse votre installation et vous fait des recommandations de configuration pour optimiser les performances MySQL. Le script utilise les valeurs retournées par les commandes MySQL « SHOW STATUS » et « SHOW VARIABLES« .

Note : en règle général, les fichiers de configuration exemples de MySQL Server sont un bon départ, mais jamais entièrement adapté à votre système. Le dossier d’installation de ces configurations exemples changent en fonction des distributions et de la méthode d’installation, mais vous pouvez les rechercher sur votre serveur : my-small.cnf, my-medium.cnf, my-large.cnf, my-huge.cnf.

MySQL Tuning Primer Script fait des recommendations pour les points suivants :

Slow Query Log, Max Connections, Worker Threads, Memory Usage, Key Buffer, Query Cache, Sort Buffer, Joins, Temp Tables, Table (Open & Definition) Cache, Table Scans (read_buffer), Table Locking, Innodb Status.

Voici un exemple de recommandations sur mon serveur MySQL (pour le serveur hébergeant ma base WordPress entre autres) :

Comment optimiser MySQL ?

Optimisation MySQL avec MySQL Tuning Primer : résultat du script

Optimisation de votre serveur MySQL

Optimisation MySQL avec MySQL Tuning Primer : résultat du script

Optimisation MySQL avec un script : MySQL Tuning Primer

Optimisation MySQL avec MySQL Tuning Primer : résultat du script

Compatible avec toutes les versions de MySQL supérieures à 3.23, il est très facile à utiliser : il suffit de lui indiquer un compte utilisateur qui peut se connecter au serveur, et le résultat s’affiche au bout de quelques secondes.

Site : MySQL Tuning Primer Script.

Sauvegarde de vos serveurs MySQL avec phpMyBackupPro

Pour les allergiques à la ligne de commande (ça existe), et qui voudraient un outil simple et gratuit pour sauvegarder des bases de données MySQL, il existe phpMyBackupPro.

Très simple à installer (il suffit de déposer un répertoire sur un serveur d’hébergement PHP), phpMyBackupPro se présente sous la forme d’une application hébergée et accessible via un navigateur. Une seule instance est nécessaire pour sauvegarder plusieurs serveurs MySQL.

Sauvegarde de vos bases MySQL avec phpMyBackupPro

Sauvegarde de vos bases MySQL avec phpMyBackupPro

Au niveau des fonctionnalités, on retrouve :

  • sauvegarde d’une ou plusieurs bases, avec ou sans les données (ou juste la structure),
  • compression possible (gzip ou zip),
  • sauvegardes planifiées,
  • interface de management des backups (vue, restauration, download, suppression, etc.),
  • sauvegarde possible vers un serveur FTP ou envoi du résultat par mail,
  • disponible en plusieurs langues.
Sauvegarde planifiée de vos bases MySQL avec phpMyBackupPro

Configuration d'une sauvegarde planifiée

Ci-dessous, la vue de management des backups : ici, une seule sauvegarde présente.

Restauration de vos bases MySQL avec phpMyBackupPro

Restauration d'une base de données MySQL

Vous pouvez également visualiser un résumé de vos bases de données, avec le nombre de tables et d’entrées totales, ainsi que la taille.

Informations sur une bases de données MySQL

Informations sur les bases accessibles

Personnellement, je suis plus adepte de la ligne de commande, et pour la sauvegarde de serveurs MySQL, j’utilise un script très bien fait : AutoMySQLBackup.

Pour choisir, je dirais :

  • si vous disposez d’un accès SSH à votre serveur, ainsi qu’au crontab, je privilégierais le script AutoMySQLBackup,
  • si vous êtes sur un serveur mutualisé et que vous n’avez pas accès SSH/crontab, je préconiserais phpMyBackupPro.
Téléchargement : phpMyBackupPro.

Script de sauvegarde pour MySQL

J’ai cherché pendant quelques temps un moyen de sauvegarder proprement des bases de données MySQL, et j’ai trouvé mon bonheur avec AutoMySQLBackup.

Il s’agit d’un script (gratuit) qui permet de sauvegarder MySQL de façon récurrente en séparant les bases par fichiers, et en gardant des versions hebdomadaires, mensuelles, etc. Les fichiers obtenus sont directement compressés afin d’optimiser au maximum l’espace disque consommé. Il est possible de sauvegarder une ou plusieurs bases en particulier, ou alors toutes les bases du serveur.

Pour modifier les paramètres (connexion à la base de données, options, etc.), il suffit d’éditer le script (voir ci-dessous).

Automysqlbackup : script de sauvegarde pour MySQL

Et si vous voulez sauvegarder plusieurs serveurs de bases de données, pas de panique, il suffit d’avoir une version du script par serveur.

Enfin, pour une exécution régulière, il faut bien sûr le planifier avec crontab. Le résultat de chaque sauvegarde peut être envoyé par mail, sous la forme suivante :

Backup of Database Server – mysqlserver
======================================================================
Backup Start Time Wed Oct 27 20:45:01 CEST 2010
======================================================================
Daily Backup of Database ( information_schema )
Rotating last weeks Backup…
removed `/backups/mysql4/daily/information_schema/information_schema_2010-10-20_20h45m.Wednesday.sql.gz’

Backup Information for /backups/mysql4/daily/information_schema/information_schema_2010-10-27_20h45m.Wednesday.sql
compressed uncompressed ratio uncompressed_name
475 1232 67.0% /backups/mysql4/daily/information_schema/information_schema_2010-10-27_20h45m.Wednesday.sql
———————————————————————-
Daily Backup of Database ( cacti )
Rotating last weeks Backup…
removed `/backups/mysql4/daily/cacti/cacti_2010-10-20_20h45m.Wednesday.sql.gz’

Backup Information for /backups/mysql4/daily/cacti/cacti_2010-10-27_20h45m.Wednesday.sql
compressed uncompressed ratio uncompressed_name
171349 645053 73.4% /backups/mysql4/daily/cacti/cacti_2010-10-27_20h45m.Wednesday.sql
———————————————————————-
Backup End Wed Oct 27 20:45:20 CEST 2010
======================================================================
Total disk space used for backup storage..
Size – Location
140M /backups/mysql4

Vous, vous faites comment pour sauvegarder MySQL ?

Comment migrer sur MySQL5 chez OVH

Étant client depuis fort longtemps chez OVH, je me trainais encore une base MySQL4, laquelle ne me dérangeait pas le moins du monde puisque je n’avais pas besoin des fonctionnalités supplémentaires.

Note : je rappelle que MySQL est un Système de Gestion de Base de Données, utilisé dans ce cas pour stocker les données de ce blog, telles que les articles, les commentaires, etc. Ces données sont exploitées par un serveur d’application Apache et un langage de script PHP.

En tentant de mettre à jour mon blog vers WordPress 2.9, mon installation de WordPress m’a prévenu que c’était impossible si je ne passais pas sur une version supérieure de MySQL.

The update cannot be installed because WordPress 2.9.2 requires MySQL version 4.1.2 or higher. You are running version 4.0.25.

Bref, je n’avais pas trop le choix !

(suite…)

Outils d’administration, de gestion, et de supervision pour MySQL

Logo MySQLMa fonction actuelle inclut (entre autre) l’administration et la gestion de plusieurs serveurs de bases de données : MySQL, PostgreSQL, et MS SQL. Pour assurer une gestion efficace et rapide de tâches récurrentes, il existe plusieurs moyens pour s’affranchir de l’administration en ligne de commande.

Je vais présenter dans ce billet 4 outils graphiques, vous permettant de gérer et de monitorer vos instances MySQL.



(suite…)