sql >> Databáze >  >> NoSQL >> MongoDB

mongodb, repliky a chyba:{ $err :not master and slaveOk=false, kód:13435 }

Musíte nastavit režim "sekundární v pořádku", aby mongo shell věděl, že povolujete čtení ze sekundárního. To má chránit vás a vaše aplikace před náhodným prováděním konzistentního čtení. Můžete to udělat v shellu pomocí:

rs.secondaryOk()

Poté můžete normálně dotazovat ze sekundárních serverů.

Poznámka k "případné konzistenci":za normálních okolností mají sekundární části sady replik všechna stejná data jako primární během sekundy nebo méně. Při velmi vysoké zátěži může replikaci dat, která jste zapsali do primární, do sekundárních dat chvíli trvat. Toto je známé jako „replika lag“ a čtení ze zpožděného sekundárního je známé jako „nakonec konzistentní“ čtení, protože i když se nově zapsaná data v určitém okamžiku objeví (zamezí selhání sítě atd.), nemusí být okamžitě k dispozici.

Upravit: Musíte pouze nastavit secondaryOk při dotazu ze sekundárních serverů a pouze jednou za relaci.



  1. Jak používat šifrování k ochraně dat MongoDB

  2. Přepínač MongoDB $

  3. Mongoose - RangeError:Maximální velikost zásobníku hovorů překročena

  4. Co je nového v MongoDB 4.2