Problém lze vyřešit:
- Zálohování všech databází (pomocí
mongodump
) - Odstranění všech souborů v
/data/db
, kvůli jejich nekompatibilitě s novější verzí:rm -rf /data/db/*
- Restartování služby MongoDB
- Obnovení všech databází (pomocí
mongorestore
)
Při upgradu ze starého mongodb 3.4 na 4.2 jsem se setkal s podobným problémem s admin db.
Řešením je mongodumpovat všechny dbs a smazat /var/lib/mongodb a poté mongorestore všechny dbs zpět.
STORAGE [initandlisten] exception in initAndListen: MustDowngrade: Collection does not have UUID in KVCatalog. Collection: admin.system.users, terminating
2019-09-24T21:59:55.274+0000 I NETWORK [initandlisten] shutdown: going to close listening sockets...
2019-09-24T21:59:55.274+0000 I NETWORK [initandlisten] removing socket file: /tmp/mongodb-27017.sock
2019-09-24T21:59:55.274+0000 I - [initandlisten] Stopping further Flow Control ticket acquisitions.
2019-09-24T21:59:55.274+0000 I CONTROL [initandlisten] now exiting
2019-09-24T21:59:55.274+0000 I CONTROL [initandlisten] shutting down with code:100
Příčina problému:mongodb 4.2 přidá userId s hodnotou UUID do kolekce system.user. Doufám, že to pomůže.
Při upgradu jiné mongo db jsem na startup_log narazil na úplně stejný problém jako vy, zdá se, že jsem nezastavil mongodb při odstranění složky /var/lib/mongodb, po zastavení mongoda a odstranění /var/lib/mongodb a upgradu do 4.2, chyba zmizí.
Jak nainstalovat vanilla TeXLive na Debian nebo Ubuntu?
Může jeden z uzlů clusteru s podporou převzetí služeb při selhání běžet na Linuxu?