MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да мащабирам MongoDB?

Ако дискът ви свършва, очевидно трябва да вземете по-голям диск.

Има няколко начина за мигриране на вашите данни, това наистина зависи от типа време за работа, от което се нуждаете. Първите стъпки разбира се включват групиране на машината и създаване на новия том.

Тези съвети вървят от най-лесните към най-трудните.

Можете ли да спрете напълно базата данни за няколко минути?

Ако е така, направете това (миграция чрез копие):

  1. Монтирайте нов EBS на сървъра.
  2. Спрете приложението си да се свързва с Mongo.
  3. Изключете mongod и изчакайте всичко да се запише (проверете регистрационните файлове)
  4. Копирайте всички файлове с данни (и вероятно регистрационните файлове) в новия EBS том.
  5. Докато копирането се извършва, актуализирайте своя скрипт за стартиране на mongod (или конфигурационен файл), за да сочи към новия том.
  6. Стартирайте mongod и проверете връзката
  7. Рестартирайте приложението си.

Можете ли да изключите базата данни само за няколко минути?

Ако е така, направете това (подчиняване и превключвател):

  1. Стартирайте нов екземпляр и монтирайте новия EBS на този сървър.
  2. Инсталирайте/стартирайте mongod като --slave, сочещ към текущата база данни. (може да се наложи да рестартирате текущия като --master)
  3. Подчиненото устройство ще извърши нова синхронизация. След като подчиненото устройство е актуално, ще направите „превключване“ (следващите стъпки).
  4. Изключете записите от системата.
  5. Изключете оригиналния процес mongod.
  6. Рестартирайте „новия“ mongod като master вместо slave.
  7. Повторно активиране на записите на системата, сочещи към новия мастер.

Извършени правилно, последните три стъпки могат да се изпълнят за минути или дори секунди.

Не можете ли да си позволите престой?

Ако е така, направете това (master-master ):

  1. Стартирайте нов екземпляр и монтирайте новия EBS на този сървър.
  2. Инсталиране/стартиране на mongod като главен и подчинен спрямо текущата база данни. (може да се наложи да рестартирате текущия като главен, минимално време за престой?)
  3. Новият компютър трябва да извърши нова синхронизация.
  4. След като новият компютър е актуален, превключете системата да сочи към новия сървър.

Знам, че изглежда, че последната версия всъщност е най-добрата, но може да е малко опасно (от момента на писане). Причината е просто, че честно казано имах много проблеми с репликацията "Master-Master", особено ако не започнете и с двете активни.

Ако планирате да използвате този метод, горещо препоръчвам първо да направите по-малка тренировка. Ако нещо бомбардира тук, Mongo може просто да изтрие всичките ви файлове с данни, което ще доведе до премахване на още неща.

Ако получите добра версия на това, моля, публикувайте командите, бих искал да го видя в действие.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Имате ли нужда от JPA, когато използвате MongoDB?

  2. Как да използвате Aggregate в mongoose

  3. Най-лесният начин за инсталиране на Mongodb PHP разширение в Ubuntu 13.10 (дръзко)?

  4. Как Trello се справя с пренареждането на карти, списъци, контролни списъци и т.н

  5. как да направя променлива уникален ключ в mongoose?