IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration MySQL Discussion :

Replication Asynchrone MySQL 4.1 (Master) et 5.0 (Slave)


Sujet :

Administration MySQL

  1. #1
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 426
    Points : 24 790
    Points
    24 790
    Par défaut Replication Asynchrone MySQL 4.1 (Master) et 5.0 (Slave)
    J'ai une problématique un peu spécial !

    Nous avons actuellement toutes les nuits des opérations d'Export et d'Import de Données entre les "Sites" et le Serveur "Appli Web"
    Et Cela plombe nos Serveurs. Trop de Données circulent !

    En fait pour chaque besoin, il y a des Exports de Données, mais ces données sont parfois les mêmes, on aimerait regrouper le tout d'un export global, les Appli Web ferait le tri (ne prendrait que ce qu'elles ont besoin)
    Pour le Moment, je n'aborde que problématique Sites -> Server, mais l'autre sens existe aussi !


    Contraintes
    * Sites
    ... Windows
    ... EasyPHP 1.8, MySQL 4.1.9 - Il n'est pas prévu de changer de version
    ... 60 Sites = 60 Serveur MySQL
    ... Non Accesible depuis l'Extérieur

    * Serveur "Appli Web"
    ... Linux
    ... MySQL 5.0
    ... 60 Bases = une pour chaque site !
    ... Non Accessible depuis l'Extérieur (sauf SSH mais le Directeur ne veut pas que l'on fasse de Tunnel, un petit coup de paranoïa)

    Attention, cela serait une réplication asynchrone entre 21h et 6h.

    L'Objectif serait d'extraire le Journal Binaire (ça c'est bon, j'ai mis log-bin dans le fichier ini de MySQL de EasyPHP, cela enregistre mes requêtes), d'envoyer ce Log Binaire vers le Serveur !

    Mais on voudrait réduire les Flux !
    Donc au lieu d'exporter tout le Log Binaire, j'aimerais n'exporter que le log de certaines tables (j'ai vu --replicate-do-table sur l'Esclave, mais je ne vais pas transférer le log de 100 tables pour récupérer le contenu de 5)

    J'ai vue que l'on peut accéder au log via SHOW BINLOG EVENTS, je pourrais bidouiller un système qui envoie les requêtes de certaines tables (en parsant le SQL) via un WebService qui les executerait sur le Slave, avec gestion des erreurs évidemment
    Comme j'ai un temps limité de travail (21h à 6h), imaginons, qu'il n'est pas fini la replication à 6h, il faudra gérer un curseur pour reprendre le lendemain la lecture du log à l'endroit où l'on était la veille ... Uzinagaz en prévision !

    Pour information, c'est la même problématique "Utiliser Talend pour Replication entre Bases Hérétorgènes" à la différence que l'on aurait des Bases Homogènes, forcément en replication, et qu'il y aurait une transformation dans un second temps ...

    J'ai besoin de votre avis pour mettre en place cette replication SANS utiliser trop de bidouilles ou de truc maison
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 426
    Points : 24 790
    Points
    24 790
    Par défaut
    Problème !

    Comment gérer manuellement les LOAD DATA INFILE fait sur le Master ?
    Cela contient bien le fichier dans le binaire mais SHOW BINLOG EVENTS ne le fournit pas

    Je regarder "mysqlbinlog" et je n'arrive pas non plus à récupérer le contenu du fichier ! Dommage !

    Est-ce que quelqu'un sait comment réduire le log binaire à un nombre de table restreinte sur le Master et non via les contraintes de l'Esclave ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 390
    Points : 465
    Points
    465
    Par défaut
    salut

    il faut interdire/autoriser mysql à ecrire les tables que tu veux dans le fichier binaire grace à binlog-do-db ou binlog-ignore-db


    plus d'info ici http://dev.mysql.com/doc/refman/5.0/fr/binary-log.html
    La connaissance s'accroit lorsqu'on la partage.

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 426
    Points : 24 790
    Points
    24 790
    Par défaut
    Effectivement, même en MySQL 4.1, binlog-do-db existe !
    Mais comme je n'ai qu'une DB sur les Master, ce n'était pas le problème !
    J'ai besoin de limiter à une liste de table (5 parmis 100)

    Mais je ne trouve pas un "binlog-do-table" qui fonctionnerait comme "replicate-do-table" mais du côté Master 4.1 et non Slave 5.0

    C'est fonctionnalité est réclamée mais n'existe pas encore !


    Sinon, hier, j'ai refait des tests avec "mysqlbinlog" et les LOAD DATA INFILE, cela fonctionne parfaitement, j'avais mal écrit la ligne de commande
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 390
    Points : 465
    Points
    465
    Par défaut
    oups pardon j'avais pas vu que la granularité voulu était la table.

    Il y a une autre technique pour limiter la taille du fichier binaire c'est de faire un pont filtrant mysql grace au multi_instance et au moteur blackhole.

    comme décrit ici http://www.mysqlperformanceblog.com/...l-replication/.


    a plus
    La connaissance s'accroit lorsqu'on la partage.

Discussions similaires

  1. master replication sur mysql 2003 server
    Par zeckis dans le forum Administration
    Réponses: 0
    Dernier message: 06/02/2013, 13h49
  2. [MYSQL]Réplication: 1 master, 1 slave par base
    Par _$onic_ dans le forum Administration
    Réponses: 0
    Dernier message: 18/11/2008, 13h12
  3. Replication ACCESS /MySQL
    Par sigap dans le forum VBA Access
    Réponses: 0
    Dernier message: 21/05/2008, 18h52
  4. replication sous mysql
    Par allstar dans le forum SQL Procédural
    Réponses: 0
    Dernier message: 16/11/2007, 18h25
  5. Replication bases mysql
    Par VitoCorleone dans le forum Requêtes
    Réponses: 2
    Dernier message: 27/09/2006, 15h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo