DBAtlas · Atlas d'exploitation des bases de données

10107 NotWritablePrimary: not master / not writable primary

MongoDB

Que signifie cette erreur ?

Une écriture (ou une autre opération nécessitant le primaire) a été envoyée à un membre du replica set qui n'est pas actuellement le primaire. Seul le primaire accepte les écritures, l'opération a donc été refusée.

Cause

L'application écrit sur un secondaire ; lors d'un failover (élection), l'ancien primaire est devenu secondaire et le client y est toujours connecté ; ou les informations de préférence de lecture/écriture et de topologie du driver sont obsolètes. Un paramètre replicaSet absent de la chaîne de connexion est la cause typique.

Comment la corriger

Configurez le driver avec tous les membres du replica set et le nom du replica set (replicaSet=... et tous les hôtes dans la chaîne de connexion) afin que le driver découvre automatiquement le primaire et réoriente les requêtes en cas de failover. Utilisez la préférence de lecture/écriture par défaut, qui dirige les écritures vers le primaire. Comme il s'agit d'une erreur transitoire, activez les retryable writes dans l'application. Vérifiez quel membre est PRIMARY avec rs.status().

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur