Archive pour le mot-clef ‘outils’

Outils d’analyse de requêtes lentes – mk-query-digest

Mercredi 22 septembre 2010

Et voici notre troisième et dernière partie consacrée aux outils d’analyse de requêtes lentes. Aujourd’hui, après le très simple mysqldumpslow et le configurable mysqlsla, nous allons examiner mk-query-digest, un des scripts Perl faisant partie de la suite Maatkit. Lire le reste de cet article »

Outils d’analyse de requêtes lentes – mysqlsla

Mercredi 28 juillet 2010

Pour ce second volet de notre série consacrée aux outils d’analyse de requêtes lentes, nous allons nous pencher aujourd’hui sur mysqlsla, qui est un script Perl disposant de nombreuses options d’agrégation et de filtrage. Lire le reste de cet article »

Outils d’analyse de requêtes lentes – mysqldumpslow

Jeudi 8 juillet 2010

Nous avons vu dans un précédent article comment tracer les requêtes lentes avec MySQL et quelles sont les possibilités selon la version du serveur. Si vous avez activé le journal des requêtes lentes, vous avez sans doute recueilli un certain nombre de requêtes qu’il faut maintenant analyser afin de pouvoir les optimiser ou afin de revoir le paramétrage du serveur. Cet article est le premier d’une série de trois, qui va vous montrer quelques outils qui vont vous aider dans cette analyse. Lire le reste de cet article »

Securich – Darren Cassar

Dimanche 23 août 2009

Darren s’est occupé récemment d’une migration de Sybase vers MySQL. Et il s’est aperçu à cette occasion que la gestion des utilisateurs sous MySQL n’est pas sans défaut. Par exemple, il n’est pas possible de créer des rôles, il n’est pas possible de donner à un utilisateur des droits sur toutes les tables sauf une, il n’est pas possible de connaître le degré de complexité d’un mot de passe…

Pour essayer de pallier à tous ces défauts, Darren a créé un outil : Securich, installable sur tout serveur MySQL 5.1. Cet outil permet, à l’aide d’appels à des procédures stockées, de manipuler les utilisateurs et leurs droits. Attention tout de même, le développement de Securich a commencé il y a peu de temps et le code est encore expérimental. Il reste pas mal de fonctionnalités que Darren voudrait implémenter et quelques bugs gênants : par exemple, si vous installez Securich sur un serveur contenant des utilisateurs, Securich va effacer tous les utilisateurs sans vous en avertir…

L’initiative est en tout cas intéressante car il reste effectivement pas mal de travail pour que MySQL présente autant de fonctionnalités sur les utilisateurs et les droits que d’autres produits.

MySQL Sandbox 3 – Giuseppe Maxia

Dimanche 23 août 2009

Nous avons tous régulièrement besoin de monter rapidement un ou plusieurs serveurs MySQL pour tester telle ou telle fonctionnalité. Et évidemment, c’est toujours quand on veut aller vite qu’on fait des erreurs et qu’on se retrouve avec des serveurs qui ne démarrent pas. MySQL Sandbox a été créée pour nous aider dans cette situation. Giuseppe s’est en effet trouvé de nombreuses fois dans la situation où il perdait énormément de temps à monter des environnements jetables et il a imaginé un script permettant d’automatiser cette création d’environnements jetables.

Sans entrer dans le détail des commandes (voir pour cela la page sur Launchpad), MySQL Sandbox permet de créer en une ligne de commande des environnements complets et variés : un serveur, plusieurs serveurs indépendants, un maître-plusieurs esclaves…Il est même possible de créer, toujours en une seule ligne, une réplication circulaire entre N serveurs ! Le script permet également de démarrer, arrêter, effacer chacun des serveurs ainsi créés ou de faire une opération pour tous les serveurs à la fois.

Ca faisait un moment que je voulais prendre un peu de temps pour voir ce qu’il était possible de faire avec MySQL Sandbox, maintenant c’est sûr : je vais m’y mettre !

A voir également sur le sujet : un précédent article d’Arnaud, sur dbnewz bien sûr !

15 secondes pour installer une réplication MySQL avec MySQL Sandbox, pari tenu ?

Vendredi 10 octobre 2008

« Installez-moi une configuration MySQL composée d’un master et deux slaves, vous avez 15 secondes. Top chrono »…

Non, ça n’est pas la dernière énigme à la mode pour rentrer chez Google mais plutôt une question qui pourrait devenir presque banale pour un entretien d’embauche pour un DBA MySQL à l’avenir, qui sait ?

Face à un tel défi, trois solutions :

- La fuite (mais faites une croix sur la « recommandation » Linkedin)
- Le kernel panic
- MySQL Sandbox !

Bien vu, MySQL Sandbox est la réponse la plus stratégique pour la poursuite de votre carrière.

Giuseppe Maxia (dont le blog figure dans notre blogroll, allez y jeter un oeil) est l’auteur de cet outil vraiment très pratique.  Que propose t-il ?

L’idée est d’automatiser l’installation de plusieurs serveurs MySQL sur une même machine. Rien que nous ne puissions faire manuellement c’est vrai, cependant la procédure habituelle consistant à ne pas mélanger les répertoires d’installation, choisir un port différent par serveur, appliquer mysql_secure_installation… Tout cela gagnerait à être automatisé non ? De plus ces installations manuelles sont potentiellement sources d’erreurs.

MySQL Sandbox est compatible avec toutes les versions MySQL de la 3.23 à la 6.0. Les différentes installations effectuées sont indépendantes les unes des autres, on peut ainsi faire cohabiter sans risque de conflits plusieurs versions différentes de MySQL sur une même machine (ports, répertoires et sockets indépendants).

En plus d’automatiser ces processus d’installation (gain de temps), MySQL Sandbox ne s’arrête pas là et  propose également des commandes très simples pour gérer les serveurs une fois installés.

Concernant le gain de temps, son auteur promet (notamment en page 2 de cette présentation) l’installation d’une réplication MySQL en 15 secondes. Info ou intox ?

Lire le reste de cet article »

mysql_secure_installation, utile mais non paramétrable

Lundi 14 juillet 2008

Je n’avais pas prévu d’écrire un billet sur mysql_secure_installation, c’est en préparant le prochain article (installation du cluster MySQL) que m’est venue l’idée d’écrire quelques lignes sur le sujet.

Ce script, présent dans le répertoire « bin » de votre installation de MySQL, a pour but de « sécuriser » votre base une fois celle-ci installée. Il vous est d’ailleurs conseillé de l’exécuter une fois mysql_install_db lancé ou à défaut de passer par mysqladmin pour au moins modifier le mot de passe associé à l’utilisateur « root ».

Lors de l’installation du cluster, je pars du principe qu’un autre serveur MySQL est susceptible de tourner sur le SQL node, je choisis donc d’opter pour un port différent de celui assigné par défaut au serveur MySQL (3306). Je m’aperçois alors que je n’ai aucun moyen de faire pointer mysql_secure_installation vers mon serveur MySQL en 3307, le script pointant automatiquement vers le port par défaut…

Face à ce problème, au moins deux solutions, taper manuellement les requêtes automatisées de mysql_secure_installation, ou modifier le script.

Lire le reste de cet article »

mysqlslap et supersmack, deux outils de benchmark pour MySQL

Lundi 7 juillet 2008

Il est parfois reproché au serveur MySQL de ne pas fournir suffisamment d’outils de benchmark / profiling concernant les requêtes ou le fonctionnement du serveur lui-même. Des commandes telles que SHOW STATUS (affiche l’état du serveur à un instant t), ou bien encore EXPLAIN (plan d’exécution de la requête SQL) permettent néanmoins d’obtenir de précieuses informations.

Ceci étant dit, comment s’assurer que son serveur MySQL tiendra la charge ? 1000 requêtes /s en insertion sont prévues le jour de la sortie de votre prochain service internet : votre serveur sera t-il capable d’y faire face  ?

Les deux outils présentés aujourd’hui permettent de simuler la charge reçue par le serveur MySQL en fonction de différentes paramètres dont le nombre de connexions simultanées et le nombre de requêtes par utilisateurs. Avec de tels outils, vous pouvez par exemple tester mysqlslap sur une de vos requêtes clé, visualiser comment celle-ci réagit sous différentes configurations, et visualiser un « score » à base de temps d’exécution. Une fois ce « score » récupéré, comparez-le avec celui que vous obtiendriez avec la même requête modifiée par vos soins, avez-vous progressé ?
Lire le reste de cet article »

DBDesigner 4 : générer son MCD par reverse engineering

Dimanche 22 juin 2008

Disposer d’un MCD (modèle conceptuel de données) lorsqu’on travaille sur une requête SQL impliquant différentes tables représente un gain de temps.
Il est en effet plus rapide de jeter un coup d’oeil sur un MCD afin de repérer quels sont les champs qui lient une table à une autre plutôt que d’enchaîner les « DESC ma_table », puis repérer la clé primaire et les éventuelles clés étrangères, et rebolote sur la ou les tables de destination…

La prochaine série d’articles sur les index MySQL va nous amener à enchaîner quelques requêtes sur une des deux bases d’exemple disponibles sur le site de MySQL : world et sakila, le prétexte est donc tout trouvé pour évoquer ici la solution que j’ai retenu pour obtenir le MCD de ces tables : DBDesigner 4.

Cet outil n’est pas nouveau, son successeur officiel est même déjà connu, il s’agit de MySQL Workbench. Celui-ci n’étant pas encore disponible sous linux, nous utiliserons son ancêtre et plus particulièrement sa fonctionnalité de « reverse engineering » : une fois connecté à votre base, DBDesigner 4 va générer sous forme graphique vos tables, leurs descriptions, et si tout se passe bien, les relations entre vos tables.

Lire le reste de cet article »

DorsalSource

Jeudi 3 mai 2007

Je ne sais pas vous mais moi, si il y a une chose qui m’ennuie c’est bien de recompiler les sources de MySQL à chaque fois que je veux tester un patch. D’une part il va toujours me manquer quelque chose et de l’autre je perds un temps fou. La solution à ce problème est enfin là et s’appelle DorsalSource , la nouveauté de mon ami Jérémy Cole et de l’équipe provenscaling en association avec solid.

DorsalSource est une idée qui a germée peu après l’annonce fin 2006 des versions « communauté » et « entreprise », MySQL ne fournissant plus les binaires aussi souvent pour la version communauté, version pour tout utilisateur sans contrat de support.

Lire le reste de cet article »