Archive

Archive for the ‘Oracle’ Category

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

Flush Logs #10 : MySQL 5.6 second round !

October 4th, 2011 1 comment

La conférence Oracle Open World est désormais l’occasion pour Oracle de diffuser des infos sur les nouveautés à venir pour MySQL.
Et le moins que l’on puisse dire, c’est que ça bouge(ra) pas mal !

Il semblerait que la prochaine version 5.6 soit en bonne voie pour devenir GA prochainement, à vos marques…

C’est ainsi l’occasion de faire un petit récap des annonces les plus intéressantes concernant la version 5.6 (ça n’engage que moi et il n’y a pas d’ordre précis)  :

  • Optimisation de l’indexation et de la manière dont l’optimizer appréhende les index (Index Condition Pushdown)
  • Possibilité de tracer les “choix” réalisés par l’optimizer
  • Possibilité de faire des EXPLAIN de commandes DELETE, UPDATE et INSERT
  • Les vues “matérialisées” arrivent et ce sera valable pour les tables dérivées et les sous requêtes (et on pourra y mettre des index !)
  • La sauvegarde/restauration du cache InnoDB (buffer pool size) sera possible (déjà dispo avec Percona server)
  • Statistiques InnoDB persistantes !
  • Réplication multi threads (cool)
  • (Ajoutez les votres)

Sachez également que Oracle proposera prochainement (enfin !) de nouvelles certifications pour les DBA MySQL que nous sommes.

Si vous souhaitez aller plus loin, voici quelques liens utiles concernant les annonces faites hier à la OOW2011 :

N’hésitez pas à commenter concernant ces nouveautés et donner vos impressions et liens !

 

Categories: Flush Logs, MySQL, Oracle

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

Flush logs #5 : Semaine du 04/04/2011

April 8th, 2011 No comments
L’actualité MySQL et Oracle sélectionnée par MySQL+
Pour les news en temps réel, suivez-moi sur twitter

Vous pouvez également vous inscrire au flux RSS ou par email pour recevoir automatiquement une notification de publication des nouveaux articles

Il n’y a pas eu de flush logs la semaine dernière, je vais essayer de rattraper le temps perdu cette semaine :

Evénements à venir :

- Data recovery pour MySQL le 26 avril prochain : http://www.mysqlperformanceblog.com/2011/04/06/upcoming-webinar-on-data-recovery-for-mysql/

- Meetup SkySQL avec LeMuG le 20 avril, venez nombreux, ambiance décontracté assurée : http://www.lemug.fr/2011/20-avril-2011-invitation-meetup-skysql/

Outils :

- propose un outil permettant de sniffer l’interface réseau pour déceler les requêtes longues : MySlowTranCapture

- L’outil Readahead permettant d’ajouter un starter à vos slaves MySQL est passé en version 1.2

- XtraBackup Manager évolue rapidement, vivement, vivement…

- Un outil simple de requêtage SQL : http://karlssonondatabases.blogspot.com/2011/04/myquery-342-available.html

News MySQL :

- La version 5.5.11 communautaire est en ligne, correction de bugs uniquement : http://dev.mysql.com/doc/refman/5.5/en/news-5-5-11.html

- Percona Server et XtraBackup sont dispos pour Sun Solaris

- Un excellent post très détaillé de Shinguz sur l’implémentation d’un cluster actif/passif via DRBD avec MySQL (mais ça fonctionne également avec Oracle, Postgress, Apache…)

- A quoi sert SQL_NO_CACHE ? Stéphane y répond sur dbnewz. Une idée m’est venue en lisant cet article et j’en ai fait un post à mon tour

- La requête la moins couteuse est celle que vous ne lancez pas ! Pour les autres, utilisez des caches : http://www.mysqlperformanceblog.com/2011/04/04/mysql-caching-methods-and-tips/

- Une excellente requête proposée par Shlomi Noach pour vérifier que vos colonnes auto incrémentées n’arrivent pas à leurs limites. Mis en place ce jour dans mon monitoring.

- Si vous utilisez vos serveurs slaves pour faire vos backups, assurez-vous que vos schémas et données sont synchrones

- Un tuto complet pour installer MySQL sur Ubuntu à partir du code source : http://blog.arkzoyd.com/2011/04/installer-mysql-sur-ubuntu-partir-des.html

- C’est quoi Memcached ? (J’aimerai bien m’y frotter rapidement à ça tiens !)

-  MySQL Fanboy propose une liste complète des moteurs de stockage alternatifs pour MySQL

- J’ai recommandé ça des dizaines de fois à mes clients, monter le tmpdir sur un disque RAM (Attention, il me semble que la gestion des I/Os asynchrones de la 5.5 peut poser problème avec cette pratique)

News Oracle :

-  La nouvelle de la semaine dernière : Oracle laisse tomber les plateformes Itanium (Et ce n’était pas un poisson d’avril !)

- Une investigation sur le Dynamic Remastering avec le RAC 11g

- Oracle est parfois plus intelligent que les idées reçues veulent bien le dire !

Pour proposer vos liens : cedric@mysqlplus.fr

Bon week-end !

Categories: Flush Logs, MySQL, Oracle

Tour d’horizon des offres de support MySQL en 2011, épisode 2 : SkySQL

March 28th, 2011 No comments

Seconde partie de ce tour d’horizon des offres de support MySQL, après les offres proposées par Oracle, je passe ici aux offres proposées par SkySQL.

Retrouvez le premier épisode ici : http://www.mysqlplus.fr/2011/03/tour-dhorizon-des-offres-de-support-mysql-en-2011/

La société :

SkySQL AB se veut l’héritière de MySQL AB et c’est l’alternative la plus populaire en ce moment en ce qui concerne les offres de support MySQL.
Créée par Monty Widenius et David Axmark (créateurs de MySQL en 1995) en novembre dernier, SkySQL est déjà présente dans 13 pays à travers le monde et compte de nombreux partenaires et investisseurs, notamment OnCorps, un groupe d’investissement américain mais également les employés eux-mêmes !

SkySQL a construit un modèle commercial, notamment autour du support de MySQL, en souhaitant préserver les valeurs de l’open source et offrir une alternative viable au support fourni par l’éditeur.

Je vous laisse découvrir la présentation officielle de SkySQL pour en savoir plus : View this web seminar >>

Le service :

Je tiens avant tout à préciser que l’on parle ici de service, pas de produit !
J’entends souvent cette même question concernant le support fourni par des tiers : Mais je vais devoir ré-installer tous mes serveurs ?!

Non, SkySQL supporte la version communautaire de MySQL fournie par Oracle, si vous avez un support chez Oracle et que vous passez chez SkySQL, vous n’avez pas à ré-installer tous vos serveurs avec une version livrée par SkySQL, c’est simplement vos interlocuteurs qui changent pour le support.

L’offre de service proposée par SkySQL se nomme SkySQL Enterprise et s’approche de ce que l’on connaissait avec les offres de MySQL.
On nous propose ici 4 niveaux de suppot : Basic, Silver, Platinium et Unlimited

SkySQL supporte la version communautaire de MySQL comme indiqué plus haut mais également mariaDB et DRBD.
Memcache, Infobright, InfiniDB, Pentaho et Talend sont également pris en charge par le support SkySQL.

Ces différents niveaux de support se différencient par des options, outils, nombre de tickets ou l’accès au support téléphonique.
Je vous laisse découvrir toutes les options disponibles sur le site de SkySQL : http://www.skysql.com/en/products/skysql-enterprise-features

Pour ce service, SkySQL est associée à deux partenaires principaux, Monty Program et Webyog. Le premier fourni le support de niveau 3 de façon transparente pour le client qui ne s’adresse qu’à SkySQL et le second fourni les outils de monitoring.

Les outils :

Deux outils sont proposés avec l’offre de support : SkySQL visual editor et SkySQL entrerprise monitor
Ce dernier n’est disponible qu’à partir de la version platinium du support.

L’outil de monitoring apporte tout ce dont vous aurez besoin pour assurer le contrôle de vos bases de données MySQL, c’est un outil complet en terme de fonctionnalités mais qui manque, à mon avis, d’une interface plus intuitive.

Ce que j’aime dans cet outil, c’est le choix, par exemple, de pouvoir choisir entre le log des requêtes lentes, le log général, le monitoring du processlist ou l’intégration de MySQL Proxy pour tracer les requêtes. On retrouve également un système d’alerte à tous les niveaux, pour les compteurs, le log d’erreur ou simplement lorsque l’instance est indisponible ou redémarre.

La volumétrie des bases et des tables peut être visualisée directement depuis l’interface ainsi que la trace du processlist que l’on peut comparer entre plusieurs serveurs. Cette vue comparative est d’ailleurs proposée pour quasiment tous les visuels de l’interface, ce qui permet d’avoir une vision globale de plusieurs serveurs sur la même page.

Il n’y a pas d’agent à installer sur vos serveurs, l’outil se connecte directement à vos bases à travers une session qui peut être sécurisée via un tunnel SSH.
Autre point fort, l’installation et les mises à jour sont très simples.

Ce que j’aime moins, c’est l’interface peu intuitive mais surtout le dashboard difficile à personnaliser. C’est une interface dans laquelle on ne navigue pas via des graphes, on accède d’abord aux compteurs avec lesquels on peut construire des graphes (exportables en CSV).

Bon, c’est évidemment une question d’habitude et je suis surtout habitué à l’outil d’Oracle. Ici, la philosophie est différente mais les fonctionnalités vont au delà de ce que propose Oracle avec son outil de monitoring et je pense que le partenariat avec SkySQL apportera que du bon dans les mois à venir.

Pas d’outil de sauvegarde proposé par SkySQL mais l’on peut se consoler avec XtraBackup qui offre des fonctionnalités de sauvegardes physiques à chaud en mode open source.

Les tarifs :

Les prix publics sont les suivants :

  • Basic : 400€ / an / serveur : 2 incidents sans support téléphonique
  • Silver : 1200€ / an / serveur : Incidents illimités et accès au support téléphonique en heure ouvrées
  • Platinium : 3000€ / an / serveur : Incidents illimités et accès au support téléphonique 24×7 + appels d’urgence en 30mins + SkySQL entrerprise monitor
  • Unlimited : à partir de 28000€ / an pour un nombre illimité de serveurs + Platinium + interventions sur site pour un état de santé de votre architecture

Offre de support SkySQL : http://www.skysql.com/en/products/skysql-enterprise-features

Rendez-vous dans les prochains épisodes pour découvrir les offres de fromdual, Pythian et Percona..
N’héstez à apporter votre propre expérience dans les commentaires.

Categories: Admin, MySQL, Oracle

Flush logs #4 : Semaine du 21/03/2011

March 25th, 2011 No comments
L’actualité MySQL et Oracle sélectionnée par MySQL+
Pour les news en temps réel, suivez-moi sur twitter

Vous pouvez également vous inscrire au flux RSS ou par email pour recevoir automatiquement une notification de publication des nouveaux articles

- Je commence avec une vidéo de la conférence PHP UK dans laquelle Morgan Tocker présente le moteur InnoDB :

The InnoDB Storage Engine for MySQL – Morgan Tocker from PHP UK Conference on Vimeo.

- 4 solutions proposées pour réinitialiser le mot de passe de l’utilisateur root, le plus simple étant évidemment de ne pas l’oublier ! Ca permet également de s’apercevoir de la vulnérabilité et faire en sorte de la protéger. Les trois premiers tips sont proposés par Darren Cassar et un 4ème par Shlomi Noach

- Un livre blanc de Percona sur les causes des défaillance de production avec MySQL, les chiffres sont intéressants

- 15 outils (et un peu plus, voir les commentaires) pour l’administration de vos bases de données MySQL : http://www.hotscripts.com/blog/15-mysql-database-administration-tools/

- Qui veut tester SQLStat, un plugin permettant de stocker les ordres SQL lancés sur un instance MySQL pour analyse ? Compatible 5.5 uniquement, la version 1.3 vient de sortir !

- Oracle solaris cluster 3.3 est disponible, avec notamment, un agent MySQL Cluster !

- Un article de Justin Swanhart sur les vues matérialisées sous MySQL via Flexviews

- Enfin, un petit hack permettant de changer le type d’une colonne en modifiant directement le fichier FRM, très utile pour les grosses tables : http://www.facebook.com/note.php?note_id=10150115679045933

Pour proposer vos liens : cedric@mysqlplus.fr

Darren CassarDarren CassarDarren Cassar
Categories: Flush Logs, MySQL, Oracle

Sauvegarde à froid avec RMAN, pas si simple !

March 24th, 2011 No comments
La section “Live !” de MySQL+ vous permet de suivre l’évolution de tests ou de recherches sur un sujet précis.
Le but de cette section et d’avoir une participation si possible active pour faire avancer les choses et ainsi proposer un article évolutif et complet.
Merci, donc, pour votre participation dans les commentaires !

[ Dernière mise à jour : 20/04/2011 ]

Mon problème ici se situe au niveau de la sauvegarde à froid avec RMAN mais surtout de la restauration !
Le processus d’archivelog n’est pas activé pour cette instance, c’est pourquoi il a été convenu de faire un backup à froid via RMAN.
Il n’y a pas de catalogue RMAN, les informations sont stockées dans les fichiers de contrôle. Il n’y a pas non plus d’autobackup des fichiers de contrôle.

Le script rman permettant de réaliser la sauvegarde est le suivant :

run
{
 shutdown immediate;
 startup mount;
 allocate Channel C1 type disk FORMAT '/opt/oracle/admin/backup/ora_df%t_s%s_s%p';
 allocate Channel C2 type disk FORMAT '/opt/oracle/admin/backup/ora_df%t_s%s_s%p';
 allocate Channel C3 type disk FORMAT '/opt/oracle/admin/backup/ora_df%t_s%s_s%p';
 allocate Channel C4 type disk FORMAT '/opt/oracle/admin/backup/ora_df%t_s%s_s%p';
 backup
 format '/opt/oracle/admin/backup/dly_%d_%s_%p_%T_%t_dbf'
 tag 'Daily_Full_db_Backup_<ID_UNIQUE>'
 (database include current controlfile) ;
 crosscheck backup;
 DELETE expired backup;
 shutdown immediate;
 startup;
}

J’usqu’ici, tout va bien, la sauvegarde ne pose pas de problème, passons à la restauration.
Dans un premier temps, je vais simplement faire une restauration du dernier backup.

Etape unique : Restauration du dernier backup :

Les ordres suivants sont à passer dans rman :

  • startup nomount force;
  • set DBID [DBID de votre instance]
  • run {
    alter database mount;
    restore database;
    }

Puis, dans sqlplus :

  • recover database until cancel;
  • Puis taper CANCEL, il n’y a pas d’archivelog je vous le rappelle !
  • alter database open resetlogs;

La restauration se passe normalement sans problème à ce niveau.
Je refais donc un nouveau jeu de 2 backups consécutifs, entre les deux, je mets à jour une table pour vérifier si la restauration est ok.

Le but à présent est de restaurer l’avant dernier backup puis le dernier backup. Et c’est là que les choses se compliquent.

Etape 1 : Restauration de l’avant dernier backup :

Je passe les ordres suivants dans rman :

  • startup nomount force;
  • set DBID [DBID de votre instance]
  • run {
    alter database mount;
    SET UNTIL SCN = [SCN de l'avant dernier backup]
    restore database;
    }

Puis, dans sqlplus :

  • recover database until cancel;
  • Puis taper CANCEL, il n’y a pas d’archivelog je vous le rappelle !
  • alter database open resetlogs;

C’est maintenant que les choses se compliquent, la restauration de l’avant dernier backup est ok, je veux à présent restaurer le dernier backup.

Etape 2 : Restauration du dernier backup :

Ici se pose un problème, mes fichiers de contrôle ont été restaurés à l’étape précédente, il ne contiennent donc plus les informations de la dernière sauvegarde.

Les étapes de restautation dans ce cas particulier sont donc les suivantes dans rman :

  • startup nomount force;
  • Restauration du spfile depuis le backup (optionnel, à faire seulement si ce fichier a été perdu) : RESTORE SPFILE FROM ‘<bck_spfile>’;
  • Restauration des derniers fichiers de contrôle : RESTORE CONTROLFILE FROM ‘<bck_ctrl_files>’ ;
  • alter database mount;
  • Restauration du dernier backup : restore database from TAG=’<TAG_NAME>’ ou restore database until SCN=<SCN_NUMBER>
  • recover database noredo;
  • alter database open resetlogs;

N’hésitez pas à partager votre expérience sur le sujet dans les commentaires pour faire évoluer cet article.

Categories: Live !, Oracle

Tour d’horizon des offres de support MySQL en 2011, épisode 1 : Oracle

March 21st, 2011 No comments

Vous n’êtes pas sans savoir que MySQL et Sun appartiennent désormais à Oracle.
Les offres de support proposés désormais par Oracle pour MySQL ont donc évolué et le rachat a également permis la multiplication d’offres de support alternatives à celle de l’éditeur.

Bonne nouvelle, donc, pour les clients ou futurs clients car la concurrence a souvent du bon, surtout lorsqu’elle se met en ordre de marche !

Je vous propose donc ici un tour d’horizon (non exhaustif) des différentes offres de support MySQL en plusieurs épisodes.
Je n’ai pas encore le recul suffisant pour vous donner mon avis personnel quant à la qualité de ces services, mais rendez-vous au dernier épisode pour avoir mon modeste sentiment vis à vis de la question que tout le monde se pose :

Quelle offre de support choisir pour MySQL ?

Ce qu’il faut comprendre du support Oracle pour MySQL

Je commence par le commencement, le support fourni par l’éditeur.
Je précise que contrairement à ce que l’on a pu lire lors de l’annonce de ces nouvelles offres de support par Oracle,  la version communautaire de MySQL est toujours proposée gratuitement au téléchargement : http://dev.mysql.com/downloads/mysql/
Nous parlons ici d’offres de support, pas de fonctionnalité du produit !

Le service :

Il y a maintenant deux niveaux de support identique à ce que l’on retrouve pour le support Oracle (pour ceux qui connaissent) :

  • Standard Edition
  • Enterprise Edition

Ces deux éditions comprennent Oracle premier support pour MySQL qui vous donne accès au support technique 24/24 et 7/7 pendant toute la durée de votre contrat, pour un nombre illimité de tickets ainsi que l’accès à une base de connaissance technique.

Ces offres vous donnent également accès à une version commerciale des binaires MySQL ainsi qu’à toutes les mises à jours associées.
La version Enterprise se différencie de la version standard par des options supplémentaires :
  • Support du partitionnement : Bien comprendre que la fonctionnalité de partitionnement est présente en version standard ou communautaire mais vous ne pourrez pas solliciter le support en cas de problème excepté si vous avez un niveau de support Enterprise
  • MySQL Enterprise Monitor : Outil de monitoring de bases de données
  • MySQL Enterprise Backup (anciennement InnoDB hot Backup) : Outil de backup physique à chaud

Il est à noter que depuis ces nouvelles offres, les produits tiers comme DRBD ne sont plus supportés.

Les outils :

En plus des binaires spécifiques, 3 outils sont proposés dans le cadre de la licence commerciale, MySQL Enterprise Monitor, MySQL Enterprise backup et MySQL Workbench. Attention, pour les deux premiers produits, ils ne sont disponibles qu’en version Enterprise.

Je reviens rapidement sur la version commerciale des binaires MySQL qui vous permettra notamment d’avoir accès aux nouvelles versions plus rapidement qu’avec la version communautaire. Pour l’instant, en revanche, on retrouve exactement les mêmes fonctionnalités dans les versions commerciale et communautaire.

MySQL Enterprise monitor est, comme son nom l’indique, un outil de monitoring de vos bases de données MySQL.
Je ne rentre pas dans le détail des fonctionnalités qui restent classiques pour un tel outil : Advisors, alertes mail ou SNMP, dashboard, compteurs sous forme de graphes, état de la réplication…

Ce que j’aime dans cet outil, c’est son approche axée sur les graphes, c’est un outil très intuitif, l’esprit de simplicité qui caractérise MySQL existe aussi ici au niveau de l’interface.
La vision globale pour la réplication permet de garder un oeil sur l’état de toutes vos réplications en place, très utile !
Mais le vrai plus est à mon avis le Query Analyser permettant de travailler de façon optimale sur les requêtes consommatrices.

Ce que j’aime moins, c’est l’utilisation d’agents à installer sur chaque serveur, pour les mises à jour, si vous avez plus de 5 serveurs, ça commence à être un peu laborieux. De plus, certaines fonctionnalités manquent encore à mon sens : Analyse du log d’erreur, du log des requêtes lentes ou des paramètres des instances…
Mais ce qui me gène le plus est que la fonctionnalité que je trouve la plus séduisante est également la moins fiable. En effet, le Query Analyser est un outil intrusif qui s’appuie sur MySQL Proxy et ajoute un point de failure à votre architecture puisque les clients doivent forcement passer par le proxy pour que Query Analyzer puisse fonctionner.
J’ai moi même relevé au moins un bug empêchant l’utilisation sereine de ce produit en production. De plus, MySQL Proxy est pour l’instant toujours en version 0.8.1 alpha !

Ça reste malgré tout un excellent outil de monitoring pour MySQL.

MySQL Enterprise backup est un outil permettant de faire des sauvegardes physiques à chaud de vos bases de données, éventuellement compressées.
Rien de miraculeux ici, ne vous attendez pas à une interface graphique évoluée, il n’y en a pas, c’est un outil en ligne de commande à installer sur chacun de vos serveurs.
Attention également à la notion de sauvegarde à chaud qui permet effectivement de sauvegarder sans blocage de production mais uniquement si vous utilisez exclusivement le moteur InnoDB. Si vous avez des tables MyISAM, par exemple, un verrouillage global sera nécessaire pour réaliser la sauvegarde.
Il n’y a pas non plus de fonctionnalité d’encryption des backups.

Bref, on attend un gros effort de la part d’Oracle pour cet outil, notamment en ce qui concerne la centralisation des backups et la consolidation des informations sur les sauvegardes dans une interface graphique.

Cet outil a néanmoins le mérite d’exister dans l’offre de support car si vous connaissez un peu MySQL, vous savez qu’il n’existe pas des dizaines d’outils permettant de sauvegarder vos bases.
Sans être révolutionnaire, si vous êtes clients du support MySQL/Oracle, je ne peux que vous conseiller d’utiliser cet outil.

Je ne m’attarde pas sur MySQL Workbench qui est un outil tout en un d’administration, de conception et de développement. Je vous laisse vous faire votre avis puisqu’il est possible de télécharger une version communautaire de cet outil.

Les tarifs :

Les prix publics sont les suivants :
  • Standard : 1584€ / an pour 1 serveur équipé de 1 à 4 sockets physiques (de 1 à plusieurs cœurs par socket)
  • Standard : 3156€ / an pour 1 serveur équipé de 5 sockets ou plus
  • Enterprise : 3948€ / an pour 1 serveur équipé de 1 à 4 sockets physiques (de 1 à plusieurs cœurs par socket)
  • Enterprise : 7896€ / an pour 1 serveur équipé de 5 sockets ou plus

MySQL commercial licence : http://www.mysql.fr/products/
Oracle premier support : http://www.mysql.fr/support/

N’héstez à apporter votre propre expérience dans les commentaires et poursuivez votre lecture :


Categories: Admin, MySQL, Oracle

Flush logs #3 : Semaine du 14/03/2011

March 18th, 2011 No comments
L’actualité MySQL et Oracle sélectionnée par MySQL+
Pour les news en temps réel, suivez-moi sur twitter

Vous pouvez également vous inscrire au flux RSS ou par email pour recevoir automatiquement une notification de publication des nouveaux articles

Pas mal d’infos et de posts techniques cette semaine, passons à la revue du web :

- Sortie de la version 5.5.10 de MySQL, amélioration notable à mon sens, une meilleure visibilité pour l’erreur sort aborted : http://dev.mysql.com/doc/refman/5.5/en/news-5-5-10.html

- Un projet qui débute tout juste mais qui me parait très sympa, un manager pour xtrabackup, a suivre donc…

- présente un outil, finalisé celui-ci, permettant de transformer les update reçus sur un slave en select et de les jouer pour accélérer le traitement des ordres sur le slave (Version 1.1 dispo) : http://karlssonondatabases.blogspot.com/2011/03/want-to-accellerate-mysql-slave-here-is.html

- Un bench assez complet de la version 7 du cluster MySQL : http://www.clusterdb.com/mysql-cluster/mysql-cluster-database-7-performance-benchmark/

- Un petit howto simple et efficace pour débutant sur la mise en oeuvre de la réplication MySQL : http://www.ovaistariq.net/565/setting-up-master-slave-replication-with-mysql/

- Dans quels cas utiliser le partitionnement MySQL ? Un article parmi une série très bien faite sur le partitionnement

- Prenez rendez-vous le 29/03 pour ce web séminaire de Percona sur ce plugin à la mode : HandlerSocket

- Une astuce sur la copie des tables MyISAM : http://www.mysqldiary.com/if-you-copy-a-myisam-table-with-primary-key-don’t-forget-to-order-the-rows-first/

- Un bench de MySQL dans le cloud via Amazon RDS : http://www.mysqlperformanceblog.com/2011/03/15/mysql-on-amazon-rds-part-1-insert-performance/

- Les inscriptions pour le Oracle OpenWorld sont ouvertes : http://www.oracle.com/us/openworld/registration-173440.html

- Un très bon article sur Pythian blog concernant les tables temporaires MySQL, A rapprocher de celui-ci

C’est tout pour cette semaine, bonne lecture !

N’hésitez pas à proposer vos liens : cedric@mysqlplus.fr

Categories: Flush Logs, MySQL, Oracle

50 choses à savoir avant de migrer de Oracle vers MySQL

March 13th, 2011 1 comment

Il y a deux ans jour pour jour, Baron Schwartz publiait un billet sur les choses à savoir avant de migrer de Oracle vers MySQL.
A présent que Oracle et MySQL ne font plus qu’un, et ça je ne pense pas que Baron l’imaginait en 2009, la formule reste malgré tout d’actualité, plus encore qu’en 2009 à mon avis.

J’ai eu moi même à conseiller de nombreux clients sur la question en 2010 et il me semble que c’est une question d’autant plus légitime depuis qu’Oracle a acquis MySQL et ainsi donné des ailes à toute une communauté déjà lancée à pleine vitesse. Mais je reviendrai la dessus un peu plus tard.

Je vous propose donc dans ce billet, non seulement une traduction française du billet de Baron mais également une mise à niveau des informations données à l’époque par rapport aux dernières évolutions du moteur MySQL, ainsi que  mon modeste sentiment, en orange sur certains points.

Bonne lecture !

1 – Les sous requêtes sont à proscrire
2 – Les requêtes complexes  (nombreuses jointures par exemple) posent problème
3 –  L’optimiser est beaucoup moins évolué que celui d’Oracle
4 – Les compteurs de performance sont moindre. Depuis la version 5.5, la base performance_schema permet d’avoir accès à plus d’informations
5 –  Les audits sont limités et souvent plus difficiles à réaliser du fait du point 4
6 –  La notion de sécurité est extrêmement limitée. Je dirais que sur ce point, on voit à quel point MySQL est fait pour les applis web avec quelques utilisateurs base de données à gérer (le plus souvent, mes clients utilisaient le user root !). La gestion des utilisateurs devient très vite un cauchemar avec MySQL !
Il n’y a pas réellement de solution de cryptage de données dans MySQL. Celle qui existe oblige à modifier le code applicatif.
7 – Depuis la version 5.5, il est désormais possible d’avoir une authentification externe. Ce n’était pas le cas dans les versions précédentes
8 – Le cluster MySQL n’est pas ce que vous pensez ! (il faudrait un article entier pour expliquer ça…)
9 – Les procédure stockées et les triggers sont limités. Je dirais même qu’il ne faut tout simplement pas utiliser les triggers
10 – La flexibilité verticale (vertical scalability) est pauvre. Depuis la version 5.5, ou avec xtradb, ce n’est plus vrai
11 –  Les traitements massivement parallèles ne sont pas gérés. Depuis la version 5.5, ce n’est plus vrai à mon sens
12 –  MySQL ne sait pas gérer plus de 4 ou 8 coeurs. Ce n’est plus vrai en 5.1 (plugin InnoDB) ni en 5.5, mais attention, uniquement avec InnoDB
13 – Il n’y a pas de type spécifique pour les fractions de seconde
14 – Oubliez le PL/SQL, le langage MySQL est beaucoup plus limité
15 – Il n’y a pas de récupération des annulations
16 – Pas de snapshots
17 – Pas de database link mais un moteur de stockage appelé federated qui ne fait pas tout à fait la même chose et apparemment bugué (je n’ai pas eu l’occasion de le voir en prod celui là)
18 –  La vérification de l’intégrité des données est légère et les contraintes ne peuvent pas toujours être appliquées en fonction des moteurs de stockage
19 –  Il y a très peu de hints pour forcer l’optimiser à utiliser un plan d’exécution spécifique
20 – Il n’y a qu’un seul type de plan pour les jointure (nested-loop)
21 – La plupart des requêtes ne peuvent utiliser qu’un index par table
22 – Il n’y a pas d’index bitmap. Chaque moteur de stockage supporte différents type d’index, la plupart supporte les B-tree
23 – Il y a peu d’outils pour l’adminitration
24 – Il n’y a pas réellement d’environnement de développement intégré ni de debuger pour les procédures stockées, c’est à vous de tracer vos procédures
25 – Chaque table d’une base peut avoir un moteur de stockage différent (ce que je ne recommande pas)
26 – Chaque moteur de stockage peut avoir un comportement et des caractéristiques très différents. Par exemple, MyISAM est un moteur non transactionnel
27 – Les clés étrangères ne sont supportées que par le moteur InnoDB
28 – Le moteur par défaut est non transactionnel (MyISAM). Depuis la version 5.5, le moteur par défaut est InnoDB (transactionnel)
29 – InnoDB appartient à Oracle. Désormais, MySQL appartient à Oracle !
30 – Certains type de plan d’exécution sont supportés uniquement sur certains moteurs de stockage. Certain type de COUNT() s’exécutent instantanément sur certains moteurs et plus lentement sur d’autres. Avec MyISAM par exemple, le verrouillage table permet un stockage du nombre de lignes dans le fichier descripteur des tables
31 – Les plans d’exécution ne sont pas mis en cache globalement mais par session
32 – La recherche fulltext et les type de données GIS/Spatial ne sont disponibles que avec MyISAM (moteur non transactionnel)
33 – Il n’y a pas de contôle des ressources. Un simple utilisateur peut surcharger le serveur en mémoire ou en CPU !
34 – Il n’y a pas de fonctionnalité BI intérgée. Des moteurs spécifiques existent néanmoins pour cela, Infobright ou InfiniDB par exemple
35 – Il n’y a rien d’équivalent à Grid control
36 – Il n’y a rien qui ressemble à du RAC. Si vous vous demandez “comment puis-je avoir un RAC avec MySQL”, vous vous posez la mauvaise question
37 – Il n’y a pas de type utilisateur ou de domaines
38 – Le nombre de jointures par requête est limité à 61
39 – MySQL supporte un plus petit ensemble de la syntaxe SQL.
40 – Il n’y a pas de colonnes virtuelles (colonnes dont la valeur est calculée comme une expression)
41 – Vous ne pouvez pas créer un index à partir d’une expression, vous pouvez seulement indéxer des colonnes
42 – Il n’y a pas de vues matérialisés
43 – Les statistiques sur la distribution des données sont limitées (cardinalité et range). Il n’y a pas de réel contrôle de la mise à jour des statistiques
44 – Il n’y a pas de mécanisme intégré pour la promotion d’un esclave ou le failover (réplication)
45 – La réplication est asynchrone et à beaucoup de limitations. Par exemple, elle est mono-thread
46 – Bis : Le cluster MySQL n’est pas ce que vous pensez !
47 – Le dictionnaire de données (INFORMATION_SCHEMA) est limité et très lent (ce sont des vues non indexées). Interroger le dictionnaire peut provoquer, dans certains cas, une déffaillance sur un serveur déjà chargé
48 – Un ALTER TABLE verrouille toute la table (pas de mode online)
49 – Il n’y a pas de séquence mais des colonnes auto incrémentées beaucoup moins évoluées
50 – Les ordres DDL ne sont pas transactionnel et valident (commit) les transactions en cours

Pour ceux qui se demandent ce que sont les moteurs de stockage, vous trouverez ci-après le schéma de l’architecture MySQL :

Source : http://www.xaprb.com/blog/2009/03/13/50-things-to-know-before-migrating-oracle-to-mysql/

Categories: Admin, MySQL, Oracle