Bonjour à tous.
Je souhaites lancer un grosse migration dans le réseau mysql que j'administre.
Je ne cherche pas une solution toutes faites.
J'aimerais quelques conseils, astuces et des retours d'expérience sur plusieurs thèmes ou les situations rencontrées par chacun.
Etat des lieux :
- Réseau Mysql :
- 3 Poweredge de différents modèles, Bi Proc Quad Core, installés sur 2 sites géographiques différents (dits centre serveur), reliés via VPN (lien wan le plus petit 4m symétrique), manageant deux réplications circulaires avancés (offset serveur actif 0-9). Deux instances de mysql sont lancés sur des ports différents. L'os est Centos 5.3 32b ou Centos 4.7 32b, mysql 5.0.x. Les bases sont en MyIsam.
- L'un des anneaux de réplication est complexe. Des serveurs têtes de pont (également Centos,mysql 5.0.x ) sont utilisés sur des sites distant (dits de production); ceci afin de limiter la consomation de BP sur lien WAN . Chaque serveur tête de pont ont plusieurs esclaves sur site (sous Windows 32b). Une réplication sélective est effectué sur les postes windows pour limiter l'utilisation d'espace, car les postes n'ont pas besoin d'avoir les données de toutes les tables/bases.
- L'utilisation :
- plusieurs serveurs Apache/Php (local ou réseau) accède aux données des centres serveurs. Des appplications web (ajax) maison ou opensource. Je pense également upgrader les serveurs web de 32b à 64b.
- des serveurs sous linux accède aux données des centres serveurs et des serveurs têtes de pont via des applications "maisons" développés en C/Perl/python/Bash
- une application en C# accède aux données des postes windows.
- les données sont de types varchar, char, int, enum, date. Pas/Peu de float ou décimal dans les données "importantes".
Motivation :
- mise à jour d'architecture : vers 64.
- je souhaite upgrader les serveurs principaux pour des questions évidentes de rapidité et aussi d'adressage mémoire (4go max sous 32b). L'application web maison occasionne une forte charge autant au niveau du serveurs web que des serveurs de bases de données. Je n'ai pas réussi à trouver si une procédure spéciale est à effectué lors de tel changement.
- mise à jour de version : vers 5.1 pour linux. (La mise à jour vers 5.1 sous windows est déja faites.)
- pour suivre l'évolution de mysql et des fonctionnalités .
- Le partionement m'interresse énormément. Quelqu'un a t'il un retour d'expérence à faire sur cette fonctionnalité ?
- le row based replication m'interresse énormément. Vous comprenez pourquoi...
- Vu les temps incertains pour concernant mysql/sun/oracle quelqu'un connait il une date pour mysql 5.4 ? Je ne souhaiterais pas avoir à procéder à deux migrations mysql dans la même année.
- le blackhole engine m'interresse également pour pouvoir effectuer une réplication sélective au niveau du master (ndlr:et économiser des octect gniarff gniarff). Je dois donc prendre un package avec cet engine actif.
- je souhaite garder le système RPM pour des questions de flexibilité.
Marges de manoeuvre :
- J'évalue la durée du projet sur 3-4 mois. Les contraintes de production étant ce qu'elles sont. Le developpement compris avec un développeur (selon le langage) pas forcément toujours à plein temps.
- Il faut bien sur réutiliser les mêmes serveurs. Il faut donc que je réinstalle lors de l'upgrade de 32b à 64b. En insistant auprés de ma direction, je pense arriver à obtenir un ou deux serveurs de rechange/location le temps de l'install.
- les déplacements sur site seront autorisés/obligatoires mais avec parcimonie.
- j'ai pas de DRAC sur les serveurs.
- le jour J : je ne peux arréter la production pendant plus d'un gros week-end pour les grosses étapes.
- je ne veux pas avoir à compiler mysql, php, apache.
-J'ai vu certain post de personnes qui pour passer de 32b à 64b ont dumper au format sql dans un fichier, réinstaller puis réinjecter le tout dans le serveurs mysql. Je ne peux pas procéder comme ça.
Questions :
Pendant l'upgrade :
- La version de mysql installé sur les serveurs du ring et les serveurs tetes de pont n'est pas la même. Je pense procéder en deux étapes 1) réinstaller le serveurs en Centos 5.3 64b avec une version de mysql 5.0 64b unifié, 2) passer à mysql5.1 64b.
- Est ce que je dois coordonner mise à jour bdd et web ? Puis-je utiliser apache/php en 64b alors que mon serveur de
bdd est en 32b (ou inversement) ? Ou puis je utiliser un package 32b sur les web installé en 64; puis mettre à jour le package en 64b une fois l'upgrade vers 64b fait sur les bdd. Quelqu'un a déja connu cette situation ?
- Existe t'il une procédure particulière pour le passage de 32b en 64b. Pour des mises à jour de versions, j'ai toujours suivi la procédure standard (dump/yum/mysql_upgrade), mais je n'ai jamais eu besoin du dump sur les serveurs sous linux. A partir du moment où j'ai une base propre en un exemplaire sur chacun des sites, je pense dumpé cette version vers mes postes esclaves Windows.
Aprés l'upgrade :
- dois je m'attendre a des problèmes de stabilité de la réplication mysql. Puis-je utiliser un mix de version 32 et 64 bit dans les flux de fichier binaire de la réplication.
Merci pour vos retours, commentaires.
<----- Ne pas lire après ceci ----->
Aparté de fin pour me défouler : a mort php, vive xen. a quand le clonage..
Partager