sql >> Databasteknik >  >> NoSQL >> MongoDB

Det går inte att bevara transaktionstillståndet eftersom sessionstransaktionssamlingen saknas

Det är troligt att du också har tappat config.transactions samling. Det här är en samling för internt bruk som lagrar poster som används för att stödja repetryable skriver för replikuppsättningar och fragmenterade kluster. Se även Config Databases .

Sedan MongoDB v3.6+ kommer användare inte att kunna ta bort config databas i replikuppsättning från mongo skal. Även om du ansluter med mongo skal före v3.6, kan du fortfarande göra det, se till att uppgradera skalet så att det matchar serverversionen.

Du kan manuellt återskapa samlingen på den primära noden:

use config
db.createCollection("transactions");

Alternativt skulle ett replikuppsättningsval också automatiskt återskapa det. Detta beror på att skapandet av config.transactions samling är en del av en replikuppsättning av nodsteg. session_catalog_mongod.cpp#L156

Den nya config.transactions insamlingen kommer att replikeras till sekundärerna efter att den primära avslutat ihämtningsfasen.




  1. Distribuera och konfigurera MongoDB Shards med Ansible

  2. Kan inte ansluta fjärransluten mongodb-server med django/djongo

  3. Det går inte att låsa ett mongodb-dokument. Vad händer om jag behöver?

  4. Hur hittar man allt i mongoosejs?