Je devais mettre à niveau mongodb de 3.2 à 3.6 dans mon environnement. Pour le processus, j'ai d'abord migré de 3.2 à 3.4 comme recommandé. Après une migration réussie vers la version 3.4, j’ai commencé la migration vers la version 3.6, je ne parviens pas à démarrer Mongod. Lorsque vérifié le fichier journal, j'ai trouvé une erreur comme: IMPORTANT: PROBLÈME DE MISE À NIVEAU: Les fichiers de données doivent être entièrement mis à niveau vers la version 3.4 avant toute tentative de mise à niveau vers la version 3.6. voir http://dochub.mongodb.org/core/3.6-upgrade-fcv pour plus de détails.
MON Mongod.conf
journal du système: destination: fichier logAppend: true chemin: /var/log/mongodb/mongod.log
espace de rangement: dbPath: /var/lib/mongo journal: activé: vrai
la gestion des processus: fork: vrai # fork et exécuté en arrière-plan pidFilePath: /var/run/mongodb/mongod.pid # emplacement du pidfile
net: port: 27017 bindIp: 127.0.0.1
J'ai un problème similaire, j'ai mis à jour sur Ubuntu 16.04 de MongoDB 3.4 à 3.6 mais j'ai manqué cette étape importante
db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } )
Ensuite, je dois rétrograder à 3.4 pour le faire, puis passer à nouveau à 3.6. Voici les étapes de détail:
1. Désinstallez 3.6
Sauvegarde /etc/mongod.conf
Sauvegardez /etc/apt/sources.list.d/mongodb-org-3.6.listed
(renommez ou déplacez-le dans un autre dossier)
Sudo apt-get update
Sudo apt-get remove mongodb-org-mongos mongodb-org-server mongodb-org-Shell mongodb-org-tools
2. Réinstaller 3.4
Vérifiez le dossier /etc/apt/sources.list.d/
pour voir si ce fichier existe ou non: mongodb-org-3.4.list
. S'il n'existe pas, vous pouvez recréer à l'aide de cette commande:
echo "deb [ Arch=AMD64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | Sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
puis installez par apt-get
Sudo apt-get update
Sudo apt-get install -y mongodb-org
mongod --version
Sudo systemctl start mongod
Dans mon cas, la commande systemctl start mongod
renvoie l'erreur Failed to start mongod.service: Unit mongod.service not found
que j'ai résolue par ces commandes:
Sudo systemctl enable mongod
Sudo service mongod restart
Sudo service mongod status
3. Exécuter une commande très importante
Après le passage à la version 3.4, lancez cette opération.
mongo
MongoDB Shell version v3.4.10
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.10
> db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } )
{ "featureCompatibilityVersion" : "3.4", "ok" : 1 }
> exit
4. Mettez à jour 3.6 à nouveau
Restaurez ce fichier /etc/apt/sources.list.d/mongodb-org-3.6.listed
Sudo apt-get update
Sudo apt-get install mongodb-org-mongos mongodb-org-server mongodb-org-Shell mongodb-org-tools
Restaurez /etc/mongod.conf
. Maintenant, MongoDB 3.6 a démarré sans aucun problème
Si vous ne vous souciez pas de perdre toutes vos données , vous pouvez supprimer le contenu du dossier /data/db
, qui contient évidemment une base de données au format 3.4.
Puis redémarrez mongod