MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak skalować MongoDB?

Jeśli kończy Ci się dysk, oczywiście musisz kupić większy dysk.

Istnieje kilka sposobów na migrację danych, naprawdę zależy to od rodzaju potrzebnego czasu pracy. Pierwsze kroki obejmują oczywiście spakowanie maszyny i utworzenie nowego woluminu.

Te wskazówki są od najłatwiejszych do najtrudniejszych.

Czy możesz całkowicie wyłączyć bazę danych na kilka minut?

Jeśli tak, zrób to (migracja przez kopię):

  1. Zamontuj nowy EBS na serwerze.
  2. Zatrzymaj połączenie aplikacji z Mongo.
  3. Wyłącz mongod i poczekaj, aż wszystko się zapisze (sprawdź logi)
  4. Skopiuj wszystkie pliki danych (i prawdopodobnie logi) do nowego wolumenu EBS.
  5. Kiedy trwa kopiowanie, zaktualizuj swój skrypt startowy mongod (lub plik konfiguracyjny), aby wskazywał na nowy wolumin.
  6. Uruchom mongod i sprawdź połączenie
  7. Uruchom ponownie aplikację.

Czy możesz wyłączyć bazę danych na kilka minut?

Jeśli tak, zrób to (niewolnictwo i przełącznik):

  1. Uruchom nową instancję i zamontuj nowy EBS na tym serwerze.
  2. Zainstaluj/uruchom mongod jako --slave wskazując na bieżącą bazę danych. (może być konieczne ponowne uruchomienie bieżącego jako --master)
  3. Slave wykona nową synchronizację. Gdy urządzenie podrzędne będzie zaktualizowane, dokonasz „przełączenia” (następne kroki).
  4. Wyłącz zapisy z systemu.
  5. Zamknij pierwotny proces Mongod.
  6. Uruchom ponownie „nowego” mongod jako mistrza zamiast niewolnika.
  7. Ponownie aktywuj systemowe zapisy wskazujące na nowego mastera.

Wykonane poprawnie te trzy ostatnie kroki mogą trwać kilka minut, a nawet sekund.

Czy nie możesz sobie pozwolić na przestoje?

Jeśli tak, zrób to (master-master ):

  1. Uruchom nową instancję i zamontuj nowy EBS na tym serwerze.
  2. Zainstaluj/uruchom mongod jako master i slave w oparciu o bieżącą bazę danych. (może być konieczne ponowne uruchomienie prądu jako głównego, minimalny czas przestoju?)
  3. Nowy komputer powinien przeprowadzić nową synchronizację.
  4. Gdy nowy komputer jest zaktualizowany, przełącz system, aby wskazywał na nowy serwer.

Wiem, że wygląda na to, że ta ostatnia wersja jest w rzeczywistości najlepsza, ale może być trochę ryzykowna (w momencie pisania tego tekstu). Powodem jest po prostu to, że naprawdę miałem wiele problemów z replikacją „Master-Master”, zwłaszcza jeśli nie zaczynasz od obu aktywnych.

Jeśli planujesz skorzystać z tej metody, zdecydowanie sugeruję najpierw mniejszy bieg treningowy. Jeśli coś tu bombarduje, Mongo może po prostu wymazać wszystkie twoje pliki danych, co spowoduje usunięcie większej ilości danych.

Jeśli otrzymasz dobrą wersję tego, opublikuj polecenia, chciałbym zobaczyć to w akcji.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Czy możesz określić klucz dla $addToSet w Mongo?

  2. Rozwiązywanie nieobsługiwanej obietnicy odrzucenia ostrzeżenia w żądaniu ekspresowej poczty

  3. Zaktualizuj podzbiór pól za pomocą Mongoose

  4. Kolumny obiektów tablicy indeksującej tekst MongoDB

  5. Samouczek dotyczący podstaw MongoDB