Репликация одной БД mongodb - PullRequest
9 голосов
/ 14 марта 2011

У меня есть рабочий набор реплик MongoDB, состоящий из 3 серверов. Он хранит две БД. Интересно, возможно ли реплицировать только одну из БД без запуска более одного экземпляра mongoDB (по одному на БД).

Вот эскиз "проблемы"

      Server1   Server2   Server3
DB1      X         X         X
DB2      X         X

X означает Сервер, на котором должны быть реплицированы БД.

спасибо

Ответы [ 2 ]

6 голосов
/ 14 марта 2011

Я не верю, что это возможно.

В отличие от шардинга, где вы указываете до уровня коллекция того, что будет очищено, с помощью наборов реплик вы определяете, что данный MongoDB экземпляр является частью набора реплик. Поскольку только один узел в наборе реплик может быть ведущим в любой момент времени, в зависимости от сценария, о котором вы говорите, тогда будет проблема, если, например, Сервер1 вышел из строя, а Сервер3 был повышен до уровня «мастер» - поскольку DB2 не сможет записывать данные в него.

3 голосов
/ 26 февраля 2012

У меня была проблема с симлиаром, и я нашел довольно простое решение в javascript для выполнения в монго-оболочке.

Исходный код доступен здесь: http://www.suenkel.de/blog/2012/02/mongodb-replicate-one-database-or-collection/

С открытием настраиваемого курсора наОплог главного сервера каждая операция может быть применена к другому серверу (конечно, вы можете фильтровать по пространству имен коллекций или даже баз данных ...)

...