13 Januar 2019

Nextcloud - Fehler: BigInt (64bit) identifiers

Beim Update kommt es hin und wieder zu diesem Fehler:
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.
Auf den offiziellen Seiten gibt es dazu folgenden Hinweis:

BigInt (64bit) Identifikatoren

Seit Nextcloud 13 werden große Ganzzahlen verwendet, um Identifikatoren und Auto-Inkrement-Schlüssel in der Datenbank zu speichern. Da das Ändern von Spalten in großen Tabellen eine ganze Weile dauern kann (bis zu Stunden oder Tage), hat das Update von Nextcloud 12 oder früher diese Migration nicht auf den Filecache und die Aktivitätstabelle durchgeführt.

Um es einfach zu machen, das Update auch auf diese Tabellen zu erzwingen, haben wir einen Konsolenbefehl hinzugefügt, mit dem die restlichen Spalten nach bigints migriert werden können.

Der Befehl kann sicher ausgeführt werden. Es wird eine Erfolgsmeldung angezeigt, wenn es nichts zu tun gibt:
sudo -u www-data./occ db:convert-filecache-bigint
Alle Tabellen sind bereits auf dem neuesten Stand!

oder anderweitig um Bestätigung bitten, bevor Sie die schweren Aktionen durchführen:
sudo -u www-data./occ db:convert-filecache-bigint
Dies kann bis zu Stunden dauern, abhängig von der Anzahl der Dateien in Ihrer Instanz! Mit der Konvertierung fortfahren (y/n)? [n]

Hinweis Ähnlich wie bei einem normalen Update sollten Sie Ihren Apache oder Nginx-Server herunterfahren oder den Wartungsmodus aktivieren, bevor Sie den Befehl ausführen, um Probleme mit Ihren Synchronisierungs-Clients zu vermeiden.

2 Kommentare:

Thomas Kujawa hat gesagt…

Wartungsmodus / Maintenance mode

maintenance:mode sperrt die Sitzungen der angemeldeten Benutzer und verhindert neue Anmeldungen, um Inkonsistenzen Ihrer Daten zu vermeiden. Sie müssen occ als HTTP-Benutzer ausführen, wie in diesem Beispiel unter Ubuntu Linux:

$ sudo -u www-data php occ maintenance:mode --on

Sie können Ihren Server auch in diesen Modus versetzen, indem Sie config/config.php bearbeiten.

Ändern Sie "maintenance" => false auf "maintenance" => true

Vergiss nicht, ihn wieder auf false zu setzen, wenn du fertig bist.

Thomas Kujawa hat gesagt…

Ja, wir haben keinen SSH Zugang und können somit keine sudo Befehle ausführen.

Wie wir das machen, habe ich im neuen Blogbeitrag

https://blondiedenkt.blogspot.com/2019/02/warnung-nach-update-bei-nextcloud-ohne.html

beschrieben.

Beliebte Posts