Update MongoDB 3.6.8/4.4 ->5.0.17

In meinen Anleitungen zur Nightscout Installation auf Ubuntu 20.04 verwende ich die im System vorhandene MongoDB.
Diese basiert auf der MongoDB 3.6.8, ist veraltet und wird in zukünftigen Ubuntu Images nicht mehr angeboten.

In diesem Tutorial zeige ich den Update der MongoDB inklusive der Backups/Restore der Datenbank.

Um MongoDB zu aktualisieren, benötigt man die kompletten Daten zur MongoDB. Also Datenbankname, Benutzer und das Passwort.
Ebenfalls benötigt man die Zugangsdaten vom Server. Wenn nach meiner Anleitung vorgegangen wurde, dann ist es der mainuser.


Im ersten Schritt logge ich mich mit Putty beim Server als Mainuser ein und erstelle ein Datenbank-Backup.

Wenn noch nicht vorhanden, ein neues Verzeichnis erstellen:

sudo mkdir /var/backups/mongobackups

Anschließen das Backup erstellen. (Datenbankname, Datenbankbenutzer Datenbankpasswort entsprechend deiner Daten ändern.)

sudo mongodump --db Datenbankname -u Datenbankbenutzer -p Datenbankpasswort --out /var/backups/mongobackups/`date +"%m-%d-%y"`

 


Wenn das Backup fertig ist, muss Nighscout und MongoDB Service beendet werden.

sudo systemctl stop nightscout.service

Das Beenden vom nightscout.service dauert einen kleinen Moment. Keine Sorge, wenn der Dienst beendet ist, erscheint in Putty wieder das normale Eingabefeld.

Anschließend wird MongoDB beendet:

sudo service mongod stop


Wenn beide Dienste gestoppt sind, muss MongoDB komplett vom System entfernt werden.

Je nachdem welche MongoDB Version schon in Betrieb war, 3.6.8 oder 4.4 muss entweder mongodb oder mongodb-org entfernt werden.

Dazu geben wir nacheinander folgende Befehle ein:

sudo apt-get remove –purge mongodb
sudo apt-get autoremove --purge mongodb
sudo apt-get purge mongodb-org*
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb


Nachdem alle Daten entfernt wurden, kann auch gleichzeitig Ubuntu oder Debian aktualisiert werden. Wenn noch nicht installiert, gleich noch Curl mit installieren.

sudo apt update
sudo apt upgrade
sudo apt-get install curl

 


Wenn alle Updates installiert sind, wird der MongoDB 5 Key hinzugefügt.

curl -fsSL https://pgp.mongodb.com/server-5.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-5.0.gpg \
--dearmor


echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-5.0.gpg] http://repo.mongodb.org/apt/debian bullseye/mongodb-org/5.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list


Nachdem der Key hinzugefügt wurde, folgende Befehle nacheinander eingeben, um System zu aktualisieren und MongoDB zu installieren:

sudo apt-get update
sudo apt-get install -y mongodb-org
sudo systemctl start mongod


Falls MongoDB einen Fehler beim Starten erzeugt bzw. nicht korrekt gestartet werden kann, muss der deamon neu geladen werden:

sudo systemctl daemon-reload

sudo systemctl status mongod

Nun sollte der status „aktive“ sein.


Als Nächstes wird ein Datenbankbenutzer und eine Datenbank erstellt. (Datenbankname, Datenbankbenutzer, Datenbankpasswort entsprechend deiner Daten anpassen. Es sollten dieselben Daten wie in der ursprünglichen Installation eingetragen werden, damit keine Änderungen an Nightscout vorgenommen werden müssen.)

Dazu geben wir in Putty folgenden Befehl ein:

mongo --quiet --eval "db = db.getSiblingDB('Datenbankname'); db.createCollection('geekFlareCollection'); db.createUser({user: 'Datenbankbenutzer', pwd: 'Datenbankpasswort', roles:['readWrite']});"


Es sollte eine Erfolgsmeldung erscheinen. Anschließend wird das Backup in die Datenbank eingespielt.

Hier muss ebenfalls Datenbankname, Datenbankpasswort, Datenbankbenutzer und das Datum aus dem Backup eingetragen werden.

sudo mongorestore --db Datenbankname -u Datenbankbenutzer -p Datenbankpasswort --drop /var/backups/mongobackups/08-24-22/Nightscout/


Nachdem das Backup erfolgreich eingespielt wurde, muss der nighscout.service wieder gestartet werden. Dazu folgenden Befehl in Putty eingeben:

sudo systemctl start nightscout.service


Nun sollte Nighscout wieder über deine Domain erreichbar sein und alle Daten verfügbar.