So optimieren Sie ownCloud 10-Datenbankindizes sicher

Eine langsame Auflistung der ownCloud-Ordner, verzögerte Synchronisierung oder ein langlaufender Cronjob können auf einen Datenbankengpass hindeuten. Das unüberlegte Hinzufügen von Indizes kann jedoch die Serverzuverlässigkeit beeinträchtigen. In ownCloud Server 10 empfiehlt es sich, zunächst die genaue Version und Datenbank zu überprüfen, die Instanz zu sichern und anschließend nur die für diese ownCloud-Version dokumentierten Schemaänderungen zu verwenden. Indizes erleichtern zwar selektive Suchen und Verknüpfungen, belegen aber auch Speicherplatz und erhöhen den Aufwand bei Einfüge- und Aktualisierungsvorgängen.

Es gibt einen wichtigen Versionsunterschied: Die aktuelle offizielle ownCloud Server 10.16-Befehlsreferenz beschreibt Datenbankoperationen wie die Datenbankkonvertierung, jedoch keinen allgemeinen db:add-missing-indicesReparaturbefehl. Dieser Befehl ist in der Nextcloud-Dokumentation zu finden, einem separaten Produkt. Überprüfen Sie die Befehle auf Ihrem eigenen Server, bevor Sie einen aus einem anderen Projekt kopierten Befehl ausführen.

Ein Linux-Terminal im ownCloud-Installationsverzeichnis zeigt den Befehl occ status sowie die Felder für den Installations- und Wartungsstatus an.
Der occ statusBefehl bestätigt, dass die CLI die ownCloud-Installation erreicht, bevor die Datenbankarbeit beginnt.

Was ein Datenbankindex beheben kann – und was nicht.

Ein Datenbankindex ist eine Hilfsstruktur, die der Datenbank hilft, übereinstimmende Zeilen zu finden, ohne die gesamte Tabelle durchsuchen zu müssen. Er kann die Ausführungsgeschwindigkeit von Abfragen verbessern, die nach indizierten Spalten filtern, verknüpfen oder sortieren, wenn die Abfrage und die Datenverteilung den Index sinnvoll machen. Er ist kein allgemeiner Geschwindigkeitsregler: Der Datenbankoptimierer kann bei kleinen Tabellen oder Abfragen, die einen großen Anteil der Zeilen zurückgeben, auch einen Tabellenscan korrekt durchführen.

Indizes verursachen auch Kosten. Sie belegen Speicherplatz, müssen bei Änderungen an Zeilen aktualisiert werden und können schreibintensive Prozesse verlangsamen. Zusätzliche Indizes in ownCloud-Kerntabellen können zu Konflikten mit Schema-Migrationen oder Anwendungserwartungen führen. Fügen Sie keinen Index hinzu, nur weil ein Spaltenname wichtig erscheint; identifizieren Sie zuerst die langsame Anfrage und prüfen Sie, ob der tatsächliche Abfrageplan ineffizient ist.

1. Bestätigen Sie den ownCloud-Build und die Datenbank.

Führen Sie Befehle aus dem ownCloud-Installationsverzeichnis als Webserver-Konto aus. Bei einer typischen Debian- oder Ubuntu-Installation ist dieses Konto www-data:

cd /var/www/owncloud
sudo -u www-data php occ status
sudo -u www-data php occ list

Verwenden Sie den auf Ihrem Host konfigurierten Pfad und das Dienstkonto. Verwenden Sie in Docker die dokumentierte Befehlsform des Containers – beispielsweise verwendet das ownCloud-Handbuch die entsprechende Befehlsform docker compose exec owncloud occ …. Die Statusausgabe zeigt die ownCloud-Version und den Datenbanktyp an. Die Befehlsliste zeigt, welche Funktionen diese Installation tatsächlich unterstützt. Wenn ein Befehl zur Datenbankreparatur nicht aufgeführt ist, gelten die Nextcloud-Anweisungen nicht.

Prüfen Sie die Administratorübersicht von ownCloud auf Einrichtungswarnungen und notieren Sie sich die genauen Tabellen- und Indexnamen, falls ein fehlender Index gemeldet wird. Dokumentieren Sie außerdem, was langsam ist: eine bestimmte Dateisuche, eine Freigabeseite, ein Hintergrundprozess oder ein Synchronisierungsvorgang. Eine vage Beschwerde wie „ownCloud ist langsam“ reicht nicht aus, um eine Schemaänderung zu rechtfertigen.

Ein Terminal im ownCloud-Installationsverzeichnis zeigt „occ list“ und einen Hinweis darauf, die in dieser Installation verfügbaren Befehle zu überprüfen.
Verwenden Sie die Liste der installierten occBefehle als Versionsprüfung; die Befehlsverfügbarkeit kann zwischen ownCloud und Nextcloud unterschiedlich sein.

2. Vor Änderungen an den Datenbankstrukturen unbedingt ein Backup erstellen.

Vor der Erstellung eines Indexes, der Migration oder Reparatur einer Datenbank sollten Sie unbedingt eine konsistente Sicherung der Datenbank und der ownCloud-Konfiguration erstellen und sich mit der Wiederherstellung vertraut machen. Die ownCloud-Sicherungsanleitung empfiehlt, vor der Datenbanksicherung den Wartungsmodus zu aktivieren. Der genaue Befehl zum Erstellen eines Datenbank-Dumps hängt davon ab, ob der Server MySQL, MariaDB, PostgreSQL oder SQLite verwendet. Nutzen Sie die entsprechenden Tools des Datenbankanbieters und schützen Sie Ihre Zugangsdaten und Sicherungsdateien.

sudo -u www-data php occ maintenance:mode --on
# Back up the database and ownCloud configuration with your vendor's procedure
# Confirm that the backup can be restored before proceeding

Der Wartungsmodus verhindert den normalen Betrieb während der Wartungsarbeiten; planen Sie ein Wartungsfenster für den Produktivbetrieb ein. Kopieren Sie keine Live-Datenbankdatei als Ersatz für eine datenbankbezogene Sicherung. Sobald die Arbeiten und grundlegenden Prüfungen abgeschlossen sind, stellen Sie die Instanz wieder in den Normalmodus zurück.

sudo -u www-data php occ maintenance:mode --off
Eine Terminal-Checkliste listet den Wartungsmodus, die Sicherung der Datenbank und der Konfiguration sowie die Bestätigung des Wiederherstellungsverfahrens vor Datenbankänderungen auf.
Bevor Sie eine Index- oder Schemaänderung vornehmen, sollten Sie eine wiederherstellbare Datenbank- und Konfigurationssicherung erstellen.

3. Verwenden Sie die von ownCloud verwalteten Migrationen für ownCloud-Schemaänderungen.

Aktualisieren Sie ownCloud und die zugehörigen Apps zunächst auf eine unterstützte Version, indem Sie die offiziellen Upgrade-Anweisungen und Versionshinweise befolgen. ownCloud-Upgrades führen Datenbankmigrationen durch, die das Schema aktualisieren und die für den Kern und die Apps erforderlichen Änderungen beinhalten. Die offizielle Anleitung empfiehlt, den Datenbank-Upgrade-Schritt occfür größere Systeme durchzuführen, da es bei Webanfragen zu Timeouts kommen kann.

Wenn die Administratorübersicht weiterhin einen fehlenden Index meldet, überprüfen Sie sudo -u www-data php occ listdie entsprechende offizielle Dokumentation für Ihre spezifische ownCloud-Version. Einige Anleitungen von Drittanbietern erwähnen db:add-missing-indicesden Befehl `npm install`, dieser ist jedoch im Abschnitt über Datenbankbefehle für ownCloud 10.16, der für diesen Artikel untersucht wurde, nicht dokumentiert. Falls Ihre Version diesen Befehl enthält, lesen Sie die zugehörige Hilfe und bestätigen Sie die Vorgehensweise anhand der Dokumentation oder des App-Anbieters für diese Version, bevor Sie ihn ausführen. Falls der Befehl fehlt, installieren Sie keinen Nextcloud-Befehl, bearbeiten Sie die ownCloud-Kerntabellen nicht manuell und kopieren Sie keine SQL-Anweisungen aus einer anderen Version. Teilen Sie ownCloud oder dem App-Betreuer die Warnung, die ownCloud-Version, den Datenbanktyp und die relevanten Protokolle mit.

Die im ownCloud-Handbuch aufgeführten Datenbankbefehle – wie beispielsweise `convert` db:convert-typeoder db:convert-mysql-charset`index.txt` – dienen spezifischen Konvertierungsaufgaben; sie sind keine allgemeinen Befehle zur Indexoptimierung. Verwenden Sie einen Konvertierungsbefehl nicht, um die Abfragegeschwindigkeit zu verbessern.

4. Untersuchen Sie eine langsame Abfrage mit datenbankeigenen Tools.

Wenn Sie eine langsame SQL-Abfrage identifizieren können, verwenden Sie die Analysetools Ihrer Datenbank. MySQL und MariaDB bieten `sql.column` EXPLAIN; PostgreSQL bietet ebenfalls ` EXPLAINsql.column` mit eigener Ausgabe und Optionen. Beginnen Sie mit einem Ausführungsplan, der die Abfrage erklärt, ohne sie auszuführen. Seien Sie vorsichtig mit der Option `analyze`: Einige Datenbankvarianten führen die `sql.column`-Anweisung aus, was beim Schreiben unsicher oder in einer stark ausgelasteten Produktionsdatenbank ressourcenintensiv sein kann.

EXPLAIN SELECT ... FROM oc_filecache WHERE ...;

Prüfen Sie, ob der Ausführungsplan deutlich mehr Zeilen liest, als die Abfrage zurückgibt, ob der erwartete Index berücksichtigt wird und ob Sortierung oder Joins den größten Teil der Arbeit ausmachen. Ein vom Optimierer nicht ausgewählter Index fehlt nicht automatisch: Wenn die Abfrage viele Zeilen zurückgibt, kann ein Scan effizienter sein. Vergleichen Sie dieselbe Arbeitslast auf einer repräsentativen Testumgebung, bevor Sie datenbankspezifische Änderungen vornehmen. OwnCloud Core-SQL und Tabellenlayouts können sich mit jeder neuen Version ändern. Daher kann ein Index, der heute nützlich erscheint, nach einem Upgrade überflüssig oder unsicher werden.

Ein Datenbankterminal zeigt eine EXPLAIN-Anweisung für eine Abfrage der ownCloud-Dateicache-Tabelle und einen Hinweis darauf, den Ausführungsplan mit Tools des Datenbankanbieters zu überprüfen.
Bevor Sie einen benutzerdefinierten Index in Betracht ziehen, sollten Sie den datenbankspezifischen Abfrageplan für die tatsächlich langsame Abfrage prüfen.

5. Überprüfen Sie das ursprüngliche Symptom erneut.

Nach Abschluss einer unterstützten Migration oder einer genehmigten Indexreparatur überprüfen Sie erneut die ownCloud-Administratorübersicht und die Server- und Datenbankprotokolle auf Fehler. Wiederholen Sie die langsame Benutzeraktion oder den Hintergrundprozess mit ähnlichem Datenvolumen und unter vergleichbaren Bedingungen. Vergleichen Sie Antwortzeit, CPU- und E/A-Auslastung der Datenbank sowie die Anzahl der untersuchten Zeilen, sofern Ihre Datenbank diese Messwerte bereitstellt. Melden Sie keine Leistungsverbesserungen aufgrund eines einzelnen kleinen Tests oder eines nicht relevanten Seitenaufrufs.

Wenn die Warnung verschwunden ist, die gleiche Aktion aber weiterhin langsam ist, liegt der Flaschenhals möglicherweise woanders: Speicherlatenz, PHP-Worker, Netzwerk-Roundtrips, Cron-Backlog, Dateisperrungen oder Speichercaching. ownCloud empfiehlt Speichercaching und externe transaktionale Dateisperrungen, um die Datenbanklast zu reduzieren. Diese Einstellungen betreffen andere Aufgaben als ein Datenbankindex. Konfigurieren Sie sie daher gemäß dem offiziellen Handbuch und Ihrer Bereitstellungstopologie.

Kurzcheckliste

  • Notieren Sie die ownCloud-Version, den Datenbanktyp, die betroffene Aktion und alle genauen Konfigurationswarnungen.
  • Überprüfen Sie die occListe der installierten Befehle; unterscheiden Sie ownCloud-Anweisungen von Nextcloud-Anweisungen.
  • Erstellen und überprüfen Sie vor der Schema-Arbeit eine konsistente Sicherung der Datenbank und der Konfiguration.
  • Verwenden Sie die von der Versionsnummer vorgegebenen Schritte für das ownCloud-Upgrade und die App-Migration; nehmen Sie keine manuellen Änderungen an den Kerntabellen ohne versionsspezifische Anweisungen vor.
  • Verwenden Sie die Abfrageplan-Tools des Datenbankanbieters für die tatsächlich langsame Abfrage und wiederholen Sie anschließend die gleiche Arbeitslast, um das Ergebnis zu überprüfen.

Es gibt keinen universellen Indexsatz, der jede ownCloud 10-Installation beschleunigt. Der nachhaltige Ansatz besteht darin, das unterstützte Schema aktuell zu halten, die tatsächliche Abfrage zu analysieren, nur die vom jeweiligen Anbieter oder Wartungsteam dokumentierten Änderungen vorzunehmen und anschließend dieselbe Arbeitslast zu testen.

Offizielle Referenzen

Einen Kommentar hinterlassen

Die 10 besten Ping-Sweep-Tools zum Auffinden von Geräten in Ihrem Netzwerk

Die 10 besten Ping-Sweep-Tools zum Auffinden von Geräten in Ihrem Netzwerk

Vergleichen Sie 10 Ping-Sweep-Tools für die schnelle LAN-Erkennung, plattformübergreifende Scans und IP-Adressverwaltung. Erfahren Sie, was ein Sweep liefern kann – und was nicht.

Die 6 besten Netzwerkmanagement-Tools zur Leistungsüberwachung

Die 6 besten Netzwerkmanagement-Tools zur Leistungsüberwachung

Vergleichen Sie sechs Netzwerkmanagement-Tools für die Leistungsüberwachung, einschließlich SNMP-Abdeckung, Mapping, Warnmeldungen, Bereitstellungsmodelle und Kosten-Nutzen-Verhältnisse.

Die besten WLAN-Analysatoren für Windows, iOS und Android

Die besten WLAN-Analysatoren für Windows, iOS und Android

Vergleichen Sie die besten Wi-Fi-Analyseprogramme für Windows, iPhone und Android, einschließlich Tools für Kanalüberlastung, Signalabdeckung, Heatmaps und Netzwerk-Fehlerbehebung.

QoS in Netzwerken: Was Quality of Service bewirkt und wie es funktioniert

QoS in Netzwerken: Was Quality of Service bewirkt und wie es funktioniert

Erfahren Sie, was QoS in der Netzwerktechnik bedeutet, wie DSCP-Markierungen und Datenverkehrswarteschlangen Sprach-, Video- und Geschäftsanwendungen priorisieren und was QoS nicht beheben kann.

Beste SFTP-Server-Software für sichere Dateiübertragungen

Beste SFTP-Server-Software für sichere Dateiübertragungen

Vergleichen Sie zuverlässige SFTP-Server-Software für Windows und Linux, darunter OpenSSH, Bitvise, SolarWinds und SFTPGo. Finden Sie die passende Lösung für Ihre Sicherheits- und Dateitransferanforderungen.

Die 10 besten Tools zum Scannen und Analysieren drahtloser Geräte für Windows, iOS und Android

Die 10 besten Tools zum Scannen und Analysieren drahtloser Geräte für Windows, iOS und Android

Vergleichen Sie 10 Tools zum Scannen und Analysieren drahtloser Netzwerke für Windows, iOS und Android mit klaren Hinweisen zu Wi-Fi-Kanälen, Abdeckungskarten, LAN-Prüfungen und Plattformbeschränkungen.

Bewährte Methoden für die Netzwerküberwachung: Was sollte überwacht werden und welche Tools eignen sich?

Bewährte Methoden für die Netzwerküberwachung: Was sollte überwacht werden und welche Tools eignen sich?

Erstellen Sie eine praktische Netzwerküberwachung mit klarer Geräteabdeckung, nützlichen Leistungskennzahlen, umsetzbaren Warnmeldungen und einem Vergleich von SolarWinds NPM, PRTG und OpManager.

Die 7 besten IP-Adressverwaltungstools für Netzwerkteams

Die 7 besten IP-Adressverwaltungstools für Netzwerkteams

Vergleichen Sie sieben IP-Adressverwaltungstools für Subnetzerkennung, DNS- und DHCP-Koordination, Netzwerkinventarisierung und Open-Source-IPAM.

Die 10 besten Netzwerk-Scanner-Tools zur Erkennung von Geräten und IPs

Die 10 besten Netzwerk-Scanner-Tools zur Erkennung von Geräten und IPs

Vergleichen Sie Netzwerk-Scanner-Tools für die schnelle Geräteerkennung, plattformübergreifende IP-Scans und Enterprise IPAM mit Hinweisen zur Auswahl der passenden Option für Ihr Netzwerk.

Wie man Nmap für Traceroute verwendet und den Netzwerkpfad liest

Wie man Nmap für Traceroute verwendet und den Netzwerkpfad liest

Verwenden Sie die Option --traceroute von Nmap, um Hops einem autorisierten Host zuzuordnen, die Hop- und RTT-Ausgabe zu verstehen und fehlende Antworten zu beheben, ohne übermäßig zu scannen.