sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur skalar man MongoDB?

Om du får slut på disk behöver du uppenbarligen skaffa en större disk.

Det finns flera sätt att migrera din data, det beror verkligen på vilken typ av drifttid du behöver. De första stegen involverar naturligtvis att bunta ihop maskinen och skapa den nya volymen.

Dessa tips går från det enklaste till det svåraste.

Kan du ta databasen helt offline i flera minuter?

Om så är fallet, gör detta (migrering med kopia):

  1. Montera ny EBS på servern.
  2. Stoppa din app från att ansluta till Mongo.
  3. Stäng av mongod och vänta på att allt ska skrivas (kolla loggarna)
  4. Kopiera alla datafiler (och förmodligen loggarna) till den nya EBS-volymen.
  5. Medan kopieringen sker, uppdatera ditt mongod start-skript (eller konfigurationsfil) för att peka på den nya volymen.
  6. Starta mongod och kontrollera anslutningen
  7. Starta om appen.

Kan du ta databasen offline för bara några minuter?

Om så är fallet, gör detta (slavning och växla):

  1. Starta en ny instans och montera den nya EBS på den servern.
  2. Installera / starta mongod som en --slav som pekar på den aktuella databasen. (du kan behöva starta om strömmen som --master)
  3. Slaven kommer att göra en ny synkronisering. När slaven är uppdaterad gör du en "switch" (nästa steg).
  4. Stäng av skrivningar från systemet.
  5. Stäng av den ursprungliga mongod-processen.
  6. Starta om den "nya" monguden som mästare istället för slaven.
  7. Återaktivera systemskrivningar som pekar på den nya mastern.

Gjorda på rätt sätt kan de tre sista stegen ske på minuter eller till och med sekunder.

Har du inte råd med någon stilleståndstid?

Om så är fallet, gör detta (master-master ):

  1. Starta en ny instans och montera den nya EBS på den servern.
  2. Installera / starta mongod som en master och en slav mot den aktuella databasen. (kan behöva starta om ström som master, minimal stilleståndstid?)
  3. Den nya datorn bör göra en ny synkronisering.
  4. När den nya datorn är uppdaterad byter du systemet så att det pekar på den nya servern.

Jag vet att det verkar som om den här sista versionen faktiskt är den bästa, men den kan vara lite svår (när detta skrivs). Anledningen är helt enkelt att jag ärligt talat har haft många problem med "Master-Master"-replikering, speciellt om du inte börjar med båda aktiva.

Om du planerar att använda den här metoden rekommenderar jag starkt en mindre övningskörning först. Om något bombar här, kanske Mongo helt enkelt torkar alla dina datafiler, vilket kommer att leda till att fler saker tas ner.

Om du får en bra version av detta vänligen posta kommandona, jag skulle vilja se det i aktion.



  1. Finns det ett likvärdigt verktyg som sql profiler för mongodb?

  2. Lägg till data i dokument i Mongo DB med PHP

  3. MongoDB utfasningsvarningar när du använder Mongoose

  4. Behöver en distinkt räkning på flera fält som har sammanfogats från en annan samling med hjälp av mongodb aggregeringsfråga