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