Archive

Archive for the ‘Admin’ Category

Découvrez MyXplain, une nouvelle façon de se documenter…

December 3rd, 2012 No comments

Pour ceux qui ne lisent pas [Plus] en anglais, je fais une piqure de rappel ici concernant MyXplain.
(Au passage, je ne sais pas si c’est tout à fait clair pour tout le monde mais les versions françaises et anglaises de ce blog ne sont pas des copies conformes, il y a d’ailleurs plus de contenu sur le site anglais que sur celui-ci, allez y faire un tour…)

Je vous propose donc de découvrir MyXplain.
C’est un projet dans lequel Max et moi même nous sommes lancés il y a quelques semaines et dont nous sommes assez fier.
Nous espérons que cet outil pourra également vous aider  au quotidien.

Nous avons voulu créer un endroit unique depuis lequel vous pourrez retrouver toutes les informations nécessaires relatives à une commande MySQL.
Nous avons souhaité commencer avec la commande explain car il nous semble que c’est l’une des plus importante et des plus utilisée par les DBAs. D’autres commandes viendront par la suite comme show processlist ou show slave status.

Je vous invite donc de découvrir le site, pensez à cliquer sur les différentes colonnes de l’explain afin d’accéder aux définitions.
N’hésitez pas à partager vos liens, slides ou commentaires relatifs à cette commande.

Et si vous vous sentez d’humeur à partager ce site autour de vous, nous en serions ravi !

Pour être informé des dernières infos concernant MyXplain, suivez le projet sur twitter :


Merci

Categories: Admin, MySQL

Mon sentiment sur la réplication Galera

October 1st, 2012 15 comments

J’ai eu une conversation par mail il y a peu avec l’ami Cyril à propos de Galera replication.
C’est vrai que ce produit suscite un réel intérêt des acteurs de la communauté MySQL et j’aimerais modestement vous apporter mon sentiment sur ce produit et ses dérivés.

J’ai simplement eu l’occasion de tester ce produit dans le cadre d’un projet (en fait c’était XtraDB Cluster mais c’est presque la même chose).
Je n’ai pas une réelle expérience de production sur ce produit mais je vous livre ici ce que j’ai retenu de la prise en main du produit et des quelques tests que j’ai pu réaliser.

Galera replication, c’est quoi ?

C’est un système de réplication synchrone multi-masters. Tous les serveurs sont actifs en lectures et en écritures. Ce sont tous des maitres en quelque sorte.
Toutes les données sont néanmoins stockées sur chacun des serveurs, il s’agit en effet d’un système de type “share nothing” (Les données ne sont pas partagées).
Il s’agit en fait d’une librairie qui vient se greffer au noyau MySQL. Cette librairie est distribuée en open source.

A quoi ça sert ?

Les cas d’utilisation les plus courants sont les suivants :

  • Répartition de charge pour les lectures
  • Réplication master-master (écritures distribuées)
  • Système de haute disponibilité (à partir de 3 serveurs)

Quelles différences avec la réplication classique ?

  • Tous les noeuds sont des maitres indépendants, les écritures peuvent être faites depuis n’importe quel noeud
  • Il n’y a pas de notion de bascule master/slave en cas de problème puisqu’il n’y a que des maitres
  • La réplication des données est synchrone (enfin presque)
  • L’intégration de nouveaux noeuds est automatisée
  • La réplication se fait en parallèle (plusieurs threads dédiés à la réplication)

Comment l’implémenter ?

Je vous recommande vivement de passer par l’un des deux produits qui proposent une solution intégrée de Galera :

L’installation et la prise en main de ces produits est à mon avis plus simple que d’essayer d’implémenter soi-même la librairie dans le moteur MySQL standard.
Sachez que c’est relativement simple à installer, pour faire simple, ce n’est pas plus compliqué que d’installer un MySQL classique.

Bon, et alors, tu en as pensé quoi ?

La première chose sur laquelle je me suis jeté quand j’ai commencé à travailler avec le produit c’est la documentation.
La partie vers laquelle je me tourne en premier lieu, quel que soit le produit, ce sont les limitations.
Je vous recommande vivement de lire cette page avant d’aller plus loin avec le produit.
Les deux limitations les plus marquantes sont le seul support de InnoDB (pas de MyISAM) et quelques limitations concernant les “grosses” transactions.

Voici donc ce que je peux en dire :

  • Le coté synchrone mis en avant est à mon avis un peu exagéré car il ne s’agit pas réellement de réplication synchrone (on parle de “virtuellement synchrone“). Ce concept est d’ailleurs à l’origine des problèmes que l’on peut rencontrer avec certaines transactions
  • C’est très très très verbeux…
  • Il s’agit d’une alternative simple à implémenter si on a besoin de faire du master-master
  • Des outils existent pour le monitoring (Plugin Nagios par exemple) ainsi que pour l’installation
  • Je pense qu’on manque encore d’un peu de recul sur la techno mais ça commence à prendre depuis que MariaDB et Percona ont sorti leurs versions packagées
  • C’est un produit qui répond à un besoin complet, ce n’est pas forcement astucieux de partir sur cette solution uniquement si vous n’avez besoin que d’une partie des fonctionnalités. Par exemple, si votre besoin est simplement de basculer plus facilement du master vers un slave, MHA fait ça très bien.

J’espère que ces quelques retours pourront vous aider et si vous avez une expérience du produit, n’hésitez pas à la partager dans les commentaires.

Merci

Categories: Admin

Améliorer les performances de MySQL avec Hadoop

July 27th, 2012 No comments

Pour ceux qui ne partent en courant quand on parle de mapreduce :-)
Une présentation sur l’alliance de MySQL et Hadoop :


Categories: Admin

Relever les défis de MongoDB

April 12th, 2012 No comments

Hello,

Je suis dans ma période MongoDB en ce moment alors j’en profite pour partager une autre présentation qui prend un angle assez critique envers ce produit et propose des solutions aux différents problèmes rencontrés.
J’y ai appris beaucoup de choses très intéressantes.

J’avoue que j’ai pas mal apprécié la façon dont la personne a abordé le sujet :

This talk is not Yet Another Talk about it’ s Awesomeness

Categories: Admin

Retour d’expérience MongoDB chez Fotopedia et SFR

February 24th, 2012 3 comments

Un retour d’expérience sympa sur MongoDB en production par les équipes de Fotopedia et SFR :

Source : http://blog.xebia.fr/2012/02/23/mongodb-en-production-chez-fotopedia-une-experience-devops-2/

Source : http://blog.xebia.fr/2012/03/01/mongodb-chez-sfr-fr/

Categories: Admin

Tour d’horizon des offres de support MySQL en 2011 : Synthèse !

December 21st, 2011 4 comments

Pour finir l’année en beauté et comme je l’avais promis, je vous propose la synthèse de ma série d’article sur les offres de support MySQL.
Il s’agit d’un comparatif des quatre offres qui me semblent les plus pertinentes à ce jour si vous souhaitez souscrire à une offre de support en France :

Je vous invite à lire ou à relire mes articles complets concernant les deux offres que j’ai pu tester personnellement :

Téléchargez la version PDF

[ MySQL is a trademark of Oracle Corporation and/or its affiliates ]

 Indications concernant ce tableau :

  • Le support 24/7 est proposé dans toutes les offres mais dépend du niveau de support souscrit pour certaines de ces offres
  • La correction des bugs prend des formes différentes en fonction des offres
  • Le support de NDB Cluster est généralement associé à un contrat de support à part entière
  • Les outils open source tels que Percona toolkit, XtraBackup, Innotop, MHA ou autres peuvent être utilisés avec toutes les solutions de support présentées ici
  • L’outil de monitoring MONyog est également disponible indépendamment des offres de support. Il est soumis à licence
  • L’outil de sauvegarde ZRM est également disponible indépendamment des offres de support. Il est soumis à licence
  • L’outil de monitoring Zabbix est également disponible indépendamment des offres de support. Il est disponible sous licence open source

Les tarifs ont été volontairement exclus du tableau car ils dépendent évidemment du niveau de support souhaité.

Je vous invite, comme d’habitude, à partager vos retours d’expérience dans les commentaires.

Ce sera mon dernier billet pour cette année, rendez-vous en 2012 !
Bonnes fêtes de fin d’années à toutes et à tous.

Categories: Admin, MySQL, Oracle

Meetup MySQL Viadeo / LeMUG

November 22nd, 2011 2 comments

J’ai participé la semaine dernière au Meetup MySQL Viadeo / LeMUG auquel j’ai été gentiment invité par Olivier.
Ce fût donc une première pour moi et une agréable surprise.
L’évènement été très bien organisé, merci à Olivier et aux équipes de Viadeo qui ont fait ça comme des pros !

Les quatre présentations ont été de grande qualité, le public participatif et le champagne n’a pas fait mal à la tête :-)
J’en profite donc pour remercier tous les participants de ce Meetup.

Retrouvez ci-dessous les slides que j’ai présenté :

Retrouvez les slides de mes petits camarades sur le blog d’Olivier : http://dasini.net/blog/2011/11/18/retour-sur-le-meetup-mysql-viadeo-lemug-fr/
N’hésitez pas à laisser un commentaire si vous étiez au Meetup et à venir encore plus nombreux la prochaine fois !
Categories: Admin, Live !, MySQL

Tour d’horizon des offres de support MySQL en 2011, épisode 3 : fromdual et Percona

September 30th, 2011 No comments

J’avance sur cette série d’articles que j’avais un peu laissé tomber :-)
Retrouvez les deux premiers épisodes Oracle & SkySQL en cliquant sur les liens suivants :

Je vous propose cette fois un tour d’horizon des offres plus confidentielles (en France) de fromdual et Percona sous la forme d’un tableau comparatif des différentes offres :

PERCONA

FROMDUAL

URL

http://www.percona.com/mysql-support/

http://www.fromdual.ch/support

Types de support

Silver, Gold et Premium (tous niveaux)

1er et 2nd niveaux

Plages horaire

24×7 (Temps de réponse variable)

24×7 ou 16×7 ou 9×5 (+ Best effort support)

Nb de serveurs

Illimités à partir du support Gold

NC

Nb d’incidents

Illimités

4, 8, 16 ou 40 selon le niveau de support

Distributions supportées

Oracle MySQL Enterprise, Percona server, MariaDB, Amazon RDS, Drizzle

Oracle MySQL et MariaDB

Système d’exploitation pris en charge

Redhat, CentOS, Ubuntu, Debian, Windows, Solaris

NC

Produits de tierces parties supportés

Percona Xtrabackup, Percona toolkit, Maatkit

NC

Outils

Percona Xtrabackup, Percona toolkit, Maatkit

FromDual Performance Monitor for MySQL

Tarifs annuel

Silver : 1500$ / an / serveur

Gold : 15000$ / an (serveurs illimités)

Platinium : 30000$ / an (serveurs illimités)

NC

 

Je ferai un prochain billet avec un tableau comparatif de toutes les offres d’Oracle, SkySQL, Percona et frondual.

Bon week-end.

 

 

Categories: Admin

Quand OPTIMIZE réinitialise l’auto-increment !

July 17th, 2011 No comments

J’utilise la commande OPTIMIZE depuis longtemps, en particulier pour des problèmes d’espace disque.
Cette commande permet de réaliser une sorte de réorganisation de vos tables et index, pour MyISAM et InnoDB.
Et elle est particulièrement utile lorsqu’une table est vidée partiellement ou complètement afin de récupérer l’espace ainsi libéré (mais toujours occupé par le fichier physique sur disque).

J’ai récemment découvert un bug pouvant remettre en cause cette méthode pour certaines versions de MySQL (InnoDB), je vous laisse juger par vous même :

Création d’une table avec une colonne auto-incrémentée :

mysql> use test
Database changed
mysql> create table test_optimize (id int(8) unsigned NOT NULL AUTO_INCREMENT, PRIMARY KEY (id)) engine=InnoDB;
Query OK, 0 rows affected (1.09 sec)
mysql> insert into test_optimize values (1),(2),(3),(4);
Query OK, 4 rows affected (0.28 sec)
Records: 4  Duplicates: 0  Warnings: 0
mysql> show table status like ‘test_optimize’G
*************************** 1. row ***************************
Name: test_optimize
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 4
Avg_row_length: 4096
Data_length: 16384
Max_data_length: 0
Index_length: 0
Data_free: 0
Auto_increment: 5
Create_time: 2011-07-12 10:21:28
Update_time: NULL
Check_time: NULL
Collation: latin1_swedish_ci
Checksum: NULL
Create_options:
Comment:
1 row in set (0.02 sec)

4 lignes sont insérées dans cette table, l’auto incrément est à 5.

Suppression de toutes les lignes de la table puis OPTIMIZE :

mysql> delete from test_optimize;
Query OK, 4 rows affected (0.00 sec)
mysql> select count(*) from test_optimize;
+—————+
| count(*) |
+—————+
|        0 |
+—————+
1 row in set (0.00 sec)
mysql> optimize table test_optimize;
mysql> show table status like ‘test_optimize’G
*************************** 1. row ***************************
Name: test_optimize
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 0
Avg_row_length: 0
Data_length: 16384
Max_data_length: 0
Index_length: 0
Data_free: 0
Auto_increment: 1
Create_time: 2011-07-12 10:23:39
Update_time: NULL
Check_time: NULL
Collation: latin1_swedish_ci
Checksum: NULL
Create_options:
Comment:
1 row in set (0.00 sec)

Suite à la suppression de toutes les lignes et le passage d’une commande OPTIMIZE, l’auto-incrément est repassé à la valeur 1 !
Il s’agit d’un bug référencé par MySQL pour InnoDB : http://bugs.mysql.com/bug.php?id=18274

Pour éviter ce problème, il sera nécessaire de passer aux versions suivantes de MySQL : 5.1.55, 5.5.9 ou 5.6.1

Je vous laisse juger des conséquences que peut avoir ce bug dans votre contexte.
N’hésitez pas à réagir et donner votre point de vue dans les commentaires.

Bonne semaine.

Categories: Admin, Astuces, MySQL

La consommation CPU avec mpstat

July 5th, 2011 1 comment

Un petit post pour présenter un outil que j’ai découvert dernièrement : mpstat
J’ai pour habitude d’utiliser vmstat afin de visualiser rapidement la charge sur un serveur mais mpstat peut séduire par sa simplicité.

L’affichage de mpstat (toutes les secondes) pour tous les CPU : mpstat 1

Il est également possible d’afficher les infos d’un CPU particulier : mpstat -P 2 1

On y retrouve les informations essentielles :

  • Le CPU monitoré (ALL pour tous les CPU)
  • La consommation CPU user/system et iowait
  • Des compteurs concernant les “interrupts”

Un manque important je trouve par rapport à vmstat est l’absence d’information sur la file d’attente processeur (colonnes r et b de vmstat).
Bref, rien de révolutionnaire mais un outil pouvant être utile pour du monitoring, notamment pour sa fonctionnalité permettant d’avoir les infos d’un processeur particulier.

Je vous laisse tester par vous même et me dire si vous avez l’intention de l’adopter…

Categories: Admin, MySQL, Oracle