.
MongoMultiMaster çoklu ana MongoDB ile çoğaltmayı & nbsp kurmak için izin veren bir Python aracıdır; bu vurgulayarak 10gen tarafından desteklenmiyor, MongoDB yapımcıları.
Bu bir yineleme kümesinin üzerinde OPLOG sorgulama ve başka çoğaltma kümesine faaliyetlerini uygulayarak çalışır. Bu kaynağı ile çoğaltılan her belgeyi etiketleyerek çift yönlü çoğaltma destekler.
Yükleme
, Kullanım pip yüklemek için:
MongoMultiMaster yüklemek pip
MongoDB Kurulumu
MMM her master için OPLOG kopya kümesine erişmesi gerekir. Bu bağımsız sunucu olarak yapılandırılmış sunucular ile çalışmak anlamına gelir. Bir tek kopya kümesinden bağımsız bir sunucu dönüştürmek için, öncelikle bunu başlatmak anda var sette hakkında söylemek gerekir:
& Nbsp; mongod --replSet foo
Ardından, çoğaltma kümesi başlatmak için, sen Mongo kabuk aşağıdaki yürütmek gerekiyor:
> Rs.initiate ()
MongoMultiMaster Çoğaltma Kurulumu
Eğer kopya kümesi usta oluşturduktan sonra, sen sunucuları nerede MMM söylemek gerekir. Bu YAML yapılandırma dosyası aracılığıyla yapılır. İki sunucu ile örnek bir yapılandırma dosyası aşağıda yer almaktadır:
server_a:
& Nbsp; id: '2c88ae84-7cb9-40f7-835d-c05e981f564d'
& Nbsp; uri: 'mongodb: // localhost: 27019'
server_b:
& Nbsp; id: '0d9c284b-b47c-40b5-932c-547b8685edd0'
& Nbsp; uri: 'mongodb: // localhost: 27017'
Öncelikle, biz yapılandırma dosyasındaki tüm sunuculara bağlanabilirsiniz ki en yapılandırma var olduğunu doğrulamak izin ve:
mmm -c test.yml açık-config
Sunucularda yapılandırma temizlemek için Hakkında: ['server_a', 'server_b'], emin misin? (YN) y
Server_a için net bir yapılandırma
Server_b için net bir yapılandırma
& Nbsp; mmm -c test.yml dökümü-config
=== Sunucu Yapılandırma ===
server_a (2c88ae84-7cb9-40f7-835d-c05e981f564d) => mongodb: // localhost: 27019
server_b (0d9c284b-b47c-40b5-932c-547b8685edd0) => mongodb: // localhost: 27017
=== Server_a Çoğaltma Yapılandırma
=== Server_b Çoğaltma Yapılandırma
Sonra, iki çoğaltılmış koleksiyon kurmak gerekir:
& Nbsp; mmm -c test.yml çoğaltmak --src = server_a / test.foo --dst = server_b / test.foo
& Nbsp; mmm -c test.yml çoğaltmak --src = server_a / test.bar --dst = server_b / test.bar
Ve onlar doğru yapılandırılmış olduğunu doğrulamak:
mmm -c test.yml dökümü-config
=== Sunucu Yapılandırma ===
server_a (2c88ae84-7cb9-40f7-835d-c05e981f564d) => mongodb: // localhost: 27019
server_b (0d9c284b-b47c-40b5-932c-547b8685edd0) => mongodb: // localhost: 27017
=== Server_a Çoğaltma Yapılandırma
=== Server_b Çoğaltma Yapılandırma
& Nbsp; - test.foo <= server_a / test.foo
& Nbsp; - test.bar <= server_a / test.bar
Şimdi, çoğaltma çift yönlü yapalım:
& Nbsp; mmm -c test.yml çoğaltmak --src = server_b / test.foo --dst = server_a / test.foo
& Nbsp; mmm -c test.yml çoğaltmak --src = server_b / test.bar --dst = server_a / test.bar
Ve doğru olduğundan emin olun ...
mmm -c test.yml dökümü-config
=== Sunucu Yapılandırma ===
server_a (2c88ae84-7cb9-40f7-835d-c05e981f564d) => mongodb: // localhost: 27019
server_b (0d9c284b-b47c-40b5-932c-547b8685edd0) => mongodb: // localhost: 27017
=== Server_a Çoğaltma Yapılandırma
& Nbsp; - test.foo <= server_b / test.foo
& Nbsp; - test.bar <= server_b / test.bar
=== Server_b Çoğaltma Yapılandırma
& Nbsp; - test.foo <= server_a / test.foo
& Nbsp; - test.bar <= server_a / test.bar
Şimdi çoklayıcıyı çalıştırabilirsiniz:
& Nbsp; mmm c test.yml çalışma
Gezilecek 'düşünün için
- Bir sürü yazı eğer çoğaltma arkasında düşebilir. Bu, tüm ele değil.
- Mmm çalışma ilk kez çağrıldığında Çoğaltma zamanda başlar. Sen / durdurma mmm başlatmak ve kaldığı yerden onu almak zorunda gerekir.
- Ustaların arasındaki çakışmalar ele değil; Eğer sık sık iki kafa aynı belgeye yazıyoruz eğer, size senkronize dışarı alabilirsiniz.
- Çoğaltma son belgeyi yazdı sunucu UUID belirtmek için her belgeye bir muhasebe alanı ekler. Bu biraz her belgenin boyutunu genişletir.
Keskin kenarları, diğer cevapsız böcek ve kapsamlı test olmadan bir üretim sisteminde MMM kullanırsanız sizi bekliyor, çeşitli kötü şeyler muhtemelen vardır.
- Python <:. Eğer makas ile çalışan ve aksi tehlikeli yaşayan isterseniz Ancak, bunu denemek için çekinmeyin
Gereksinimler / li>
Yorum Bulunamadı