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

MySQL Discussion :

Synchronisation entre une BD locale et distante


Sujet :

MySQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Synchronisation entre une BD locale et distante
    Bonjour;
    Je viens de faire une application gestion des stock ; maintenant je veux séparer mon travail en deux une partie qui soit sur le web et l'autre sur le serveur interne.mais la parti externe dépend de la partie interne dont on saisi les données.le problème maintenant est que comment synchroniser les deux bases?(les deux base ont les mêmes champs et les mêmes table et..) de telle sorte que si la connexion internet ne marche pas , j effectue mes MAJ en local et a la prmiere conenxion , les MAJ seront faites dans la BD distante.
    Merci de me proposer une piste à suivre.

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut abbes10.

    Donc ton problème est comment mettre à jour une base de données distante, sachant qu'en local tu as la dernière version.
    Déjà, transférer en totalité la base de données n'est pas ce qu'il y a de plus pertinent comme solution. Et ensuite, c'est la périodicité de cette mise à jour.
    Dans les grands comptes bancaires, cela se fait 1 fois par jour, de préférence la nuit car c'est durant ce moment où l'on perturbe le moins les clients.
    La raison est que le basculement ne prend pas quelques secondes mais plusieurs minutes.

    Comment faire ? Le mieux est de créer un fichier delta (comprendre un fichier de différence) entre la dernière version et l'avant-dernière version.
    Cela va se traduire par trois types d'enregistrements :
    --> une création.
    --> une suppression.
    --> une mise à jour.
    De ce fichier delta, il en résulte alors une volumétrie bien moins importante.
    Donc quand vous transférez le fichier delta, le temps de cette opération sera bien plus court que si l'on faisait la même opération avec la totalité de la base.
    De plus, lors de cette opération, vous devrez être le seul à faire des opérations sur la base de données.
    Il se peut que votre site soit totalement indisponible durant cette opération.
    Plus il y a de mises à jour durant la journée, et moins le temps de blocage sera long.
    Voila pour le principe !

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bonsoir les gars , pour CinePhil j vai jetter un coup d'oeil a la replication
    pour Artemus24 , le fichier delta tu veux dire un script php ???
    Et merci pour vos reponses

  5. #5
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut abbes10.

    Non. Ce n'est pas un script php, mais la différence en terme de lignes, entre la dernière et l'avant dernière version de ta base de données.
    Autrement dit, c'est ce que tu dois appliquer à ta base de données distante pour obtenir ta base de données local.

    De toute façon, dans les deux cas, tu dois envoyer un script ".sql" vers la base de données distantes.
    Autant ne pas tout recréer mais juste appliquer les changements.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Merciii bcp jvai voir ce que je peux faire !

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    Salut Artemus24.

    la différence en terme de lignes, entre la dernière et l'avant dernière version de ta base de données.
    Autrement dit, c'est ce que tu dois appliquer à ta base de données distante pour obtenir ta base de données local.
    je trouve la solution que tu proposes très intéressante, peux-tu m'expliquer davantage comment procéder ? je n'ai aucune idée sur ces fichiers !


    @+

  8. #8
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut enigmma.

    Je nomme cela un fichier delta, pour signifier les différences à appliquer.
    Ces différences sont des créations, des suppression et des mises à jour, en terme de lignes dans les différentes tables où cela doit se faire.

    Jadis, je faisais cela en ayant la sauvegarde de la base de données de la veille.
    Aujourd'hui, on peut faire cela en utilisant les déclencheur (trigger). Comment ?
    En spécifiant pour chaque déclencheur les informations que l'on doit stocker dans une table destinée à créer le fichier delta.
    La table en question peut se nommer delta.
    Il y aura trois types de lignes, qui sont création, suppression et modification.
    Les informations à traiter seront :
    --> le nom de la table
    --> l'identifiant qui est unique dans la table.
    --> le type d'opération (création, modification, suppression)
    --> les données.

    Pour constituer le fichier delta, il suffit de mettre en forme celui-ci à partir de la table delta.
    Du coup, au lieu de transférer la base en totalité, on transfère que les différences du jour, si le traitement se fait chaque jour.

    C'est basique et ça fonctionne. Sinon, le mieux avec mysql est d'utiliser la réplication !

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  9. #9
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    Salut Artemus24.

    Merci pour les explications !
    C'est basique et ça fonctionne. Sinon, le mieux avec mysql est d'utiliser la réplication !
    j'ai déjà fait une réplication master/master, maintenant je veux explorer les différentes méthodes et celle-là du fichier m'interesse particulièrement!
    pourras-tu m'envoyer un exemple, ce n'est pas concrétement un fichier ?? ce sont plutôt des commandes SQL et pour une réplication master/master faut-il lancer des triggers dans les deux machines ?

    @+

  10. #10
    Candidat au Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2019
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Problème de synchronisation de base de données
    Bonjour, je suis débutante en développement et j'ai le même problème que le votre
    es que vous avez trouvez la solution.
    es c est possible de me expliquer comment vous avez fait pour le résoudre
    Merci

  11. #11
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut FZEHOUF.

    Votre problème est de savoir comment synchroniser deux bases de données.
    Si vous êtes débutante, cela ne va pas être simple à faire dans MySql.

    On nomme cela la réplication et vous devez définir quelle est la base de données MASTER et quelle est la base de données SLAVE.
    --> https://dev.mysql.com/doc/refman/8.0...plication.html

    Quelques exemples :
    --> http://www.clusterdb.com/mysql-clust...g-in-5-minutes
    --> https://examples.javacodegeeks.com/c...tion-tutorial/

    Le mieux est de faire par vous-même une recherche sur le net en utilisant les mots "replication," "master/slave".

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  12. #12
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonjour
    J'ai tenté d'accéder au lien : ce n'est pas possible 'Not found'.

    Pierre

  13. #13
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par pier.antoine Voir le message
    Bonjour
    J'ai tenté d'accéder au lien : ce n'est pas possible 'Not found'.

    Pierre
    En y accédant via les menus, voici l'URL directe : https://jgrondin.developpez.com/arti...ication-MySQL/
    Il y a un tiret au lieu d'un underscore entre Replication et MySQL.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Choix entre une base local ou la base distante
    Par bm10 dans le forum WinDev
    Réponses: 1
    Dernier message: 23/01/2015, 08h08
  2. Réponses: 4
    Dernier message: 20/01/2010, 11h40
  3. Comment lire(et modifier) la base de registres d'une machine locale(ou distante)?
    Par punto dans le forum Programmation et administration système
    Réponses: 0
    Dernier message: 22/11/2008, 16h00
  4. Réponses: 0
    Dernier message: 07/08/2008, 17h43
  5. Synchronisation entre une base locale et distante
    Par gege87270 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 09/11/2007, 14h04

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