Upgrade auf eine neue übergeordnete Version durchführen

Gen 2

Databases for MongoDB bietet zwei verschiedene Upgrade-Möglichkeiten:

  • In-Place-Upgrade auf eine neue Hauptversion (derzeit für den Standard-Tarif von „ MongoDB “ unterstützt).
  • Wiederherstellung aus einem Backup (unterstützt für den „ MongoDB “-Standardtarif und den „ MongoDB “-Enterprise-Tarif).

Upgrades auf eine neue Hauptversion ohne Systemneustart

Ein Major-Version-Upgrade vor Ort ermöglicht es Ihnen, Ihre Bereitstellung auf die nächste neue Version Hauptversion zu aktualisieren, wodurch die Notwendigkeit entfällt, ein Backup wiederherstellen in eine neue Bereitstellung zu migrieren. Bei diesem Ansatz bleiben die Verbindungszeichenfolgen unverändert, ohne dass die Bereitstellung neu konfiguriert werden muss. Sollte die neue Hauptversion jedoch Anpassungen an der Anwendung erfordern, müssen diese vorgenommen werden.

Während des Zeitfensters für das Major-Version-Upgrade ohne Ausfall (einschließlich einer Datensicherung) wird für die Bereitstellung der Modus „setUserWriteBlockMode“ aktiviert, der nur Lesevorgänge, jedoch keine Schreibvorgänge auf die Bereitstellung zulässt, um ein sicheres Upgrade zu gewährleisten. Sobald das Hauptversions-Upgrade der Bereitstellung abgeschlossen ist, wird die writeBlockMode wird entfernt.

Bei der Durchführung eines In-Place-Upgrades auf eine neue Hauptversion gibt es zwei Möglichkeiten:

  • Hauptversions-Upgrade vor Ort mit Datensicherung: Bei diesem Verfahren wird vor der Durchführung des eigentlichen Upgrades eine Datensicherung erstellt, was für zusätzliche Sicherheit sorgt.

  • Hauptversions-Upgrade vor Ort ohne Sicherung: Bei dieser Option wird das Upgrade durchgeführt, ohne zuvor eine Sicherung zu erstellen. Sollte das In-Place-Upgrade fehlschlagen, müssen Sie Ihre Bereitstellung aus der aktuellsten Sicherung in eine neue Bereitstellung wiederherstellen.

    Ein In-Place-Upgrade ohne Sicherung wird nicht empfohlen. Sollte das Upgrade in einer beliebigen Phase fehlschlagen, kann dies zu Datenverlusten führen, da keine aktuelle Sicherung zur Wiederherstellung vorliegt.

Vorbereitende Schritte

Berücksichtigen Sie die folgenden Aspekte, bevor Sie mit dem Upgrade-Vorgang beginnen.

  • Ihre Bereitstellung muss sich vor dem Upgrade in einem fehlerfreien Zustand befinden.
  • Ihre Bereitstellung muss über mindestens 2 GB freien Speicherplatz verfügen.
  • In Ihrer Bereitstellung darf es keinen Benutzer mit der Berechtigung geben, bypassWriteBlockingMode.
  • Sie können nur auf die nächste Hauptversion aktualisieren, anstatt eine Version Ihrer Wahl anzugeben.
  • Jede Hauptversion enthält einige Funktionen, die möglicherweise nicht abwärtskompatibel mit früheren Versionen sind. Lesen Sie die Versionshinweise des Datenbankanbieters, um sich über Änderungen zu informieren, die sich möglicherweise auf Ihre Anwendungen auswirken könnten.
  • Ein Downgrade einer Bereitstellung auf eine frühere Version wird nicht unterstützt.
  • Ein In-Place-Upgrade auf eine neue Hauptversion kann nach seinem Start nicht mehr abgebrochen werden.
  • Für MongoDB Enterprise Edition muss vor dem Upgrade mindestens ein Backup verfügbar sein.

Upgrade über die Benutzerschnittstelle

  1. Erstellen Sie eine neue „ Databases for MongoDB “, um den Upgrade-Prozess zu testen.
    Erstellen Sie die Bereitstellung, indem Sie die vorhandene Bereitstellung mit derselben Version über „ Wiederherstellung eines Backups “ kopieren.

  2. Richten Sie Ihre Staging-Anwendung auf die Testbereitstellung aus.
    Aktualisieren Sie Ihre Staging-Anwendung so, dass sie auf die Testumgebung verweist. Vergewissern Sie sich, dass Ihre Testanwendung erfolgreich eine Verbindung zur Staging-Umgebung herstellen kann und dass die Anwendung wie erwartet funktioniert. Führen Sie alle erforderlichen Leistungs- und Funktionstests der Staging-Umgebung durch.

  3. Aktualisieren Sie die Hauptversion Ihrer Testbereitstellung, indem Sie auf der Seite „Übersicht“ auf die Schaltfläche „Hauptversion aktualisieren“ klicken.
    Dadurch wird Ihre Datenbank für die Dauer des Upgrade-Vorgangs in den schreibgeschützten Modus versetzt. Beachten Sie, wie lange das Upgrade dauert, damit Sie mithilfe der Einstellung zum Ablauf des Upgrades sicherstellen können, dass die Upgrades innerhalb Ihres Wartungsfensters stattfinden.

  4. Vergewissern Sie sich, dass Ihre Staging-Anwendung mit der neuen Datenbankversion funktioniert.
    Wenn Ihre Anwendung funktioniert, bestätigt dieser Schritt, dass ein Upgrade Ihrer Produktionsdatenbank unbedenklich sein sollte.

  5. Aktualisieren Sie Ihre Produktionsdatenbank auf die neue Version.
    Sobald Sie sich vergewissert haben, dass Ihre Anwendung mit der neuen Datenbankversion einwandfrei funktioniert, können Sie zur Verwaltungskonsole zurückkehren und mit der Aktualisierung Ihrer Produktionsumgebung beginnen. Klicken Sie im Abschnitt „Bereitstellungsdetails“ auf der Übersichtsseite auf die Schaltfläche „Hauptversion aktualisieren“ und befolgen Sie die Anweisungen.

    Sobald der In-Place-Upgrade-Vorgang gestartet wurde, kann er nicht mehr angehalten oder rückgängig gemacht werden. Im unwahrscheinlichen Fall eines Fehlers könnte Ihre Datenbankbereitstellung daher nicht mehr wiederhergestellt werden. Erstellen Sie daher ein Backup, das Sie anschließend zur Wiederherstellung in einer neuen Bereitstellung verwenden können. Wenn Sie „In-Place-Upgrade auf eine höhere Hauptversion mit Sicherung“ auswählen, kann die erstellte Sicherung zur Wiederherstellung in einer neuen Bereitstellung verwendet werden.

Über den „ expiration for starting upgrade “ können Sie eine „Timeout“-Dauer festlegen, innerhalb derer der Upgrade-Auftrag gestartet werden muss, bevor er automatisch abgebrochen wird. Testen Sie das Upgrade außerdem vorab in der Staging-Umgebung, um sicherzustellen, dass es innerhalb des von Ihnen gewünschten Zeitfensters abgeschlossen wird. Wenn Sie beispielsweise das Upgrade innerhalb einer Stunde abschließen möchten und Sie das Upgrade getestet haben und wissen, dass es 30 Minuten dauert, dann muss Ihr Upgrade-Auftrag innerhalb von 30 Minuten nach Ihrer Bestätigung, dass Sie das Upgrade durchführen möchten, starten. Stellen Sie daher die Ablaufzeit auf 30 Minuten ein, damit der Vorgang, falls er nicht innerhalb dieser Zeit beginnt, Ihr Zeitfenster nicht überschreitet.

Upgrade über die Anwendungsprogrammierschnittstelle

Verwenden Sie den folgenden Befehl, um ein Upgrade an Ort und Stelle durchzuführen:

curl -X PATCH https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/version -H 'Authorization: Bearer <>' -H 'Content-Type: application/json' -d '{"version": "7.0"}'

Über den „ expiration for starting upgrade “ können Sie eine „Timeout“-Dauer festlegen, innerhalb derer der Upgrade-Auftrag gestartet werden muss, bevor er automatisch abgebrochen wird. Testen Sie das Upgrade außerdem vorab in der Staging-Umgebung, um sicherzustellen, dass es innerhalb des von Ihnen gewünschten Zeitfensters abgeschlossen wird. Wenn Sie beispielsweise das Upgrade innerhalb einer Stunde abschließen möchten und Sie das Upgrade getestet haben und wissen, dass es 30 Minuten dauert, dann muss Ihr Upgrade-Auftrag innerhalb von 30 Minuten nach Ihrer Bestätigung, dass Sie das Upgrade durchführen möchten, starten. Stellen Sie daher die Ablaufzeit auf einen Zeitstempel von 30 Minuten ab dem jetzigen Zeitpunkt ein, damit der Vorgang, falls er nicht innerhalb dieser Zeit beginnt, Ihr Zeitfenster nicht überschreitet. Die Gültigkeitsdauer muss zwischen 5 Minuten (Standard) und 24 Stunden ab dem aktuellen Zeitpunkt liegen. Weitere Informationen finden Sie unter Cloud Databases API.

Upgrade über die Befehlszeilenschnittstelle

Verfügbar in der CDB-Plugin-Version >= 0.20.0

So zeigen Sie die Liste der zulässigen Upgrade- und Wiederherstellungsübergänge für die Bereitstellung an:

ibmcloud cdb deployment-capability-show <NAME|CRN> versions

Befehl zum Upgrade mit den erforderlichen Parametern:

ibmcloud cdb deployment-version-upgrade <NAME|CRN> <TARGET_VERSION>

So zeigen Sie alle Details zu den Befehlsparametern an:

ibmcloud cdb deployment-version-upgrade --help

Über den „ expiration for starting upgrade “ können Sie eine „Timeout“-Dauer festlegen, innerhalb derer der Upgrade-Auftrag gestartet werden muss, bevor er automatisch abgebrochen wird. Testen Sie das Upgrade außerdem vorab in der Staging-Umgebung, um sicherzustellen, dass es innerhalb des von Ihnen gewünschten Zeitfensters abgeschlossen wird. Wenn Sie beispielsweise das Upgrade innerhalb einer Stunde abschließen möchten und Sie das Upgrade getestet haben und wissen, dass es 30 Minuten dauert, dann muss Ihr Upgrade-Auftrag innerhalb von 30 Minuten nach Ihrer Bestätigung, dass Sie das Upgrade durchführen möchten, starten. Stellen Sie daher die Ablaufzeit auf 30 Minuten ein, damit der Vorgang, falls er nicht innerhalb dieser Zeit beginnt, Ihr Zeitfenster nicht überschreitet. Die Gültigkeitsdauer muss zwischen 5 Minuten (Standard) und 24 Stunden ab dem aktuellen Zeitpunkt liegen. Es gibt zwei Möglichkeiten, die Gültigkeitsdauer über die Befehlszeilenschnittstelle (CLI) festzulegen: --expire-in oder --expire-at. Weitere Informationen finden Sie in der Hilfe zum Befehl.

Upgrade über Terraform

Verfügbar in der Terraform-Provider-Version >= 1.79.2

Um ein Upgrade durchzuführen, fügen Sie einfach den Wert „ version “ in Ihrer Konfiguration hinzu oder ändern Sie ihn. Es gibt außerdem ein optionales boolesches Flag, „ version_upgrade_skip_backup “, mit dem Sie die Sicherung überspringen können.

Es wird davon abgeraten, eine Datensicherung auszulassen. Das Auslassen einer Datensicherung vor einem Versions-Upgrade ist gefährlich und kann zu Datenverlusten führen, falls das Upgrade in einer beliebigen Phase fehlschlägt – es steht dann keine aktuelle Datensicherung zur Wiederherstellung zur Verfügung.

Die Datenbank wird während des Upgrades in den schreibgeschützten Modus versetzt. Es wird dringend empfohlen, vor dem Upgrade Tests durchzuführen.

Die Aktualisierung kann möglicherweise länger dauern als das standardmäßige Zeitlimit. Mit dem Attribut „timeouts“ kann ein längerer Timeout-Wert festgelegt werden.

Terraform verwendet Zeitlimits anstelle von Ablaufzeitstempeln. Erhöhen Sie daher Ihre Timeout-Zeit, da der Wert Ihrer Timeout-Aktualisierung als Ablaufzeit verwendet wird. Wenn Sie beispielsweise ein Timeout von 20 Minuten festlegen, wird die Ablaufzeit auf 20 Minuten gesetzt. Wenn das Upgrade innerhalb dieses Zeitraums nicht startet, läuft die Frist ab und das Upgrade wird nicht gestartet. Beachten Sie, dass die maximale Gültigkeitsdauer 24 Stunden beträgt – selbst wenn Sie also ein Zeitlimit von 36 Stunden festlegen, verfällt das Upgrade, wenn es nicht innerhalb der ersten 24 Stunden gestartet wurde.

Wenn gerade ein Upgrade durchgeführt wird, beachten Sie bitte, dass einige Aufgaben möglicherweise in die Warteschlange gestellt werden und erst nach Abschluss des Versions-Upgrades weiterbearbeitet werden.

Fehlerbehebung

Benutzer mit bypassWriteBlockingMode

Um ein sicheres Upgrade zu gewährleisten, darf kein Benutzer während der Datensicherung oder des Upgrades Schreibvorgänge durchführen können. Bevor die Datenbank in den „writeBlockMode“ wechselt, wird geprüft, ob ein Benutzer die Berechtigung hat, bypassWriteBlockingMode. Wird ein solcher Benutzer identifiziert, wechselt die Aufgabe in den Status „fehlgeschlagen“. Jeder erneute Versuch schlägt fehl, und nur durch das Entfernen eines Benutzers mit dieser Berechtigung kann das Major-Version-Upgrade an Ort und Stelle durchgeführt werden.

Gesundheitschecks

Wenn einer Dienstinstanz die Ressourcen ausgehen, schlägt die Aufgabe fehl, da unter diesen Umständen ein sicheres Upgrade nicht gewährleistet werden kann. Der Ressourcenverbrauch lässt sich mithilfe der Überwachungsintegration auswerten. Wenn nicht alle Datenbankkomponenten für das Upgrade verfügbar sind, schlägt die Upgrade-Aufgabe fehl. Dies kann aufgrund von Wartungsarbeiten passieren. Aufgaben, die aufgrund fehlgeschlagener Zustandsprüfungen fehlgeschlagen sind, können später erneut ausgeführt werden. Sollte die Aufgabe wiederholt fehlschlagen, erstellen Sie bitte ein Support-Ticket beim IBM Cloud-Support.

Von der Sicherung wiederherstellen

Bevor eine Hauptversion einer Datenbank das Ende ihrer Lebensdauer (EOL) erreicht, sollten Sie ein Upgrade auf die nächste verfügbare Hauptversion durchführen, indem Sie eine Sicherung in eine neue Datenbankinstanz wiederherstellen.

Bereiten Sie sich darauf vor, die neueste Version vor dem EOL-Datum einzusetzen und anschließend darauf umzustellen. Weitere Informationen finden Sie unter „ Richtlinie zur Versionsverwaltung “.

Das Zurücksetzen auf frühere Versionen wird nicht unterstützt.

Führen Sie ein Upgrade auf die neueste Version von „ MongoDB “ durch, die unter Databases for MongoDB verfügbar ist. Die aktuellste Version finden Sie auf der Katalogseite, über den Befehl „ Cloud Databases “ des CLI-Plug-ins ibmcloud cdb deployables-show oder über den API-Endpunkt „ Cloud Databases “ /deployables.

Das Upgrade erfolgt durch das Wiederherstellen einer Sicherungskopie Ihrer Daten in einer neuen Bereitstellung. Die Wiederherstellung aus einem Backup bietet verschiedene Vorteile:

  • Die ursprüngliche Datenbank bleibt aktiv und die Produktionsarbeiten können ohne Unterbrechung fortgesetzt werden.
  • Sie können die neue Datenbank aus der Produktion heraus testen und auf eine etwaige Inkompatibilität von Anwendungen reagieren.
  • Der gesamte Prozess kann an jedem beliebigen Punkt erneut ausgeführt werden.
  • Durch eine aktuelle Wiederherstellung wird die Wahrscheinlichkeit verringert, dass nicht benötigte Artefakte der älteren Datenbankversion in die neue Datenbank übernommen werden.

Upgradepfade

Upgrade-Pfade für Hauptversions-Upgrades
Aktuelle Version Upgradepfad der Hauptversion
MongoDB 7 MongoDB 8

Upgrade über die Benutzerschnittstelle

Für neue Hosting-Modelle (isolierte Rechenleistung und gemeinsam genutzte Rechenleistung) ist ein Upgrade auf eine neue Hauptversion über die CLI und die API möglich.

Sie können ein Upgrade auf eine neue Version durchführen, indem Sie auf der Seite „ Sicherungen und Wiederherstellung “ Ihrer Bereitstellung in der IBM Cloud-Konsole die Option „ Wiederherstellung eines Backups “ auswählen. Klicken Sie bei einer Sicherung auf „Sicherung wiederherstellen“, um eine Seite in einem neuen Tab zu öffnen, auf der Sie einige Optionen für die neue Bereitstellung ändern können. Eine dieser Optionen ist die Datenbankversion, die automatisch mit den verfügbaren Versionen gefüllt wird, auf die Sie ein Upgrade durchführen können. Wählen Sie eine Version aus und klicken Sie auf „Sicherung wiederherstellen“, um den Bereitstellungs- und Wiederherstellungsprozess zu starten.

Upgrade über die Befehlszeilenschnittstelle

Wenn Sie das Upgrade und die Wiederherstellung der Sicherung über die IBM Cloud-Befehlszeilenschnittstelle durchführen, verwenden Sie den Einrichtungsbefehl aus dem Ressourcencontroller.

ibmcloud resource service-instance-create <INSTANCE_NAME> <SERVICE_ID> <SERVICE_PLAN_ID> <REGION>

Die Parameter „ instance_name “, „ service_id “, „ service_plan_id “ und „ region “ sind alle erforderlich. Geben Sie auch -p mit den Parametern für Version und Sicherungs-ID in einem JSON-Objekt an. Die neue Bereitstellung hat automatisch eine Platte und einen Speicher derselben Größe wie die Quellenbereitstellung zum Zeitpunkt der Sicherung.

ibmcloud resource service-instance-create example-upgrade databases-for-mongodb standard us-south \
-p \ '{
  "backup_id": "crn:v1:bluemix:public:databases-for-mongodb:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
  "version":"7.0"
}'

Upgrade über die Anwendungsprogrammierschnittstelle

Ähnlich wie bei der Bereitstellung über die API müssen Sie die erforderlichen Schritte zur Nutzung der Ressourcen-Controller-API durchführen, bevor Sie diese für ein Upgrade aus einem Backup verwenden können. Anschließend senden Sie der API eine POST-Anforderung. Die Parameter name, target, resource_group und resource_plan_id sind erforderlich. Geben Sie außerdem die Versionsnummer und die Backup-ID an. Die neue Bereitstellung verfügt über die gleiche Speicher- und Plattenzuordnung wie die Quellenbereitstellung zum Zeitpunkt der Sicherung.

curl -X POST   https://resource-controller.cloud.ibm.com/v2/resource_instances   -H 'Authorization: Bearer <>'   -H 'Content-Type: application/json'     -d '{
    "name": "my-instance",
    "target": "us-south",
    "resource_group": "5g9f447903254bb58972a2f3f5a4c711",
    "resource_plan_id": "databases-for-mongodb-standard",
    "backup_id": "crn:v1:bluemix:public:databases-for-mongodb:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
    "version":"7.0"
  }'

Upgrade über Terraform

Verwenden Sie Terraform, um ein Backup von einer älteren Version auf einer neuen Version wiederherzustellen.

  1. Legen Sie Ihre „ backup_id “ fest. Weitere Informationen finden Sie unter backup_id.
  2. Legen Sie im Attribut „version“ den Wert „ version “ fest. Weitere Informationen finden Sie unter version.

Der Code sieht wie folgt aus:

resource "ibm_database" "<your-instance>" {
  name                                 = "<your_database_name>"
  service                              = "<service>"
  plan                                 = "<plan>"
  location                             = "<region>"
  version                              = "<version>"
  backup_id                            = "<backup_id>"
}

Weitere Informationen finden Sie unter Cloud Databases Terraform-Registry.