sql >> Database >  >> NoSQL >> MongoDB

Hoe MongoDB te schalen?

Als je schijf bijna leeg is, heb je natuurlijk een grotere schijf nodig.

Er zijn verschillende manieren om uw gegevens te migreren, het hangt echt af van het type uptime dat u nodig heeft. De eerste stappen zijn natuurlijk het bundelen van de machine en het maken van het nieuwe volume.

Deze tips gaan van gemakkelijk naar moeilijk.

Kun je de database enkele minuten volledig offline halen?

Zo ja, doe dit (migratie per kopie):

  1. Monteer nieuwe EBS op de server.
  2. Voorkom dat uw app verbinding maakt met Mongo.
  3. Sluit mongod af en wacht tot alles is geschreven (controleer de logs)
  4. Kopieer alle gegevensbestanden (en waarschijnlijk de logbestanden) naar het nieuwe EBS-volume.
  5. Terwijl het kopiëren plaatsvindt, werkt u uw mongod-startscript (of configuratiebestand) bij zodat het naar het nieuwe volume verwijst.
  6. Start mongod en controleer de verbinding
  7. Start je app opnieuw.

Kun je de database een paar minuten offline halen?

Zo ja, doe dit dan (slaven en schakelaar):

  1. Start een nieuwe instantie en koppel de nieuwe EBS op die server.
  2. Installeer / start mongod als een --slave die naar de huidige database wijst. (mogelijk moet u de huidige opnieuw starten als --master)
  3. De slaaf zal een nieuwe synchronisatie uitvoeren. Zodra de slave up-to-date is, voer je een "switch" uit (volgende stappen).
  4. Schrijven vanaf het systeem uitschakelen.
  5. Sluit het oorspronkelijke mongod-proces af.
  6. Herstart de "nieuwe" mongod als meester in plaats van als slaaf.
  7. Systeemschrijven opnieuw activeren, wijzend naar de nieuwe master.

Als de laatste drie stappen correct worden uitgevoerd, kunnen deze in minuten of zelfs seconden plaatsvinden.

Kunt u zich geen uitvaltijd veroorloven?

Zo ja, doe dit dan (master-master ):

  1. Start een nieuwe instantie en koppel de nieuwe EBS op die server.
  2. Installeer / start mongod als master en slave tegen de huidige database. (mogelijk moet de stroom opnieuw worden gestart als master, minimale uitvaltijd?)
  3. De nieuwe computer zou een nieuwe synchronisatie moeten uitvoeren.
  4. Zodra de nieuwe computer up-to-date is, zet u het systeem op de nieuwe server.

Ik weet dat het lijkt alsof deze laatste versie eigenlijk de beste is, maar het kan een beetje onvoorspelbaar zijn (vanaf dit schrijven). De reden is simpelweg dat ik eerlijk gezegd veel problemen heb gehad met "Master-Master"-replicatie, vooral als je niet met beide begint.

Als u van plan bent deze methode te gebruiken, raad ik u ten zeerste aan eerst een kleinere oefenrun te doen. Als hier iets bombardeert, kan Mongo eenvoudig al je gegevensbestanden wissen, wat tot gevolg heeft dat er meer dingen worden verwijderd.

Als je een goede versie hiervan hebt, plaats dan de commando's, ik zou het graag in actie willen zien.



  1. Aan de slag met Cloudera Data Platform Operational Database (COD)

  2. Hoe een Geojson-bestand naar MongoDB te importeren?

  3. Nieuwe waarden toevoegen aan bestaande mongo-array

  4. Redis-toetsenfunctie voor match met meerdere patronen