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.