Showing entries 1 to 10 of 25
Suivant 10 Entrées plus anciennes »
Displaying posts with tag: outils (reset)
MySQL Toolkit

J’ai finalement fait mon premier vrai commit sur GitHub, MySQL Toolkit.  Ce repository, avec un peu de temps, deviendra une collection de scripts, de fonctions, de procédures stockées et d’un tas d’autres choses utiles lorsque vous travaillez avec MySQL.  Pour l’instant toutefois, il n’y a que des fonctions.

Ce premier commit comprend:

collapse_blanks : Replaces multiple blanks with a single space.
collapse_spaces : Replaces multiple spaces with a single space.
initcap : Returns a character string with the first letter of each word converted to uppercase. This function EXACTLY mimics INITCAP of Oracle.
occurrences : Returns …

[Lire plus]
2 petits outils pratiques pour MySQL

Je suis tombé par hasard sur un excellent blogue (en anglais malheureusement), Fatal Exception, principalement dédié à MySQL et qui explique en détail 2 procédures stockées qui pourraient grandement vous faciliter la tâche.

La première sert d’alternative à la commande SHOW TABLE STATUS en étant plus détaillé et plus lisible.

La seconde  permet d’avoir une vue d’ensemble de toutes les bases de …

[Lire plus]
mysqldump et les views

Quoi qu’on en pense, les views dans MySQL sont très utiles dans certaines circonstances. Cependant, on peut silencieusement les briser sans s’en rendre compte en modifiant la structure d’une table qui l’utilise. C’est malheureux, mais pas dramatique puisqu’aucune donnée n’est perdue…

Faux !

Si vous utilisez mysqldump pour faire vos backups, il est très dangereux de briser une view.

CREATE TABLE a (a int);
CREATE TABLE b (b int);
CREATE VIEW abview AS SELECT a,b FROM a INNER JOIN b ON a.a = b.b;

Le temps passe et on oublie qu’on a créé une view…

ALTER TABLE a CHANGE a a_field int;

Tout continue de bien fonctionner jusqu’au moment où on fait nos backups..

patlaf@noidea:~$ mysqldump -uroot -p --all-databases > /dev/null
Enter password:
mysqldump: Couldn't execute 'show create table `abview`': View 'test.abview' references
invalid table(s) or …
[Lire plus]
Analyser les logs pour trouver des problèmes de performance

Une manière d’identifier d’où provient des peaks de performance momentanés est de regarder les logs produit par MySQL, soit le slow query log et les binlog. Malheureusement (ou heureusement?), il est possible qu’un grand nombre de requêtes optimisées soit envoyées au serveur, et par conséquent, ne se trouve pas dans le slow query log. Le binlog s’avère donc une source plus fiable.

Comment faire? En utilisant mk-query-digest de la suite d’outil Maatkit. Cet outil permet d’analyse les logs générés par mysqlbinlog et crée un rapport complet de la situation. Il possède une multitude d’options que je vous invite à lire dans la doc officielle, mais voici comment l’utiliser dans sa forme la plus simple:

mysqlbinlog mysql-binlog.003161 | mk-query-digest --type binlog --report-format …
[Lire plus]
Outils d’analyse de requêtes lentes – mk-query-digest

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.

mk-query-digest permet d’analyser de nombreux types de journaux et présente un rapport qu’on peut configurer de multiples manières. Contrairement à mysqlsla qui ne sait lire que des fichiers journaux, mk-query-digest offre la possibilité d’analyser d’autres sources de requêtes, par exemple des paquets issus de tcpdump. Un autre point fort de cet outil est le nombre d’options disponibles, qui permettent de filtrer ou classer les entrées analysées de manière à obtenir exactement le rapport que chacun souhaite.

Comme toujours, notre propos va commencer par …

[Lire plus]
Outils d’analyse de requêtes lentes – mysqlsla

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.

Commençons par l’installation du script. Rien de plus simple, il vous suffit pour commencer de télécharger et de décompresser une archive de l’outil, disponible ici. Ensuite, des classiques

$ perl Makefile.PL
$ make
# make install

vous permettent d’installer le script. Notez, point agréable, qu’une page de man est intégrée. Si vous cherchez la syntaxe d’une option, un man mysqlsla vous dispensera donc bien souvent d’aller faire un tour sur le site du projet.

mysqlsla est plus généraliste que …

[Lire plus]
Outils d’analyse de requêtes lentes – mysqldumpslow

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.

Avant toute chose, montons une petite configuration qui va nous être utile pour illustrer le fonctionnement et les limitations de chaque outil.

Prenons un serveur MySQL en version 5.1 avec la table exemple sakila et choisissons une valeur de long_query_time de 0.05s. Pourquoi une valeur aussi faible ? Tout simplement parce qu’avec une telle valeur, il n’est vraiment pas difficile des requêtes qui seront considérées …

[Lire plus]
L’importance des clés primaires avec mk-table-sync

J’adore Maatkit. Je m’en sers régulièrement dans toutes sortes d’occasions. Pour tous les Slaves que je configure, j’ajoute un petit script maison qui utilise mk-table-sync afin valider l’intégrité des données sur le Slave avec le Master. Ce petit script envoie un email avec les différences et les requêtes à exécuter le cas échéant.

J’ai remarqué que mk-table-sync possède certaines limitations, c’est-à-dire que le format de la table et l’encoding joue un rôle important sur la manière dont l’outil effectue ses comparaisons. Les tables sans clé primaire ou d’identifiant unique sont particulièrement problématiques, et c’est tout à fait compréhensible. Par définition, s’il n’y a pas d’identifiant unique, il est impossible d’être 100% sur que l’enregistrement #1 sur le Master correspond à l’enregistrement #1 sur le Slave. En étant …

[Lire plus]
Retrospective du Demo Camp de Montréal

Comme plusieurs bons ScrumMasters, j’applique des principes de scrums dans ma vie quotidienne. Dans ce sens, je me permets de publier ma rétrospective du Demo Camp d’hier soir.

Dans les points négatifs à améliorer:

  • Ne pas essayer de faire une présentation de 30 minutes en 10 minutes
  • S’informer davantage sur la formule de présentation
  • Prévoir que le Xorg de mon debian n’allait pas supporter les résolutions des mégas projecteurs
  • Prévoir que simuler le crash d’une DB et la recouvrir live implique un certain nombre de risques
  • Pratiquer la présentation, plus, beaucoup plus

Dans les points positifs à retenir:

  • De la bière gratuite fournie par Microsoft
  • Élargis mon réseau de contacts

J’ai spécialement aimé la présentation de DokDok.

[Lire plus]
MySQL Sandbox: bravo !

J’ai souvent entendu parler de MySQL Sandbox. Pour effectuer des tests avec un Master/Slave en fin de semaine, j’ai décidé de l’essayer puisque je n’avais que mon laptop. MySQL Sandbox est un outil pour installer un ou plusieurs serveurs isolés, sans affecter les autres.

Wow! Juste Wow! MySQL Sandbox est un outil vraiment génial! J’ai pu créer une instance de MySQL Master avec 2 instances Slaves sur la même machine en moins de 1 minute! C’est le genre de tâche qui prend de 30 minutes à 1 heure lorsqu’un administrateur expérimenté le fait manuellement. MySQL Sandbox permet non seulement d’installer rapidement 1 ou plusieurs serveurs, il permet aussi d’installer des versions différentes en quelque instant !

De plus, des options prédéfinies permettent de créer un setup Master-Slave ou  Master-Master automatiquement. Il vient avec …

[Lire plus]
Showing entries 1 to 10 of 25
Suivant 10 Entrées plus anciennes »