MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

mongodb, répliques et erreur :{ $err :not master and slaveOk=false, code :13435 }

Vous devez définir le mode "secondaire correct" pour faire savoir au shell mongo que vous autorisez les lectures à partir d'un secondaire. Ceci afin de vous protéger, vous et vos applications, contre l'exécution accidentelle de lectures cohérentes à terme. Vous pouvez le faire dans le shell avec :

rs.secondaryOk()

Après cela, vous pouvez interroger normalement à partir des secondaires.

Remarque sur la "cohérence éventuelle" :dans des circonstances normales, les jeux de réplicas secondaires ont toutes les mêmes données que les primaires en une seconde ou moins. Sous une charge très élevée, les données que vous avez écrites sur le primaire peuvent prendre un certain temps pour être répliquées sur les secondaires. Ceci est connu sous le nom de "retard de réplique", et la lecture à partir d'un secondaire en retard est connue sous le nom de lecture "éventuellement cohérente", car, même si les données nouvellement écrites apparaîtront à un moment donné (à l'exception des pannes de réseau, etc.), il se peut que cela ne soit pas le cas. immédiatement disponible.

Modifier : Il vous suffit de définir secondaryOk lors de l'interrogation des secondaires, et une seule fois par session.