SORU
24 Ocak 2012, Salı


mongodb, çoğaltır ve hata: { &;$ "" err; : &; yüksek lisans ve slaveOk=false" quot;, "kod" : 13435 }

İlk kez mongo çoğaltma kümeleri çalıştım.

Ec2 üzerinde ubuntu kullanıyorum ve üç örneği başlattım. Örnekleri her özel IP adresini kullandım. Öncelik olarak seçtim ve aşağıdaki kodu.

mongo --host Private IP Address
rs.initiate()
rs.add(“Private IP Address”)
rs.addArb(“Private IP Address”)

Bu noktada sorun yok. http://ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com:28017/_replSet siteye girdiğimde bir ilköğretim, seconday ve arbitor olduğumu görüyorum.

Tamam, sınava.

Bu bir veritabanı oluşturmak birincil kodu:

use tt
db.tt.save( { a : 123 } )

ikinci olarak, ben o zaman bunu ve hata aşağıda:

db.tt.find()
error: { "$err" : "not master and slaveOk=false", "code" : 13435 }

Mongodb ve çoğaltır için çok yeni değilim ama eğer bir şey yaparsam, diğer gider diye düşündüm. Eğer bir kayıt eklerseniz, makineler arasında çoğaltmak için ne var?

CEVAP
24 Ocak 2012, Salı


"Mongo shell izin modu ikincil. okur izin olduğunu "köle iyi ayarlamak gerekir Bu kaza sonunda tutarlı okur, gerçekleştirmek ve uygulamaları korumak. Kabuk bunu yapabilirsiniz:

rs.slaveOk()

Bundan sonra ikinci gelen normalde sorgulayabilirsiniz.

Bir not hakkında "nihai kıvam: normal şartlar altında, yineleme kümesi ikincil bir saniye veya daha az içinde öncelikli olarak aynı veri var. Çok yüksek yük altında, birincil yazdığınız veri ikincil çoğaltma için bir süre alabilir. Bu bilindiği gibi "kopya lag" ve Okuma bir geri kalmış ikincil olarak bir "sonunda tutarlı" okuyun, çünkü sırada yeni veri yazılı olacak ortaya bir noktada (engelleme, ağ hataları, vs), sadece hemen kullanılabilir.

Düzenleme:Sadece ikaz ve seans başına sadece bir kez sorgularken slaveok kurmamız gerekiyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • NikkoNantone

    NikkoNantone

    21 Kasım 2011
  • Shantanu Sood

    Shantanu Soo

    3 Kasım 2008
  • Crossover

    Crossover

    18 HAZİRAN 2007