MongoMultiMaster является инструментом, который Python позволяет настроить нескольких мастер репликации с MongoDB & NBSP;. Она решительно не поддерживается 10gen, создатели MongoDB.
Он работает путем запроса oplog на одном набора реплик и применения своих операций в другую набора реплик. Он поддерживает двунаправленную репликацию пометки каждого документа воспроизведены с источника.
Установка
Чтобы установить его, PIP:
пункт установить MongoMultiMaster
MongoDB установка
МММ необходим доступ к набора реплик oplog для каждого мастера. Это означает, что не работает с серверами, которые настроены в качестве автономных серверов. Чтобы преобразовать автономный сервер с одноплодной набора реплик, сначала нужно рассказать его о наборе он находится в момент времени запуска:
& NBSP; mongod --replSet Foo
Затем, чтобы начать набор реплик, необходимо выполнить следующее в оболочке Монго:
> Rs.initiate ()
MongoMultiMaster репликации Настройка
После того как вы создали набор репликации мастер, вы должны сказать МММ, где серверы. Это делается с помощью конфигурационного файла YAML. Образец файла конфигурации с двумя серверами приведена ниже:
server_a:
& NBSP; №: '2c88ae84-7cb9-40f7-835d-c05e981f564d "
& NBSP; URI: "MongoDB: // локальный: 27019"
server_b:
& NBSP; №: '0d9c284b-b47c-40b5-932c-547b8685edd0 "
& NBSP; URI: "MongoDB: // локальный: 27017"
Во-первых, давайте убедитесь, что нет конфигурации и что мы можем подключить ко всем серверам в конфигурационном файле:
ммм -с test.yml четко конфигурации
О том, чтобы очистить конфигурации на серверах: ['server_a', '' server_b], вы уверены? (уп) у
Ясно конфигурационный server_a
Ясно конфигурационный server_b
& NBSP; ммм -с test.yml самосвалы конфигурации
=== === Конфигурация сервера
server_a (2c88ae84-7cb9-40f7-835d-c05e981f564d) => MongoDB: // локальный: 27019
server_b (0d9c284b-b47c-40b5-932c-547b8685edd0) => MongoDB: // локальный: 27017
=== Server_a репликации конфигурации
=== Server_b репликации конфигурации
Далее, мы создадим два реплицированные коллекции:
& NBSP; ммм -с test.yml повторной --src = server_a / test.foo --dst = server_b / test.foo
& NBSP; ммм -с test.yml повторной --src = server_a / test.bar --dst = server_b / test.bar
И подтвердите, что они правильно настроены:
ммм -с test.yml самосвал-конфигурации
=== === Конфигурация сервера
server_a (2c88ae84-7cb9-40f7-835d-c05e981f564d) => MongoDB: // локальный: 27019
server_b (0d9c284b-b47c-40b5-932c-547b8685edd0) => MongoDB: // локальный: 27017
=== Server_a репликации конфигурации
=== Server_b репликации конфигурации
& NBSP; - test.foo <= server_a / test.foo
& NBSP; - test.bar <= server_a / test.bar
Теперь, давайте сделаем двунаправленный репликации:
& NBSP; ммм -с test.yml повторной --src = server_b / test.foo --dst = server_a / test.foo
& NBSP; ммм -с test.yml повторной --src = server_b / test.bar --dst = server_a / test.bar
И убедитесь, что он правильно ...
ммм -с test.yml самосвал-конфигурации
=== === Конфигурация сервера
server_a (2c88ae84-7cb9-40f7-835d-c05e981f564d) => MongoDB: // локальный: 27019
server_b (0d9c284b-b47c-40b5-932c-547b8685edd0) => MongoDB: // локальный: 27017
=== Server_a репликации конфигурации
& NBSP; - test.foo <= server_b / test.foo
& NBSP; - test.bar <= server_b / test.bar
=== Server_b репликации конфигурации
& NBSP; - test.foo <= server_a / test.foo
& NBSP; - test.bar <= server_a / test.bar
Теперь мы можем запустить репликатор:
& NBSP; ммм -с test.yml выполнения
Вещи, чтобы Рассмотреть
- Репликация может отставать, если вы пишете много. Это не обрабатывается вообще.
- Репликация начинается в то время, когда ммм выполнения сначала назвали. Вы должны быть в состоянии остановки / запуска МММ и его забрать, где он остановился.
- Конфликты между мастерами, не обрабатываются; если вы пишете на тот же документ на обеих головок часто, вы можете выйти из синхронизации.
- Репликация вставляет поле в бухгалтерии каждого документа для обозначения сервера UUID, что в прошлом написал документ. Это расширяет размер каждого документа незначительно.
Есть, вероятно, острые края, другие пропущенные ошибки, а также различные гадости ждет вас, если вы используете МММ в системе производства без тщательного тестирования. . Но если вы хотите работать с ножницами и иным жить опасно, не стесняйтесь, чтобы попробовать его
Требования
- Python
Комментарии не найдены