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

Impossibile mantenere lo stato della transazione perché manca la raccolta delle transazioni della sessione

È probabile che tu abbia eliminato anche config.transactions collezione. Questa è una raccolta per uso interno che memorizza i record utilizzati per supportare retryable scrive per set di repliche e cluster partizionati. Vedi anche Configura database .

Da MongoDB v3.6+, gli utenti non potranno eliminare il config database nel set di repliche da mongo guscio. Anche se ti stai connettendo usando mongo shell prima della v3.6, sei ancora in grado di farlo, assicurati di aggiornare la shell in modo che corrisponda alla versione del server.

Puoi ricreare manualmente la raccolta sul nodo principale:

use config
db.createCollection("transactions");

In alternativa, anche un'elezione del set di repliche lo ricrea automaticamente. Questo perché la creazione di config.transactions la raccolta fa parte di un incremento del nodo del set di repliche. session_catalog_mongod.cpp#L156

Il nuovo config.transactions la raccolta sarà replicata ai secondari dopo che il primario ha completato la fase di recupero.