Synchronisez deux bases de données MySQL dans deux emplacements différents

19

J'ai deux bases de données MySQL identiques, l'une dans un serveur interne et l'autre dans un serveur d'hébergement Web. Je souhaite mettre à jour la base de données sur l'hôte Web chaque jour avec la base de données sur le serveur interne. Existe-t-il un moyen d'automatiser ce processus, comment puis-je le faire manuellement? Si je dois le faire manuellement, faut-il que j'obtienne un vidage SQL de la base de données sur le serveur interne, puis l'importe sur la base de données sur l'hôte Web? Quelqu'un peut-il me conseiller s'il vous plaît.

ry12
la source
Vous pouvez renvoyer la réponse existante publiée ici dans StackOverflow stackoverflow.com/questions/52583/…
Mahesh Patil
à propos de # 2 si je fais un vidage complet de l'interne et l'importe sur la production, cela écraserait la base de données en ligne, je veux dire que j'ai des acheteurs en ligne sur la base de données hébergée sur le Web et je veux migrer les achats de la base de données interne en direct, pouvez-vous s'il vous plaît clarifier BTW ce qui va arrive-t-il à des incréments automatiques entre deux s'ils réservaient tous les deux le même identifiant, ce sera un désordre!?
shareef

Réponses:

20

Vous avez quelques options:

  1. Configurez la réplication MySQL entre les serveurs. Votre serveur interne peut agir comme maître et le serveur hôte Web comme esclave. Toutes les mises à jour effectuées sur le maître seront immédiatement répliquées sur l'esclave (en supposant une connexion fonctionnelle). Ce sera probablement l'option la plus simple et la plus efficace à choisir. Pour utiliser la réplication, votre base de données interne doit être accessible sur le réseau à partir de l'hôte Web.

    Vous pouvez en savoir plus sur la réplication ici .

  2. Chaque jour, vous pouvez effectuer un vidage mysqld sur le serveur interne, télécharger le fichier de vidage sur l'hôte Web et importer les données. Comme il s'agit d'un vidage complet, si vous avez une très grande base de données, cela pourrait ne pas être possible. Si vous le souhaitez, cette procédure peut potentiellement être scriptée pour éviter d'avoir à le faire manuellement.

  3. Vous pouvez configurer la journalisation binaire sur le serveur interne. Vous pouvez ensuite envoyer les journaux binaires à l'hôte Web et les appliquer à la base de données, en lisant efficacement toutes les transactions qui se sont produites ce jour-là sur le serveur Web. En fait, c'est de toute façon ce qui se passe avec la réplication, donc vous iriez presque toujours avec la réplication configurée au lieu de cette option.

S'il n'y a pas de connexion entre les deux bases de données, prendre mysqldumps chaque jour sera le chemin le plus facile à prendre.

Matt Healy
la source
à propos de # 2 si je fais un vidage complet de l'interne et l'importe sur la production, cela écraserait la base de données en ligne, je veux dire que j'ai des acheteurs en ligne sur la base de données hébergée sur le Web et je veux migrer les achats de la base de données interne en direct, pouvez-vous s'il vous plaît clarifier BTW ce qui va arrive-t-il à des incréments automatiques entre deux s'ils réservaient tous les deux le même identifiant, ce sera un désordre!?
shareef
4

Vous pouvez également utiliser des options telles que symmetricDS qui peuvent aider à synchroniser deux bases de données. Avec cela, vous pourrez sélectionner les tables qui doivent être synchronisées de cette façon, vous pouvez économiser la bande passante Internet. Cela conviendrait également dans le scénario en cas de manque de connectivité entre deux sites.

Siva Karthikeyan
la source
2

Comment configurer la réplication de base de données avec MariaDB: https://www.techrepublic.com/article/how-to-set-up-database-replication-with-mariadb/

Dylan B
la source
1
Bienvenue sur DBA.SE. Nous apprécions votre contribution / participation. Cependant, la communauté attend une certaine qualité dans les réponses publiées. Veuillez lire l'article suivant: Comment puis-je écrire une bonne réponse? (Centre d'aide) Dans la section Répondre à la question, il y a une courte phrase qui se lit comme suit: Les liens vers des ressources externes sont encouragés, mais veuillez ajouter du contexte autour du lien afin que vos collègues utilisateurs aient une idée de ce qu'il est et pourquoi il est là
John aka hot2use
0

Vous pouvez utiliser Navicat . Il s'agit principalement d'un gestionnaire de base de données, mais il dispose de fonctionnalités de transfert et de synchronisation de données ainsi que d'un planificateur afin que vous puissiez automatiser. Ce n'est pas gratuit mais il y a un essai de 30 fonctions complètes.

Josh A.
la source