MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

mongodb, Replikate und Fehler:{ $err :not master and slaveOk=false, code :13435 }

Sie müssen den Modus "sekundär okay" einstellen, um die Mongo-Shell wissen zu lassen, dass Sie Lesevorgänge von einer sekundären zulassen. Dies dient dazu, Sie und Ihre Anwendungen davor zu schützen, zufällig konsistente Lesevorgänge durchzuführen. Sie können dies in der Shell tun mit:

rs.secondaryOk()

Danach können Sie normal von Secondaries abfragen.

Ein Hinweis zur "eventuellen Konsistenz":Unter normalen Umständen haben sekundäre Replikatsätze innerhalb einer Sekunde oder weniger dieselben Daten wie primäre. Bei sehr hoher Auslastung kann es eine Weile dauern, bis Daten, die Sie auf den Primärserver geschrieben haben, auf den Sekundärservern repliziert werden. Dies wird als "Replikatverzögerung" bezeichnet, und das Lesen von einer verzögerten Sekundärseite wird als "eventuell konsistentes" Lesen bezeichnet, da die neu geschriebenen Daten zwar irgendwann angezeigt werden (außer bei Netzwerkausfällen usw.), dies jedoch möglicherweise nicht der Fall ist sofort verfügbar.

Bearbeiten: Sie müssen nur secondaryOk setzen beim Abfragen von Secondaries und nur einmal pro Sitzung.