MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Não foi possível persistir o estado da transação porque a coleção de transações da sessão está ausente


É provável que você também tenha descartado config.transactions coleção. Esta é uma coleção para uso interno que armazena registros usados ​​para suportar retryable escreve para conjuntos de réplicas e clusters fragmentados. Consulte também Configurar bancos de dados .

Desde o MongoDB v3.6+, os usuários não poderão descartar o config banco de dados em conjunto de réplicas de mongo Concha. Embora se você estiver se conectando usando mongo shell antes da v3.6, você ainda pode fazer isso, certifique-se de atualizar o shell para corresponder à versão do servidor.

Você pode recriar manualmente a coleção no nó primário:
use config
db.createCollection("transactions");

Como alternativa, uma eleição de conjunto de réplicas também a recriaria automaticamente. Isso ocorre porque a criação de config.transactions coleção faz parte de uma etapa do nó do conjunto de réplicas. session_catalog_mongod.cpp#L156

O novo config.transactions coleta será replicada para os secundários após o primário concluir a fase de recuperação.