sql >> Databáze >  >> NoSQL >> MongoDB

Jak škálovat MongoDB?

Pokud vám dochází disk, musíte samozřejmě získat větší disk.

Existuje několik způsobů migrace dat, opravdu záleží na typu doby provozu, kterou potřebujete. První kroky samozřejmě zahrnují sbalení stroje a vytvoření nového svazku.

Tyto tipy jdou od nejjednodušších k nejtěžším.

Můžete databázi na několik minut zcela vypnout?

Pokud ano, udělejte toto (migrace pomocí kopie):

  1. Nainstalujte nový EBS na server.
  2. Zastavte připojení aplikace k Mongo.
  3. Vypněte mongoda a počkejte, až se vše zapíše (zkontrolujte protokoly)
  4. Zkopírujte všechny datové soubory (a pravděpodobně i protokoly) do nového svazku EBS.
  5. Během kopírování aktualizujte spouštěcí skript mongodu (nebo konfigurační soubor), aby ukazoval na nový svazek.
  6. Spusťte mongoda a zkontrolujte připojení
  7. Restartujte aplikaci.

Můžete databázi na pár minut vypnout?

Pokud ano, udělejte to (slaving a přepnout):

  1. Spusťte novou instanci a připojte nový EBS na tento server.
  2. Nainstalujte / spusťte mongoda jako --slave ukazující na aktuální databázi. (možná budete muset znovu spustit proud jako --master)
  3. Podřízený provede novou synchronizaci. Jakmile bude slave aktuální, provedete „přepnutí“ (další kroky).
  4. Vypněte zápisy ze systému.
  5. Vypněte původní proces mongoda.
  6. Restartujte „nového“ mongoda jako pána místo otroka.
  7. Znovu aktivujte systémové zápisy ukazující na nového hlavního serveru.

Správně provedené poslední tři kroky mohou proběhnout během minut nebo dokonce sekund.

Nemůžete si dovolit žádné prostoje?

Pokud ano, udělejte to (master-master ):

  1. Spusťte novou instanci a připojte nový EBS na tento server.
  2. Nainstalujte / spusťte mongoda jako master a slave proti aktuální databázi. (možná bude nutné znovu spustit proud jako hlavní, minimální prostoje?)
  3. Nový počítač by měl provést novou synchronizaci.
  4. Jakmile bude nový počítač aktuální, přepněte systém tak, aby ukazoval na nový server.

Vím, že se zdá, že tato poslední verze je ve skutečnosti nejlepší, ale může být trochu komplikovaná (v době psaní tohoto článku). Důvodem je jednoduše to, že jsem upřímně měl spoustu problémů s replikací „Master-Master“, zvláště pokud nezačnete s oběma aktivními.

Pokud plánujete používat tuto metodu, velmi doporučuji nejprve menší cvičný běh. Pokud zde něco vybuchne, Mongo může jednoduše vymazat všechny vaše datové soubory, což bude mít za následek odstranění dalších věcí.

Pokud získáte dobrou verzi tohoto, pošlete prosím příkazy, rád bych to viděl v akci.



  1. Převod ObjectId typu BSON na JSON (ukládání v Mongodb) -Java

  2. Mám pro každé připojení vytvořit nového klienta Redis?

  3. Mongoose najít pole s $in

  4. Kontejnerem spravované připojení MongoDB v Liberty + Spring Data