J'ai installé Mongodb 4.2
et lors de l'exécution
Sudo service mongod start|restart
Il ne démarre pas le serveur et j'ai le journal ci-dessous dans le fichier mongod.log.
Exception in initAndListen: MustDowngrade: Collection does not have UUID in KVCatalog. Collection: local.startup_log, terminating
Voici plus de détails:
CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
CONTROL [initandlisten] MongoDB starting : pid=7434 port=27017 dbpath=/var/lib/mongodb 64-bit Host=vm2851358555.bitcommand.com
CONTROL [initandlisten] db version v4.2.0
CONTROL [initandlisten] git version: a4b751dcf51dd249c5865812b390cfd1c0129c30
CONTROL [initandlisten] OpenSSL version: OpenSSL 1.1.0k 28 May 2019
CONTROL [initandlisten] allocator: tcmalloc
CONTROL [initandlisten] modules: none
CONTROL [initandlisten] build environment:
CONTROL [initandlisten] distmod: debian92
CONTROL [initandlisten] distarch: x86_64
CONTROL [initandlisten] target_Arch: x86_64
CONTROL [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1", port: 27017 }, processManagement: { timeZoneInfo: "/usr/share/zoneinfo" }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } }
STORAGE [initandlisten] Detected data files in /var/lib/mongodb created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
STORAGE [initandlisten]
STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem
STORAGE [initandlisten] wiredtiger_open config: create,cache_size=256M,cache_overflow=(file_max=0M),session_max=33000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),statistics_log=(wait=0),verbose=[recovery_progress,checkpoint_progress],
STORAGE [initandlisten] WiredTiger message [1567525272:967263][7434:0x7fb79a56f140], txn-recover: Recovering log 16 through 17
STORAGE [initandlisten] WiredTiger message [1567525273:183321][7434:0x7fb79a56f140], txn-recover: Recovering log 17 through 17
STORAGE [initandlisten] WiredTiger message [1567525273:257888][7434:0x7fb79a56f140], txn-recover: Main recovery loop: starting at 16/768 to 17/256
STORAGE [initandlisten] WiredTiger message [1567525273:401263][7434:0x7fb79a56f140], txn-recover: Recovering log 16 through 17
STORAGE [initandlisten] WiredTiger message [1567525273:492743][7434:0x7fb79a56f140], txn-recover: Recovering log 17 through 17
STORAGE [initandlisten] WiredTiger message [1567525273:557051][7434:0x7fb79a56f140], txn-recover: Set global recovery timestamp: (0,0)
RECOVERY [initandlisten] WiredTiger recoveryTimestamp. Ts: Timestamp(0, 0)
STORAGE [initandlisten] WiredTigerKVEngine shutting down
STORAGE [initandlisten] Shutting down session sweeper thread
STORAGE [initandlisten] Finished shutting down session sweeper thread
STORAGE [initandlisten] Shutting down journal flusher thread
STORAGE [initandlisten] Finished shutting down journal flusher thread
STORAGE [initandlisten] Shutting down checkpoint thread
STORAGE [initandlisten] Finished shutting down checkpoint thread
STORAGE [initandlisten] Downgrading WiredTiger datafiles.
STORAGE [initandlisten] WiredTiger message [1567525275:122312][7434:0x7fb79a56f140], txn-recover: Recovering log 17 through 18
STORAGE [initandlisten] WiredTiger message [1567525275:243324][7434:0x7fb79a56f140], txn-recover: Recovering log 18 through 18
STORAGE [initandlisten] WiredTiger message [1567525275:351715][7434:0x7fb79a56f140], txn-recover: Main recovery loop: starting at 17/2944 to 18/256
STORAGE [initandlisten] WiredTiger message [1567525275:482006][7434:0x7fb79a56f140], txn-recover: Recovering log 17 through 18
STORAGE [initandlisten] WiredTiger message [1567525275:576281][7434:0x7fb79a56f140], txn-recover: Recovering log 18 through 18
STORAGE [initandlisten] WiredTiger message [1567525275:642376][7434:0x7fb79a56f140], txn-recover: Set global recovery timestamp: (0,0)
STORAGE [initandlisten] exception in initAndListen: MustDowngrade: Collection does not have UUID in KVCatalog. Collection: local.startup_log, terminating
NETWORK [initandlisten] shutdown: going to close listening sockets...
NETWORK [initandlisten] removing socket file: /tmp/mongodb-27017.sock
- [initandlisten] Stopping further Flow Control ticket acquisitions.
CONTROL [initandlisten] now exiting
CONTROL [initandlisten] shutting down with code:100
Comment puis-je le réparer?
Le problème peut être résolu par:
mongodump
)/data/db
, en raison de leur incompatibilité avec la nouvelle version: rm -rf /data/db/*
mongorestore
)J'ai rencontré un problème similaire avec la base de données d'administration, lors de la mise à niveau de l'ancien mongodb 3.4 vers 4.2.
La solution consiste à mongodump tous les dbs et supprimer/var/lib/mongodb, puis mongorestore tous les dbs.
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
La cause du problème: mongodb 4.2 ajoutera userId avec la valeur UUID dans la collection system.user. J'espère que cela vous aidera.
Lors de la mise à niveau d'un autre mongo db, j'ai rencontré exactement le même problème que le vôtre sur startup_log, il semble que je n'ai pas arrêté le mongodb lors de la suppression du dossier/var/lib/mongodb, après l'arrêt de mongod et la suppression du/var/lib/mongodb et la mise à niveau à 4.2, l'erreur disparaît.
Un rapport de bogue sur ce problème a recommandé de suivre le chemin de mise à niveau complet et cela a fonctionné pour moi. J'ai pu revenir à mon ancienne version (3.4) lorsque j'ai rencontré cette erreur, puis mettre à niveau correctement une étape à la fois.
Plus précisément: mettez à niveau une seule version principale à la fois et vérifiez attentivement les conditions préalables et les étapes de mise à niveau. La partie la plus importante de ceci est de vérifier votre compatibilité avec db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
et assurez-vous qu'elle correspond à la version actuelle avant de passer à la version suivante. Mettez-le à jour avec db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } )
Lisez les documents complets sur des pages comme https://docs.mongodb.com/manual/release-notes/3.6/#upgrade-procedureshttps://docs.mongodb.com/ manual/release-notes/4.0/# upgrade-procedures etc