Hallo zusammen,
auf Anregung von @devnull stelle ich mein Thema als Extra Thread hier ein:
Wir (Verein) haben eine Nextcloud Instanz auf einem gehosteten Webspace die ich betreue. Die Kombination aus Webspace, eMail und Cloud Lösung ist für uns Ideal und wurde bewusst so entschieden. Für Updates (nur nextcloud) sind wir aber selber verantwortlich. Das hat bisher auch alles gut geklappt.
Nach dem Update auf die 22.2.5 gestern habe ich aber folgende Meldungen:
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 "fs_storage_path_prefix" in der Tabelle "nc_2094_filecache".
Fehlender Index "fs_id_storage_size" in der Tabelle "nc_2094_filecache".
Fehlender Index "properties_pathonly_index" in der Tabelle "nc_2094_properties".
Fehlender Index "job_lastcheck_reserved" in der Tabelle "nc_2094_jobs".
Aktuell habe ich noch keinen ssh User auf dem Server (geht technisch), und würde das auch gerne vermeiden. Lt. Aussage des Supports läuft der " occ db:add-missing-indices" aber wohl nur mit dem ssh User. Den an anderer Stelle vorgeschlagenen Versuch die Indizees mit einem cron job zu erstellen habe ich noch nicht unternommen, das Risiko erschien mir zu groß! Einen cron job auf die cron.php habe ich eingerichtet - läuft problemlos.
Mit phpMyAdmin komme ich an die Tabelle, kann aber aus o.g. Beschreibung der Indizees nicht ableiten auf welche Felder diese erstellt werden müssen. Ein System konnte ich nicht erkennen.
Ein Backup der Daten liegt lokal vor, ein Backup der Datenbank ((SQL Datei, 16MB → ist das schon “groß”?) habe ich auch → kann also vorausgesetzt werden. Generell habe ich Erfahrung mit ssh im eigenen Netz, würde aber auf dem Produktivsystem kein unnötiges Risiko eingehen wollen (zumal der Hoster auch aktiv auf das Risiko hinweist).
Die Fragen kann ich wie folgt beantworten:
Bei welchen Anbieter? Professionelles, bezahltes und managed webhost Paket
nextcloud Installation über den Betreiber (skript), mit eigenen Pflichten zum Update etc. (not managed)
→ meine Entscheidung, hat auch bis zum gestrigen NC Update alles super geklappt, und ich habe bewusst nextcloud statt der managed owncloud genommen
Hardware : Rechenzentrum, unbekannt
Betriebssystem: Linux 5.15.25 x86_64 (Gentoo Linux?)
Nextcloud Version: 22.2.5.1
PHP Version: 7.4.28
Welche Datenbank? MariaDBmySQLcompatible (lt. Hoster! mysql 10.2.36 lt. issue template)
Es gibt eine neue Version der App OCC Web. Die kannst du innerhalb von NC aus dem Appstore saugen und dann damit hoffentlich die Kommandozeile emulieren (aus NC heraus) - dann sollte es möglich sein, die fehlenden Indices mithilfe des bekannten Kommandos nachzutragen.
Im Übrigen sollte der Befehl nicht unter dem SSH-User ausgeführt werden sondern mit dem WEB-User (oftmals ist das www-data:www-data). Versuch macht kluch ;-D
@JimmyKater
Danke für die Info, dass es eine neue Version der App OCC Web gibt. Das wird bestimmt einige Leute hier freuen. Das ist natürlich die weit bessere Lösung als direkt in der Datenbank etwas zu ändern.
Im genannten Fall reicht wahrscheinlich in OCC Web folgende Eingabe:
db:add-missing-indices
SSH-User vs. Webserver-User:
Ich kenne das bei einigen Hosting-Providern so, dass die Webserver- und damit Nextcloud-Instanz unter der eigenen Benutzerkennung läuft. Damit fällt dann das sudo -u www-data weg.
Super dass war es, hat sofort und funktioniert. Danke für den Tipp. Vielleicht einfach die App statt den kryptischen Befehl und den Verweis auf sudo, ssh, usw. in den Check einbauen
Edith hat einen kleinen Nachtrag : Nach dem was die App alles kann müsste ja mit Wartungsmodus usw. auch das Backup deutlich einfacher werden > Wäre das nicht was für ein HowTo? Ich kenne mich leider zu wenig aus, um das anzugehen, sonst würde ich selber loslegen…
Schönes WE
//hufnala
Kenne jetzt die OCC Web App nicht, aber bei eingeschaltetem Nextcloud-Wartungsmodus funktionieren üblicherweise die Nextcloud Apps nicht mehr, also möglicherweise auch OCC Web nicht…
@JMLatNC@hufnala
Ich denke auch, dass beim Wartunsmodus auch OCC Web nicht mehr funktioniert.
Der Wartungsmodus kann aber wohl manuell aktiviert und deaktiviert werden. Also somit ist dann nicht alles verloren. Also falls es mal jemand benötigt:
config/config.php:
'maintenance' => true,
oder
'maintenance' => false,
Trotz OCC Web und dieser Möglichkeit rate ich weiterhin vom Einsatz von Nextcloud auf einen normalen Webserver ab. Ich glaube wirklich glücklich wird man damit nicht.
Im übrigen würde ich ein Upgrade dann zur nächsten Version erst machen, wenn auch OCC Web für die neue Version bereitsteht.
diese Aussage trifft nach wie vor zu und du siehst, was mit “glücklich wird man damit nicht” gemeint ist.
Eine Alternative, die mir dazu einfällt (wurde auch hier schon ca 100x besprochen): richte einen Cronjob ein (einmalige Ausführung), der den besagten Befehl (Langform, s. o.) für dich ausführt.
Du hast recht, die Routine vergisst das auch nicht… sie sagt dir ganz genau, dass der Befehl nicht automatisch ausgeführt wird, weil das bei großen Installationen leicht auch mal mehrere Stunden andauern kann (und die NC dann steht).
Du solltest dir noch mal dringend überlegen, ob du deine shared hosted-NC nicht wenigstens zu einem Hoster umziehst, der dich auf die Bash zugreifen lässt (Sparsamkeit in allen Ehren!)