Feature Compatibility Version (FCV)
Übersicht
Feature Compatibility Version (FCV) definiert, welche MongoDB-Funktionen aktiviert sind.
Sie wird in der Sammlung admin.system.version gespeichert und ist standardmäßig auf die Version eingestellt, mit der die Datenbank erstmals bereitgestellt wurde.
FCV ermöglicht es einem Replica Set, vorübergehend im Kompatibilitätsmodus mit einer älteren MongoDB-Version zu arbeiten, selbst nach dem Upgrade der Binärdateien. Dies bietet die Möglichkeit, Replica-Set-Knoten schrittweise zu aktualisieren, ohne Ausfallzeiten zu erfordern.
Hinweis: FCV unterstützt nur eine vorherige Version. Beispielsweise kann MongoDB 7.0 FCV auf „6.0" oder „7.0" gesetzt haben, aber nicht auf „5.0". Daher müssen Upgrades schrittweise durchgeführt werden: 6.0 → 7.0, dann 7.0 → 8.0, und so weiter.
Für eigenständige MongoDB-Instanzen spielt FCV keine wesentliche Rolle — Upgrades werden direkt ohne Berücksichtigung von FCV durchgeführt.
FCV-Parameter prüfen und konfigurieren
Vor der Durchführung von Operationen, die MongoDB beeinflussen können, müssen Sie ein Datenbank-Backup erstellen.
Ohne Datenbank-Backup ist eine Datenwiederherstellung möglicherweise nicht möglich, und unser Support-Team kann im Falle eines Fehlers oder einer unerwarteten Unterbrechung nicht helfen.
Beispiele für die Erstellung und Wiederherstellung von Backups
FCV vor dem Upgrade prüfen:
- Verbinden Sie sich mit Ihrem Replica Set unter Verwendung eines Benutzerkontos mit Zugriff auf die
admin-Datenbank:
- shell
mongosh "mongodb://your_admin_user:your_password@node1:27017,node2:27017,node3:27017/?replicaSet=your_replicaset_name"
- Aktuellen FCV-Wert abrufen:
- shell
db.adminCommand({ getParameter: 1, featureCompatibilityVersion: 1 })
- Falls der FCV-Wert niedriger als die aktuelle MongoDB-Version ist, aktualisieren Sie ihn auf die verwendete Version:
- shell
db.adminCommand({ setFeatureCompatibilityVersion: "7.0" })
Schrittweises Upgrade-Verfahren für Replica Sets
- Stoppen Sie einen
secondary-Knoten, aktualisieren Sie ihn auf die nächste MongoDB-Hauptversion und starten Sie ihn erneut. - Warten Sie, bis der aktualisierte Knoten vollständig mit Ihrem Replica Set synchronisiert ist:
- shell
rs.status()
- Wiederholen Sie den Vorgang für die verbleibenden
secondary-Knoten. - Stufen Sie Ihren aktuellen
primaryherab und befördern Sie einen der aktualisiertensecondary-Knoten zumprimary:
- shell
rs.stepDown()
- Stellen Sie sicher, dass Ihr ehemaliger
primaryzu einemsecondarygeworden ist:
- shell
rs.status()
- Aktualisieren Sie den ehemaligen
primary-Knoten auf die Zielversion. - Sobald alle Replica-Set-Mitglieder aktualisiert wurden, erhöhen Sie FCV auf die neue Version.
- shell
db.adminCommand({ setFeatureCompatibilityVersion: "7.0" })