Erfahrungsbericht Upgrade von Nextcloud 19.0.7 auf Nextcloud 20.0.7

Die Entwicklung der quelloffenen Cloud Lösung von Nextcloud schreitet konsequent bereit. Nachdem Version 20 nun einige Wartungspakete erhielt, sah ich nun den geeigneten Zeitpunkt zum Versionssprung gekommen. Dabei bin ich nicht ins Terminal, sondern hatte alles via Browserfenster durchgeführt.

Sicherung anlegen

Um im Fehlerfall keine Bauchlandung zu erleiden sollte zuvor eine Sicherung der Nextcloud Instanz durchgeführt werden. Dies erledige ich via Terminal:

Hier wird angenommen, dass die Nextcloud Instanz unter dem Benutzer „www-data“ betrieben wird.

cd /var/www/nextcloud/
sudo -u www-data php occ maintenance:mode --on
sudo tar -cpzf /Pfad/zu/Deiner/Sicherung/NextcloudBackup_FileDir_date +"%Y%m%d".tar.gz -C /var/www/nextcloud .
mysqldump – single-transaction -h HOSTNAME -u DBADMINNAME -p DBADMINPW > /Pfad/zu/Deiner/Sicherung/NextcloudBackup_DB_date +"%Y%m%d".sql
cd /var/www/html/nextcloud/
sudo -u www-data php occ maintenance:mode --off

Ihr müsst entsprechend die Pfade und Benutzer an Eure Konfiguration adaptieren.

Upgrade durchführen

Als Admin an der NC Instanz anmelden, dann unter Einstellungen -> Übersicht -> Version geht es los.
Ich hatte das Upgrade nicht via Kommandozeile, sondern grafisch durchgeführt. Das lief erstaunlich geschmeidig durch und dauerte keine zehn Minuten.

Anmeldung und Dashboard

Nach der Anmeldung landet man im Dashboard. Eine der großen Neuerungen von Nextcloud 20. Ein Bilck unter Einstellungen -> Übersicht informiert uns ob noch Nacharbeiten nötig sind, was in meinem Fall auch zutreffend war.

Nacharbeiten

Dieser Teil ist individuell. Was bei mir gelistet war, kann bei Dir anders sein. Vielleicht hast Du mehr oder weniger aufgelistet. Je nachdem musst Du hier etwas recherchieren. Ich gehe kurz auf die bei mir anstehenden Tätigkeiten ein:

In der Datenbank fehlen einige Indizes. Auf Grund der Tatsache, dass das Hinzufügen von Indizes in großen Tabellen einige Zeit in Anspruch nehmen kann, wurden diese nicht automatisch erzeugt. Durch das Ausführen von “occ db:add-missing-indices” können die fehlenden Indizes manuell hinzugefügt werden, während die Instanz weiter läuft. Nachdem die Indizes hinzugefügt wurden, sind Anfragen auf die Tabellen normalerweise schneller.

Fehlender Index "cards_abiduri" in der Tabelle "oc_cards".

Lösung:
cd /var/www/nextcloud
sudo -u www-data php occ db:add-missing-indices

In der Datenbank fehlen einige Primärschlüssel. Aufgrund der Tatsache, dass das Hinzufügen von Primärschlüsseln bei großen Tabellen einige Zeit dauern konnte, wurden sie nicht automatisch hinzugefügt. Durch Ausführen von “occ db:add-missing-primary-keys” können diese fehlenden Primärschlüssel manuell hinzugefügt werden, während die Instanz weiter läuft.

Fehlender Primärschlüssel auf Tabelle "oc_federated_reshares".
Fehlender Primärschlüssel auf Tabelle "oc_systemtag_object_mapping".
Fehlender Primärschlüssel auf Tabelle "oc_comments_read_markers".
Fehlender Primärschlüssel auf Tabelle "oc_collres_resources".
Fehlender Primärschlüssel auf Tabelle "oc_collres_accesscache".
Fehlender Primärschlüssel auf Tabelle "oc_filecache_extended".

Lösung:
cd /var/www/nextcloud
sudo -u www-data php occ db:add-missing-primary-keys

Bei einigen Spalten in der Datenbank fehlt eine Konvertierung in big int. Aufgrund der Tatsache, dass das Ändern von Spaltentypen bei großen Tabellen einige Zeit dauern kann, wurden sie nicht automatisch geändert. Durch Ausführen von “occ db:convert-filecache-bigint” können diese ausstehenden Änderungen manuell übernommen werden. Diese Operation muss ausgeführt werden, während die Instanz offline ist. Weitere Einzelheiten finden Sie auf der zugehörigen Dokumentationsseite.

federated_reshares.share_id
share_external.id
share_external.parent

Lösung:

cd /var/www/nextcloud/
sudo -u www-data php occ maintenance:mode --on

Apache stoppen
sudo service apache2 stop

Konvertieren
sudo -u www-data php occ db:convert-filecache-bigint

Apache starten
sudo service apache2 start

Maintenance Modus aus

cd /var/www/html/nextcloud/
sudo -u www-data php occ maintenance:mode --off

Das alte serverseitige Verschlüsselungsformat ist aktiviert. Wir empfehlen, es zu deaktivieren. Für weitere Einzelheiten sehen Sie bitte in die Dokumentation.

https://docs.nextcloud.com/server/20/admin_manual/configuration_files/encryption_migration.html

Testen
sudo -u www-data php occ encryption:scan:legacy-format

Hier hatte ich keinen weiteren Handlungsbedarf.

Fazit

Der Sprung auf Version 20 verlief problemlos. Leider sind immer Nacharbeiten nötig. Damit muss man immer rechnen. Wer die Instanz selbst betreibt, muss auch selbst ran. Wer das nicht mag, sollte lieber eine managed Nextcloud instanz bei einem Anbieter buchen. Da wird das abgenommen.

Diese Nextcloud Instanz hat nun schon mehrere Versionssprünge hinter sich. Es lief immer klaglos, allerdings waren auch immer Nacharbeiten nötig. Da dies auf Debian läuft, waren auch beim Versionswechsel von Stretch auf Buster Tätigkeiten nötig. Aber auch bei den Versionssprüngen fehlen hinterher eigentlich immer ein paar Indexes oder Schlüssel. Die Lösung bzw. die Syntax steht dabei, sodass das Risiko gering ist aber der Aufwand halt nunmal nötig.

Insgesamt war der Aufwand überschaubar und hielt sich in Grenzen. Ich bereue den Wechsel nicht und bin mit Nextcloud 20 sehr zufrieden. Mit dieser Instanz ist nun die letzte meiner Instanzen von 19 auf 20 gehüpft. Nur Mut, es klappt schon. Aber niemals ohne Sicherung zuvor loslegen!

Hinterlasse jetzt einen Kommentar

Kommentar hinterlassen

E-Mail Adresse wird nicht veröffentlicht.


Alle Kommentare werden moderiert. bitte beachtet die Regeln. Vielen Dank!