sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan skalerer man MongoDB?

Hvis du er ved at løbe tør for disk, skal du selvfølgelig have en større disk.

Der er flere måder at migrere dine data på, det afhænger virkelig af, hvilken type oppetid du har brug for. De første trin involverer selvfølgelig at samle maskinen og oprette den nye diskenhed.

Disse tips går fra de nemmeste til de sværeste.

Kan du tage databasen helt off-line i flere minutter?

Hvis ja, gør dette (migrering ved kopi):

  1. Monter ny EBS på serveren.
  2. Stop din app i at oprette forbindelse til Mongo.
  3. Luk mongod ned og vent på, at alt er skrevet (tjek logfilerne)
  4. Kopiér alle datafilerne (og sandsynligvis logfilerne) til den nye EBS-diskenhed.
  5. Mens kopieringen sker, skal du opdatere dit mongod start-script (eller konfigurationsfil) for at pege på det nye bind.
  6. Start mongod og tjek forbindelsen
  7. Genstart din app.

Kan du tage databasen offline i et par minutter?

Hvis ja, gør dette (slaving og skifte):

  1. Start en ny instans og monter den nye EBS på den server.
  2. Installer / start mongod som en --slave, der peger på den aktuelle database. (du skal muligvis genstarte den nuværende som --master)
  3. Slaven vil foretage en ny synkronisering. Når slaven er opdateret, foretager du et "skift" (næste trin).
  4. Sluk for skrivning fra systemet.
  5. Luk den oprindelige mongod-proces.
  6. Genstart den "nye" mongod som mester i stedet for slaven.
  7. Genaktiver systemskrivninger, der peger på den nye master.

Udført korrekt kan de sidste tre trin ske på minutter eller endda sekunder.

Har du ikke råd til nedetid?

Hvis ja, gør dette (master-master ):

  1. Start en ny instans og monter den nye EBS på den server.
  2. Installer / start mongod som en master og en slave mod den aktuelle database. (kan det være nødvendigt at genstarte strøm som master, minimal nedetid?)
  3. Den nye computer bør foretage en ny synkronisering.
  4. Når den nye computer er opdateret, skal du skifte systemet til at pege på den nye server.

Jeg ved, at det ser ud til, at denne sidste version faktisk er den bedste, men den kan være lidt skæv (som i skrivende stund). Årsagen er simpelthen, at jeg ærligt talt har haft mange problemer med "Master-Master"-replikering, især hvis du ikke starter med begge aktive.

Hvis du planlægger at bruge denne metode, foreslår jeg stærkt en mindre øvelse først. Hvis noget bomber her, kan Mongo simpelthen slette alle dine datafiler, hvilket vil have den virkning, at flere ting fjernes.

Hvis du får en god version af dette, så send venligst kommandoerne, jeg vil gerne se det i aktion.



  1. TypeError:callback.apply er ikke en funktion (Node.js &Mongodb)

  2. Mongoose findOneAndUpdate:Opdater et objekt i en række objekter

  3. Holde felt i mongodb gruppe af

  4. Find distinkte værdier gruppe efter et andet felt mongodb