web-dev-qa-db-fra.com

Erreur lors de la mise à niveau de Mongodb de 3.2 à 3.6

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

12
Himanshu

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

35
Cao Mạnh Quang

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

0