Comment optimiser en toute sécurité les index de la base de données ownCloud 10

Un affichage lent des dossiers ownCloud, une synchronisation retardée ou une tâche cron de longue durée peuvent indiquer un goulot d'étranglement au niveau de la base de données. Cependant, l'ajout d'index sans précaution peut nuire à la fiabilité du serveur. Dans ownCloud Server 10, il est recommandé de commencer par vérifier la version exacte et la base de données, de sauvegarder l'instance, puis d'appliquer uniquement les modifications de schéma documentées pour cette version d'ownCloud. Les index facilitent les recherches et les jointures sélectives ; ils consomment également de l'espace de stockage et augmentent la charge de travail des insertions et des mises à jour.

Il existe une distinction importante entre les versions : la documentation officielle actuelle d’ownCloud Server 10.16 décrit les opérations de base de données telles que la conversion, mais ne mentionne pas de db:add-missing-indicescommande de réparation générale. Cette commande figure dans la documentation de Nextcloud, qui est un produit distinct. Vérifiez les commandes sur votre propre serveur avant d’exécuter une commande copiée depuis un autre projet.

Un terminal Linux situé dans le répertoire d'installation d'ownCloud affiche la commande occ status ainsi que les champs d'état d'installation et de maintenance.
Cette occ statuscommande confirme que l'interface de ligne de commande atteint l'installation ownCloud avant le début des opérations sur la base de données.

Ce qu'un index de base de données peut — et ne peut pas — corriger

Un index de base de données est une structure auxiliaire qui permet à la base de données de localiser les lignes correspondantes sans parcourir l'intégralité de la table. Il peut améliorer une requête qui filtre, joint ou trie sur des colonnes indexées lorsque la requête et la distribution des données rendent cet index utile. Il ne s'agit pas d'un mécanisme général de gain de vitesse : l'optimiseur de base de données peut choisir judicieusement de parcourir l'intégralité de la table pour les petites tables ou les requêtes qui renvoient une grande partie des lignes.

Les index ont également un coût. Ils occupent de l'espace disque, nécessitent une maintenance lors de la modification des lignes et peuvent ralentir les opérations d'écriture intensives. L'ajout d'index supplémentaires sur les tables principales d'ownCloud peut engendrer des conflits avec les migrations de schéma ou les exigences des applications. N'ajoutez pas d'index simplement parce qu'un nom de colonne semble important ; identifiez d'abord la requête lente et vérifiez que le plan d'exécution est effectivement inefficace.

1. Confirmez la configuration d'ownCloud et la base de données.

Exécutez les commandes depuis le répertoire d'installation d'ownCloud en tant que compte serveur web. Sur une installation Debian ou Ubuntu standard, ce compte estwww-data :

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

Utilisez le chemin d'accès et le compte de service configurés sur votre hôte. Dans Docker, utilisez la syntaxe de commande documentée du conteneur ; par exemple, le manuel ownCloud utilise ` npm install ownCloud` docker compose exec owncloud occ …. Le résultat de la commande indique la version d'ownCloud et le type de base de données. La liste des commandes affiche les fonctionnalités prises en charge par cette installation ; si une commande de réparation de base de données n'y figure pas, les instructions Nextcloud ne s'appliquent pas.

Consultez la vue d'ensemble de l'administration d'ownCloud pour détecter les avertissements de configuration et notez les noms exacts des tables et des index si un index est manquant. Notez également les éléments lents : une recherche de fichier, une page de partage, une tâche en arrière-plan ou une opération de synchronisation. Une plainte vague comme « ownCloud est lent » ne justifie pas une modification du schéma.

Un terminal situé dans le répertoire d'installation d'ownCloud affiche la commande « occ list » et un rappel invitant à consulter les commandes disponibles dans cette installation.
Utilisez la occliste des commandes installées comme vérification de version ; la disponibilité des commandes peut différer entre ownCloud et Nextcloud.

2. Sauvegardez vos données avant de modifier la structure de la base de données.

Avant toute création d'index, migration ou réparation de base de données, effectuez une sauvegarde complète de la base de données et de la configuration ownCloud, et assurez-vous de savoir comment les restaurer. Le guide de sauvegarde ownCloud recommande d'activer le mode maintenance avant d'effectuer une sauvegarde de la base de données. La commande exacte de sauvegarde dépend du système de gestion de bases de données utilisé : MySQL, MariaDB, PostgreSQL ou SQLite. Utilisez les outils correspondants et protégez vos identifiants et vos fichiers de sauvegarde.

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

Le mode maintenance empêche toute utilisation normale pendant la maintenance ; prévoyez une fenêtre de maintenance pour la production. Ne copiez pas un fichier de base de données en production au lieu d'une sauvegarde compatible avec la base de données. Une fois les travaux et les vérifications de base terminés, rétablissez le mode normal de l'instance.

sudo -u www-data php occ maintenance:mode --off
Une liste de contrôle du terminal répertorie le mode de maintenance, la sauvegarde de la base de données et de la configuration, et confirme la procédure de restauration avant toute modification de la base de données.
Avant de tenter une modification d'index ou de schéma, assurez-vous de disposer d'une base de données et d'une sauvegarde de configuration restaurables.

3. Utilisez les migrations gérées par ownCloud pour les modifications du schéma ownCloud

Commencez par mettre à jour ownCloud et ses applications compatibles vers une version prise en charge en suivant les instructions de mise à niveau officielles et les notes de version. Les mises à niveau d'ownCloud effectuent des migrations de base de données qui font évoluer le schéma, y ​​compris les modifications requises par le noyau et les applications. Il est recommandé d'exécuter la procédure de mise à niveau de la base de données en entier occpour les systèmes importants, car une requête web peut expirer.

Si l'aperçu de l'administrateur signale toujours un index manquant, consultez sudo -u www-data php occ listla documentation officielle correspondant à votre version d'ownCloud. Certains guides tiers mentionnent db:add-missing-indicescette commande, mais elle n'est pas documentée dans la section relative aux commandes de base de données d'ownCloud 10.16 examinée dans cet article. Si votre version mentionne cette commande, consultez son aide locale et confirmez la procédure auprès de la documentation ou du fournisseur de l'application avant de l'exécuter. Si la commande est absente, n'installez pas de commande Nextcloud, ne modifiez pas manuellement les tables principales d'ownCloud et ne copiez pas de code SQL depuis une autre version. Communiquez l'avertissement, la version d'ownCloud, le type de base de données et les journaux pertinents à ownCloud ou au responsable de l'application.

Les commandes de base de données présentées dans le manuel ownCloud (telles que ` conversion` db:convert-typeou ` db:convert-mysql-charsetconversion`) servent à des tâches de conversion spécifiques ; ce ne sont pas des commandes génériques d’optimisation d’index. N’utilisez pas une commande de conversion pour tenter d’améliorer la vitesse des requêtes.

4. Analyser une requête lente à l'aide d'outils natifs de la base de données

Lorsque vous identifiez une requête SQL lente, utilisez les outils d'analyse fournis par votre base de données. MySQL et MariaDB proposent EXPLAIN`pip`, PostgreSQL également EXPLAIN, avec ses propres options et résultats. Commencez par un plan d'exécution qui explique la requête sans l'exécuter. Soyez prudent avec l'option `analyze` : certaines variantes de bases de données exécutent l'instruction, ce qui peut s'avérer risqué pour les écritures ou coûteux sur une base de données de production fortement sollicitée.

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

Vérifiez si le plan d'exécution lit beaucoup plus de lignes que celles renvoyées par la requête, si l'index attendu est pris en compte et si le tri ou la jointure prédomine. Un index non sélectionné par l'optimiseur n'est pas automatiquement manquant : si la requête renvoie de nombreuses lignes, une analyse complète peut s'avérer plus économique. Comparez la même charge de travail sur une copie de test représentative avant d'apporter des modifications spécifiques à la base de données. Le SQL et la structure des tables d'OwnCloud peuvent évoluer d'une version à l'autre ; un index qui semble utile aujourd'hui peut devenir redondant ou dangereux après une mise à niveau.

Un terminal de base de données affiche une instruction EXPLAIN pour une requête sur la table de cache de fichiers ownCloud et un rappel invitant à examiner le plan avec les outils du fournisseur de base de données.
Consultez le plan d'exécution spécifique à la base de données pour la requête réellement lente avant d'envisager un index personnalisé.

5. Revérifiez le symptôme initial

Une fois la migration prise en charge ou la réparation d'index approuvée terminée, consultez à nouveau la vue d'ensemble de l'administrateur ownCloud et examinez les journaux du serveur et de la base de données pour détecter les erreurs. Répétez l'action utilisateur ou la tâche en arrière-plan qui était lente, en utilisant un volume de données et des conditions similaires. Comparez le temps de réponse, l'utilisation du processeur ou des E/S de la base de données, ainsi que le nombre de lignes examinées lorsque votre base de données fournit ces mesures. Ne signalez pas d'amélioration des performances suite à un seul test mineur ou au chargement d'une page sans rapport avec le problème.

Si l'avertissement disparaît mais que l'action reste lente, le goulot d'étranglement se situe probablement ailleurs : latence du stockage, processus PHP, allers-retours réseau, arriérés de tâches cron, verrouillage de fichiers ou mise en cache en mémoire. ownCloud recommande la mise en cache en mémoire et le verrouillage de fichiers transactionnels externes pour réduire la charge de la base de données. Ces paramètres concernent des opérations différentes de celles d'un index de base de données ; configurez-les donc conformément au manuel officiel et à votre topologie de déploiement.

Liste de contrôle rapide

  • Consignez la version d'ownCloud, le type de base de données, l'action concernée et tout avertissement de configuration précis.
  • Vérifiez la liste des commandes installéesocc ; distinguez les instructions ownCloud de celles de Nextcloud.
  • Effectuez et vérifiez une sauvegarde cohérente de la base de données et de la configuration avant toute intervention sur le schéma.
  • Utilisez les étapes de mise à niveau et de migration d'applications ownCloud prises en charge ; ne modifiez pas manuellement les tables principales sans instructions spécifiques à la version.
  • Utilisez les outils de plan de requête du fournisseur de base de données sur la requête réellement lente, puis répétez la même charge de travail pour vérifier le résultat.

Il n'existe pas d'ensemble d'index universel permettant d'accélérer systématiquement toutes les installations d'ownCloud 10. La méthode durable consiste à maintenir à jour le schéma pris en charge, à diagnostiquer la requête réelle, à ne modifier que les éléments documentés par le fournisseur ou le responsable de la maintenance, puis à vérifier la même charge de travail par la suite.

Références officielles

Laisser un commentaire

Les 10 meilleurs outils de balayage ping pour trouver les appareils sur votre réseau

Les 10 meilleurs outils de balayage ping pour trouver les appareils sur votre réseau

Comparez 10 outils de balayage ping pour une découverte rapide du réseau local, une analyse multiplateforme et la gestion des adresses IP. Découvrez ce qu'un balayage peut – et ne peut pas – vous révéler.

6 outils de gestion de réseau performants pour le suivi des performances

6 outils de gestion de réseau performants pour le suivi des performances

Comparez six outils de gestion de réseau pour la surveillance des performances, notamment la couverture SNMP, la cartographie, les alertes, les modèles de déploiement et les compromis en matière de coûts.

Moniteur de ping : 7 outils gratuits et open source pour la disponibilité du réseau

Moniteur de ping : 7 outils gratuits et open source pour la disponibilité du réseau

Comparez sept moniteurs de ping gratuits et open source, allant des suites réseau complètes aux sondes de latence ciblées, et choisissez celui qui convient le mieux à vos besoins en matière de disponibilité, de perte de paquets et d'historique.

Meilleurs analyseurs Wi-Fi pour Windows, iOS et Android

Meilleurs analyseurs Wi-Fi pour Windows, iOS et Android

Comparez les meilleurs analyseurs Wi-Fi pour Windows, iPhone et Android, incluant des outils pour la congestion des canaux, la couverture du signal, les cartes thermiques et le dépannage réseau.

La qualité de service (QoS) dans les réseaux : définition et fonctionnement

La qualité de service (QoS) dans les réseaux : définition et fonctionnement

Découvrez ce que signifie la QoS dans le domaine des réseaux, comment les marquages ​​DSCP et les files d'attente de trafic priorisent la voix, la vidéo et les applications professionnelles, et ce que la QoS ne peut pas corriger.

Meilleur logiciel serveur SFTP pour les transferts de fichiers sécurisés

Meilleur logiciel serveur SFTP pour les transferts de fichiers sécurisés

Comparez les logiciels serveurs SFTP fiables pour Windows et Linux, notamment OpenSSH, Bitvise, SolarWinds et SFTPGo. Trouvez la solution idéale pour vos besoins en matière de sécurité et de transfert de fichiers.

Les 7 meilleurs outils de gestion d'adresses IP pour les équipes réseau

Les 7 meilleurs outils de gestion d'adresses IP pour les équipes réseau

Comparez sept outils de gestion d'adresses IP pour la découverte de sous-réseaux, la coordination DNS et DHCP, l'inventaire réseau et l'IPAM open source.

Bonnes pratiques de surveillance réseau : que surveiller et quels outils utiliser

Bonnes pratiques de surveillance réseau : que surveiller et quels outils utiliser

Mettez en place une surveillance réseau pratique avec une couverture claire des périphériques, des indicateurs de performance utiles, des alertes exploitables et une comparaison de SolarWinds NPM, PRTG et OpManager.

Les 10 meilleurs outils d'analyse réseau pour la découverte des périphériques et des adresses IP

Les 10 meilleurs outils d'analyse réseau pour la découverte des périphériques et des adresses IP

Comparez les outils d'analyse réseau pour la découverte rapide des périphériques, les analyses IP multiplateformes et la gestion des identités et des accès IP (IPAM) d'entreprise, avec des conseils pour adapter chaque option à votre réseau.

Comment utiliser Nmap pour traceroute et lire le chemin réseau

Comment utiliser Nmap pour traceroute et lire le chemin réseau

Utilisez l'option --traceroute de Nmap pour associer les sauts à un hôte autorisé, comprendre les résultats des sauts et du RTT, et résoudre les problèmes de réponses manquantes sans sur-analyse.