MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment faire évoluer MongoDB ?

Si vous manquez de disque, vous devez évidemment vous procurer un disque plus gros.

Il existe plusieurs façons de migrer vos données, cela dépend vraiment du type de disponibilité dont vous avez besoin. Les premières étapes consistent bien sûr à regrouper la machine et à créer le nouveau volume.

Ces conseils vont du plus simple au plus difficile.

Pouvez-vous mettre la base de données complètement hors ligne pendant plusieurs minutes ?

Si oui, faites ceci (migration par copie) :

  1. Montez le nouvel EBS sur le serveur.
  2. Empêchez votre application de se connecter à Mongo.
  3. Arrêtez mongod et attendez que tout soit écrit (vérifiez les journaux)
  4. Copiez tous les fichiers de données (et probablement les journaux) sur le nouveau volume EBS.
  5. Pendant la copie, mettez à jour votre script de démarrage mongod (ou fichier de configuration) pour qu'il pointe vers le nouveau volume.
  6. Démarrez mongod et vérifiez la connexion
  7. Redémarrez votre application.

Pouvez-vous mettre la base de données hors ligne pendant quelques minutes ?

Si oui, faites ceci (asservissement et interrupteur):

  1. Démarrez une nouvelle instance et montez le nouvel EBS sur ce serveur.
  2. Installer/démarrer mongod en tant que --slave pointant vers la base de données actuelle. (vous devrez peut-être redémarrer le courant en tant que --master)
  3. L'esclave effectuera une nouvelle synchronisation. Une fois l'esclave mis à jour, vous effectuerez un "switch" (étapes suivantes).
  4. Désactivez les écritures depuis le système.
  5. Arrêtez le processus mongod d'origine.
  6. Redémarrez le "nouveau" mongod en tant que maître au lieu d'esclave.
  7. Réactiver les écritures système pointant vers le nouveau maître.

Effectuées correctement, ces trois dernières étapes peuvent se dérouler en quelques minutes, voire secondes.

Pouvez-vous ne pas vous permettre de temps d'arrêt ?

Si oui, faites ceci (maître-maître ):

  1. Démarrez une nouvelle instance et montez le nouvel EBS sur ce serveur.
  2. Installer/démarrer mongod en tant que maître et esclave par rapport à la base de données actuelle. (peut-être besoin de redémarrer le courant en tant que maître, temps d'arrêt minimal ?)
  3. Le nouvel ordinateur doit effectuer une nouvelle synchronisation.
  4. Une fois que le nouvel ordinateur est à jour, basculez le système pour qu'il pointe vers le nouveau serveur.

Je sais qu'il semble que cette dernière version soit en fait la meilleure, mais cela peut être un peu risqué (au moment d'écrire ces lignes). La raison est simplement que j'ai honnêtement eu beaucoup de problèmes avec la réplication "Maître-Maître", surtout si vous ne commencez pas avec les deux actifs.

Si vous envisagez d'utiliser cette méthode, je vous suggère fortement de commencer par une petite séance d'entraînement. Si quelque chose explose ici, Mongo pourrait simplement effacer tous vos fichiers de données, ce qui aura pour effet de supprimer davantage de données.

Si vous obtenez une bonne version de ceci, veuillez publier les commandes, j'aimerais le voir en action.