Question

Pour un nettoyage de chute peu, je me déplace 25 tables entre les bases de données MySQL (différentes pièces de matériel). Ce n'est pas la base de données complète, à seulement 25 tables sur quelques centaines ... Ces tableaux ne je ne pas vraiment appartiennent là-bas, pourquoi aller dans pour des raisons NDA.

Maintenant, cela va briser beaucoup de code et les requêtes SQL.

Quelle est la meilleure façon de s'y prendre pour le faire?

  1. Déplacez partout à la fois.

  2. les déplacer sur 1 par 1

-

Les déplacer sur tout à la fois, est plutôt agréable. Peut-être quelques pannes et le code cassé que j'ai manqué, mais les déplacer comme un bloc est beaucoup plus rapide, moins de temps passé dans le code poussant.

Les déplacer sur un par un est plutôt agréable, moins de chance de gros trucs de rupture, mais beaucoup plus de temps sera consacré microgestion le travail, le travail redondant et le déploiement.

moi Est-il possible de mettre en miroir les tables entre deux bases de données pendant un certain temps? peut-être une table fédérée?

-

Infos Divers: Il y a 25 tables sont tous liés les uns aux autres par le contenu.

Je ne peux pas arrêter les bases de données pendant des heures à la fois, environ 5 minutes d'arrêt serait acceptable.

-

Quelle est la meilleure façon de s'y prendre pour déplacer toutes ces données et en gardant le code, sql et moi en grande forme?

Suis-je les tableaux comme fédérer une façon de reproduire les tableaux à une nouvelle base de données?

-Daniel

Était-ce utile?

La solution

Il semble que les déplacer sur un à la fois serait la voie à suivre. De cette façon, vous avez un tas de petits problèmes faciles au lieu d'un gros problème difficile. J'espère que vous avez votre système sous beaucoup de tests automatisés pour vous assurer que tout cela ne se casse pas traînant quoi que ce soit.

Une autre chose: vous parlez de la fermeture de la base de données. Si vous effectuez des changements dans un environnement de développement et seulement faire les changements en direct quand vous êtes fonctionne que tout, pourquoi auriez-vous besoin d'avoir un temps d'arrêt dans la production? J'espère que vous ne pensez pas à faire ces changements dans la production sans le faire dans le développement d'abord.

Autres conseils

Vous pouvez utiliser SQLYog (mysql extrémité avant) pour le faire.

Option Meny est électroportatifs -> Base de données assistant de synchronisation

Vous devez être en mesure d'ouvrir à distance à la fois la base de données (% hôte doit être là)

Été là, fait cela, et en fait au milieu d'un projet similaire en ce moment. Avec nos projets, nous avons hérité d'un peu que nous ne savons pas ce qu'ils sont ou où tout est, mais voici le flux général:

  • sur le nouveau serveur, mis en place des comptes appropriés
  • Trouvez où changer le serveur et nom d'utilisateur / mot de passe si config nécessaire dans l'application
  • Arrêter l'application web donc il n'y a pas de déplacement en écriture
  • Déplacer la DB
  • Reconfigurer l'application
  • Le feu back up
  • Répétez l'opération pour chaque DB / application

Pour les petites choses, cela ne prend que quelques secondes. SQLyog est une grande aide ici. Si vous avez des grandes bases de données ou que vous décidez de ne pas les temps d'arrêt, alors vous devez considérer la réplication.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top