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

Transaktionstilstanden kunne ikke fortsætte, fordi sessionstransaktionsindsamlingen mangler

Det er sandsynligt, at du også har droppet config.transactions kollektion. Dette er en samling til intern brug, der gemmer optegnelser, der bruges til at understøtte gentagbar skriver til replikasæt og sønderdelte klynger. Se også Konfigurationsdatabaser .

Siden MongoDB v3.6+ vil brugere ikke være i stand til at slippe config database i replikasæt fra mongo skal. Selvom du opretter forbindelse ved hjælp af mongo shell før v3.6, er du stadig i stand til at gøre det. Sørg for at opgradere shellen til at matche serverversionen.

Du kan manuelt genskabe samlingen på den primære node:

use config
db.createCollection("transactions");

Alternativt ville et replika-valg også automatisk genskabe det. Dette skyldes, at oprettelsen af ​​config.transactions samling er en del af et replika sæt node step up. session_catalog_mongod.cpp#L156

Den nye config.transactions indsamlingen vil blive replikeret til de sekundære efter den primære har afsluttet indhentningsfasen.




  1. MongoDB $add

  2. Min $or-vælger i et databasetrigger-match-udtryk virker ikke på andet niveau af indlejring, når jeg konfigurerer en databasetrigger

  3. Samlede mongo data php

  4. Kæmpe forsinkelse ved brug af Selleri + Redis