Я не хочу арендовать еще один сервер ...
Но википедия говорит:
MongoDB никогда не следует развертывать менее чем на двух серверах [необходима цитата]: главном и подчиненном. Мастер может выполнять чтение и запись. Подчиненное устройство копирует данные с главного устройства и может использоваться только для чтения или резервного копирования (но не для записи).
Это очень устарело. С 1.8 у вас есть надежность одного узла, см. --Journal.
В текущем выпуске вы действительно можете использовать один сервер благодаря ведению журнала. Технически вы всегда можете использовать только один сервер, однако из-за отсутствия журналирования ваша база данных может быть повреждена.
Небольшой совет. создайте набор реплик на вашем отдельном сервере с помощью. Вы можете создать несколько экземпляров mongo на одном компьютере. Вы можете создать первичный (главный), вторичный (подчиненный) и арбитр. Таким образом, вы можете иногда выключать подчиненное устройство и копировать файлы БД для резервного копирования, и если по какой-то причине один из других процессов будет отключен, ваше приложение все равно сможет подключиться к БД.
Я думаю, что новая рекомендуемая среда для mongo в продакшене включает в себя «наборы реплик», которые на самом деле составляют как минимум три сервера. Если основной сервер выходит из строя, два других сервера выбирают один из них, чтобы взять на себя управление. Когда первоначальные первичные выборы снова в сети, проводятся другие выборы и выбираются новые первичные выборы.
Я не уверен, что master-slave устарел, но я думаю, что если вы создаете mongo fresh, вам следует подумать о создании набора реплик.
Если вам действительно не нужно больше серверов, вы можете рассмотреть возможность одновременного запуска всех вторичных серверов на том же сервере, что и основной (но на разных портах). Однако это не слишком много.
Я думаю, это зависит от того, как вам нужно использовать mongodb ...
Причина предложения википедии заключается в том, что с mongoDb (до версии 1.3.1) вы не могли сделать резервную копию, предварительно не заполнив базу данных.
Начиная с 1.3.1, вы можете выполнять резервные записи с блокировкой:
MongoDB v1.3.1 и выше поддерживает команды fsync и lock, с помощью которых мы можем сбрасывать записи, блокировать базу данных для предотвращения записи, а затем создавать резервные копии файлов данных.
В этом заблокированном режиме все записи будут заблокированы. Если это проблема, рассмотрите один из других способов, описанных ниже.
Если ваше приложение активно используется с множеством доступов, развертываемых на двух серверах, это лучший способ, тогда как вместо этого у вас есть приложение, которое используется только в течение дня, вы можете остановить или заблокировать базу данных, сделать резервную копию, а затем перезапустить или разблокировать в ночные часы ...