2013-09-05 20 views
5

Şu anda iki tam üyeden oluşan bir replik seti var & bir arbiter. Şimdi, tam üye olmak için hakemi tanıtmalıyım. Bunu yapmanın en kolay yolu nedir? Oynamak için daha fazla sunucum yok, bu yüzden aldığım makinelerle bunu yapmam gerekiyor.Arşivleyiciyi tam üyeye dönüştür

cevap

7

Sizi doğru anlıyorsanız: Arbiter'ınızı aynı donanım üzerinde tam bir mongo sunucusuna gizlemek istiyorsunuz. Gözönünde bulundurmak istediğiniz ilk şey, arşivleyici donanımın veritabanını desteklemesidir. Eğer hakem çok daha az donanıma sahipse, diğer 2 düğüm bu muhtemelen iyi olmayacaktır. Birçok hakem, tam bir veritabanını destekleyemeyen makinelerde çalıştırılır. Bunu yapmak isterseniz, makineyi sıfırdan tam bir düğüm olarak ayarlamanız gerekecektir. Tam bir üyeye otomatik olarak bir arbiter tanıtmanın bir yolu yoktur.

Bunu yapmak için: 1) Arbiterde mongod işlemini kapatma ihtiyacı 1. Ardından veriyi tutabildiğinden emin olmak için veri dizinini kontrol etmek isteyebilirsiniz, bir arbiter olmadığı için hiçbiri 2) Birincil mongo kabuğuna bağlanın. Emin değilseniz, hangi düğümün birincil olduğunu görmek için kabuktaki db.isMaster() öğesini kullanabilirsiniz. 3) Kümeden çıkarmak için rs.remove ("") kullanın. 4) Yeni mongo sunucusunu başlatın. Veri dizininin boş olduğundan emin olun (çoğaltma kümesinden kopyalanacak). Komut mongod --dbpath --replSet gibi bir şeydir. Yapılandırmanız için başka seçenekleriniz olabilir. 5) Birincil çalışmada rs.add() 6) Yapılandırmalarınızın iyi olduğunu onaylamak için rs.conf() öğesini çağırın.

Bir yan not olarak, veri düğümlerini, ilk düğüm için yeni düğüm ve birincil kullanarak rsync arasında da senkronize edebilirsiniz. Ancak verileriniz küçük olsa sadece mongo'ya sahip olmak daha kolay olacaktır. Eğer rsync kullanmanız gerekiyorsa, tüm gereksinimler için lütfen dokümanlar bölümüne bakınız. http://docs.mongodb.org/manual/tutorial/expand-replica-set/

Başka sorunuz varsa, lütfen bize bildirin.

En

, Charlie

+0

Sadece yineleme kümesi yeniden yapılandırarak hakemi kapatmadan bu denedim ve süresiz ROLLBACK durumuna tuttu. Bu cevap sayesinde, şimdi ikincil bir –

+0

@Charlie Sayfası olarak ayarlanan replika tekrar eklemeden önce arbiter'in kapatılması gerektiğini biliyorum. Arbiter'i yeni bir full ikincil ile değiştirmeye çalışıyorum, bu yüzden aynı süreci takip etmeliyim. 1. Arbiter'i kaldırın 2. Yeni İkincil ekle 3. Yeni İkincil yakalamak için bekleyin. Bu süreçte, bu yeni Düğüm ikincil oluncaya kadar iki düğümüm tamamen işlevsel olacaktır (Arbiter zaten kaldırılmıştır), dolayısıyla bunun uygun şekilde çalışacağını doğrulamak istedim. Teşekkürler – viren