MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Die Synchronisierungsquelle hatte beim Hinzufügen des MongoDB 3.6-Mitglieds zum 3.4-Replikatsatz keinen Funktionskompatibilitätsversionsfehler

Sie können auf jeden Fall ein Replikat-Set aktualisieren oder Sharded-Cluster von MongoDB 3.4 auf 3.6. Upgrades werden derzeit nur zwischen benachbarten Hauptversionen unterstützt, daher müssen Sie vor dem Upgrade auf MongoDB 3.6 das Upgrade auf MongoDB 3.4 abschließen.

Diese Fehlermeldung weist darauf hin, dass Sie bei früheren Upgrades eine Voraussetzung übersehen haben:Der Replikatsatz verfügt nicht über featureCompatibilityVersion auf 3,4 eingestellt. Dies wäre der Fall, wenn Sie zuvor ein Upgrade von einer älteren Version von MongoDB als 3.4 durchgeführt und noch keine rückwärtsinkompatiblen Funktionen aktiviert haben.

Die Einstellung Feature Compatibility Version (FCV) wurde in MongoDB 3.4 hinzugefügt, um die Kontrolle über die Aktivierung von abwärtsinkompatible Datenfunktionen das könnte den Downgrade-Prozess erschweren. Beispielsweise fügt MongoDB 3.4 Ansichten, zusätzliche Indexformate (unterstützt Sortierung und Indizes mit Berücksichtigung der Groß-/Kleinschreibung) und einen neuen Decimal-BSON-Typ hinzu.

Nach dem Upgrade auf 3.4 und der Bestätigung, dass die Wahrscheinlichkeit eines Downgrades minimal ist, sollte der FCV wie folgt festgelegt werden:

db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } )

Dies ist eine Voraussetzung für ein Upgrade auf MongoDB 3.6 die einen ähnlichen abschließenden Upgrade-Schritt wie abwärtsinkompatible 3.6-Funktionen aktivieren indem Sie den FCV auf "3.6" setzen.

Sie können den aktuellen FCV überprüfen mit:

db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )

MongoDB 3.5 (und Versionen, bei denen die zweite Komponente eine ungerade Zahl ist) werden in den Upgrade-Hinweisen nicht erwähnt, da es sich um Entwicklungsversionen handelt (siehe:MongoDB-Versionsnummern ). MongoDB 3.5 ist die Entwicklungs-Release-Reihe, die zur MongoDB 3.6-Produktions-Release-Reihe führt.