Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Administration
Administration Forum d'entraide sur l'administration de MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/02/2012, 15h30   #1
Membre régulier
 
Homme Romano Marsala
Étudiant
Inscription : novembre 2011
Messages : 70
Détails du profil
Informations personnelles :
Nom : Homme Romano Marsala
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant
Secteur : Distribution

Informations forums :
Inscription : novembre 2011
Messages : 70
Points : 83
Points : 83
Par défaut Synchronisation de Base de données

Bonjour,

Je vous explique en quelques mots la situation problème.

J'ai une base de données côté serveur en ligne.

Plusieurs bases de données locales sur des pc clients.

Les bases de données ont toutes la même structure, le but étant qu'un client peut ajouter des tuples en local et lors d'une synchronisation les données doivent être transférée sur le serveur, et inversément, si l'administrateur modifie les données du serveur, la synchronisation doit se faire sur le pc client.

Suivant les tables, la relation peut se faire dans le deux sens OU uniquement du serveur vers le client.

J'ai trouvé quelques liens permettant de syncrhoniser les bases de données, mais c'est principalement des articles mettant en avant le transfert dans un unique sens (avec un serveur et un esclave).

Y-a-t'il des requètes permettants l'automatisation de tout cela?

J'espère que la situation problème est claire...

Merci, toute aide est la bienvenue
Proxy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2012, 23h10   #2
Membre à l'essai
 
Homme
Inscription : février 2012
Messages : 17
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : février 2012
Messages : 17
Points : 23
Points : 23
MySQL ne permet la réplication qu'avec un seul maître (hormis avec de la réplication circulaire mais qui ne semble pas adaptée à ton cas). A mon avis, il va falloir développer la couche de synchronisation.
hello29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2012, 12h32   #3
Membre régulier
 
Homme Romano Marsala
Étudiant
Inscription : novembre 2011
Messages : 70
Détails du profil
Informations personnelles :
Nom : Homme Romano Marsala
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant
Secteur : Distribution

Informations forums :
Inscription : novembre 2011
Messages : 70
Points : 83
Points : 83
Merci...

Mais j'ai vu que la réplication est possible dans 2 sens (une fois un sens où le serveur est maître, et une fois dans l'autre sens où le client est maître)...

Mais si des modifications sont faites sur les 2 machines, on pourrait perdre des données.

Personne ici n'a déjà fait ce genre de synchronisation?
- Plusieurs clients (ici des commerciaux), qui travaillent en local, ajoutent ou modifie des tuples
- Un serveur (ici l'administration), qui travaille en ligne, ajoutent ou modifie des tuples.

--> Synchronisation qui permet de calculer les différences et de mettre le tout à jour sans perdre de données.

Il doit exister un outil ou quelque chose d'assez pratique pour automatiser tout ça, non?
Proxy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2012, 09h40   #4
Membre régulier
 
Homme Romano Marsala
Étudiant
Inscription : novembre 2011
Messages : 70
Détails du profil
Informations personnelles :
Nom : Homme Romano Marsala
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant
Secteur : Distribution

Informations forums :
Inscription : novembre 2011
Messages : 70
Points : 83
Points : 83
J'ai trouvé une solution, un peu comme l'a dit Hello29, j'ai fait la réplication dans le sens serveur vers client.

Pour les modificaitons du client vers le serveur, j'ai réalisé des requêtes sql.

Ce n'est pas encore très optimal, mais ça fonctionne plutôt bien.

Si ça peut aider quelqu'un, voici une explication un peu plus approfondie :

- Le client fait des ajouts ou des modifications en local sur son pc.
- Les données de ces tuples ajoutés/modifiés sont inscrites dans une nouvelle table avec soit un attribut de l'ancien ID, soit null(si nouveau)
- Requête d'ajout ou d'update de la base de données du serveur
- START SLAVE; sur le client, afin de lancer la réplication
- Voilà, la base de données sur le serveur est à jour et la base de données locale du client synchronisée avec le serveur.
Proxy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h34.


 
 
 
 
Partenaires

Hébergement Web