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

Impossible de conserver l'état de la transaction car la collection de transactions de session est manquante

Il est probable que vous ayez également supprimé config.transactions le recueil. Il s'agit d'une collection à usage interne qui stocke les enregistrements utilisés pour prendre en charge retryable écrit pour les jeux de répliques et les clusters partitionnés. Voir aussi Bases de données de configuration .

Depuis MongoDB v3.6+, les utilisateurs ne pourront plus supprimer la config base de données dans le jeu de répliques de mongo coquille. Bien que si vous vous connectez en utilisant mongo shell avant la v3.6, vous pouvez toujours le faire, assurez-vous de mettre à jour le shell pour qu'il corresponde à la version du serveur.

Vous pouvez recréer manuellement la collection sur le nœud principal :

use config
db.createCollection("transactions");

Alternativement, une élection de jeu de répliques le recréerait également automatiquement. En effet, la création de config.transactions la collection fait partie d'une étape de nœud d'ensemble de réplicas. session_catalog_mongod.cpp#L156

Le nouveau config.transactions la collecte sera répliquée aux secondaires une fois que le primaire aura terminé la phase de rattrapage.