MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

mongodb, repliche ed errore:{ $err :not master e slaveOk=false, code :13435 }

Devi impostare la modalità "secondary okay" per far sapere alla shell mongo che stai consentendo letture da un secondario. Questo serve a proteggere te e le tue applicazioni dall'esecuzione accidentale di letture coerenti. Puoi farlo nella shell con:

rs.secondaryOk()

Dopodiché puoi interrogare normalmente dalle secondarie.

Una nota sulla "coerenza finale":in circostanze normali, i set di repliche secondari hanno tutti gli stessi dati dei primari entro un secondo o meno. Con un carico molto elevato, i dati che hai scritto sul primario potrebbero richiedere del tempo per replicarsi sui secondari. Questo è noto come "ritardo di replica" e la lettura da un secondario in ritardo è nota come lettura "eventualmente coerente", perché, mentre i dati appena scritti verranno visualizzati ad un certo punto (salvo errori di rete, ecc.), potrebbe non essere immediatamente disponibile.

Modifica: Devi solo impostare secondaryOk quando si esegue una query da secondari e solo una volta per sessione.