Recopie/Mise-a-jour de DB Ã distance, automatiquement

Voila je vous expose un problème “très simple”…

  • Je dispose d’un serveur hebergé sur lequel tourne une base de donnée
    contenant plusieurs tables…

  • Je dispose également d’un autre serveur, cette fois-ci en local, avec
    une base de donnée contenant deux tables. Ces deux tables sont
    équivalentes à deux de celle hebergé sur le serveur plus haut…

La journée je travail sur le serveur local… je travail sur la base de
donnée et les deux tables qui sont dedans. Je souhaite que chaque nuit,
les modifications des tables de la BD locale soit repercutées sur celles
du serveur web distant… (cela implique, ajout/modification/suppression)

Comment cela est-il possible concretement ?

Merci :slight_smile:

Tu peux peut-�tre faire un parser du log pour r�cup�rer toutes les
requ�tes SQL fait sur ton server local et ainsi les effectuer dans le
m�me ordres sur ton server distant.

Un petit script devrait pouvoir �tre facilement cr�er en ruby pour
g�rer ce genre de probl�matique.

On 5/26/07, Guillaume MONTARD [email protected] wrote:


Posted via http://www.ruby-forum.com/.


Cyril M.

Bonjour,

Il y a 2 possibilités qui me viennent à l’esprit.

La base sur le serveur est juste une réplication pour consultation de la
base local, un simple dump de la base local puis aprés avoir envoyé la
base
sur le serveur distant, écraser l’ancienne base.

La base doit être synchronisé de maniére précise il faudrait créer une
table enregistrant tout les actions d’insert, update, delete. Cela peut
être
fait par rails ou par des triggers sur la base, ces commandes peuvent
être
extraites pour être envoyer sur le serveur distant. Ceci permetant que
des
modifications soit faites des 2 cotés mais un risque de synchronisation
existe.

Voila en espérant que ca aide.

Le 26/05/07, Cyril M. [email protected] a écrit :

Tout d’abord merci de vos propositions…

Quelques précisions,

je ne souhiate faire la MAJ que du sens serveur local -> serveur
distant…
en plus de cela une de mes tables contient un champs emplacement
vidéo, j’aimerais donc que lorsque je fait la Mise a jour sur le
serveur distant, il envoi aussi les fichiers contenu dans cet table
sur le serveur distant, au “même” endroit qu’il était sur le serveur
local (même arborescence en gros)…

Du coup je ne sois pas sur que le fait d’utiliser les requete ou de
faire un dump puisse marcher :confused:

Ne serait -il pas possible de faire comme si qqun physiquement recopié
les informations via un formulaire pour faire une nouvel entré dans la
base distante, mais qu’ici ce soit fait automatiquement par un script
sur le serveur local … ?

envisageable ?

merci

Tout est r�alisable. Mais bon, il faut le coder et c’est pas forcement
rapide.

Personnelement, je ferais plus un style rsync pour le fichiers et un
dump complet pour la BDD de ton distant sur ton local.

On 5/26/07, Differenthink [email protected] wrote:

sur le serveur distant, au “m�me” endroit qu’il �tait sur le serveur
envisageable ?

sur le serveur distant, �craser l’ancienne base.
Le 26/05/07, Cyril M. [email protected] a �crit :

On 5/26/07, Guillaume MONTARD [email protected] wrote:

La journ?e je travail sur le serveur local… je travail sur la base de


Cyril M.


Cyril M.

MySQL n’a pas une solution de synchronisation “built-in” ? Si c’est le
cas, ça reste la solution la moins coûteuse, a priori, à mettre en
place.

++

yk

Le 26/05/07, Guillaume MONTARD[email protected] a écrit :

Ok, mais “malheureusement” je dois conserver ce qui est sur le serveur
ce qui n’est pas modifié en local… et je n pourrais me permettre de
renvoyer tout les fichiers… sinon il y en aura pour 2 jours
trèsrapidement… a moins que rsync soit capable de faire une sorte de
diff, et n’envoyer que ce qu’y a changer donc… je suis sceptique

Pareil pour la BDD, je dois conserver ce qu’il y a, et ne rajouter ou
modifier que ce qui mérite de l’être en fonction de la BDD locale…

Car je vais travailler toujours la journée sur le local et devoir tout
envoyer a distance la nuit, ce n’est pas “histoire” d’une fois…
d’ou une solution qui soit perenne et automatique…
(Et non je ne peux travailler directement sur le distant, pour
d’obscur raison)

je vois donc que c’est pas évident, mais va vraiment falloir que je
trouve une solution :confused:

On 5/26/07, Differenthink [email protected] wrote:

Ok, mais “malheureusement” je dois conserver ce qui est sur le serveur
ce qui n’est pas modifi� en local… et je n pourrais me permettre de
renvoyer tout les fichiers… sinon il y en aura pour 2 jours tr�s
rapidement… a moins que rsync soit capable de faire une sorte de
diff, et n’envoyer que ce qu’y a changer donc… je suis sceptique

C’est le but de rsync, faire de la diff�rence incr�mentale pour ne
transf�rer sur le r�seau que les modifications et pas le tout.

je vois donc que c’est pas �vident, mais va vraiment falloir que je

Du coup je ne sois pas sur que le fait d’utiliser les requete ou de
une synchro via rsync voir subversion. Si tu ne souhaites pas
conserver quoi que ce soit sur la base distante, un sqldump fera
l’affaire. Sinon, tu risques de te compliquer encore plus la tete.
Derni�re chose, si tu utilise les bon scripts tu peux t’en sortir
avec un simple capistrano en faisant un dump et en rejouant le dump
lors du d�ploiement. Cela te limiterait a une seule commande pour
effectuer la synchro.


Cyril M.

Ok donc cela me parait une assez bonne solution… en esperant pouvoir
lui dire de ne transferer que les fichier avec tel extension… (car
je ne conserve pluse de chose en local que sur le serveur web)…

Et pour la BDD, sachant que je ne dois pas écraser à chaque fois celle
à distance mais juste la Mettre a jour, ajouter des champs etc… le
dump ne me parait pas la bonne solution…
a moins qu’il possede une solution de synchro comme dit plus haut
“built-in”… je vais me renseigner, au cas ou ou si vous avez d’autre
info, idées etC…

merci

Je viens je pense de trouver une très bonne solution concernant la
BDD :
http://www.webyog.com/en/sqlyog_data_sync.php

On May 26, 2007, at 11:44 AM, Differenthink wrote:

sur le serveur distant, au “même” endroit qu’il était sur le serveur
local (même arborescence en gros)…

Du coup je ne sois pas sur que le fait d’utiliser les requete ou de
faire un dump puisse marcher :confused:

Ne serait -il pas possible de faire comme si qqun physiquement recopié
les informations via un formulaire pour faire une nouvel entré dans la
base distante, mais qu’ici ce soit fait automatiquement par un script
sur le serveur local … ?

envisageable ?

Je pense que le plus simple dans ton cas, c’est de mettre en place
une synchro via rsync voir subversion. Si tu ne souhaites pas
conserver quoi que ce soit sur la base distante, un sqldump fera
l’affaire. Sinon, tu risques de te compliquer encore plus la tete.
Dernière chose, si tu utilise les bon scripts tu peux t’en sortir
avec un simple capistrano en faisant un dump et en rejouant le dump
lors du déploiement. Cela te limiterait a une seule commande pour
effectuer la synchro.