Nextcloud Index manquants

Quelque chose ne fonctionne pas alors qu'il vous semble que le soucis ne vient pas de vous ? Vous avez des questions sur nos services et vous pensez que vos préoccupation peuvent intéresser d'autres hébergés ? N'hésitez pas à nous contacter.
Eric-jr
Messages : 38
Inscription : 6 juin 2018 à 19:55

Bonjour,

Dans mon Nextcloud 21.0.4, j'ai quelques erreurs dans la base de données (page Adminstration/Vue d'ensemble) :
La base de données a quelques index manquants. L'ajout d'index dans de grandes tables peut prendre un certain temps. Elles ne sont donc pas ajoutées automatiquement. En exécutant "occ db:add-missing-indices", ces index manquants pourront être ajoutés manuellement pendant que l'instance continue de tourner. Une fois les index ajoutés, les requêtes sur ces tables sont généralement beaucoup plus rapides.

Index "fs_size" manquant dans la table "oc_filecache".
Index "cards_abiduri" manquant dans la table "oc_cards".

Il manque des clés primaires dans la base de données. En raison du fait que l’ajout de clés primaires sur les grandes tables peut prendre un certain temps, elles n’ont pas été ajoutées automatiquement. En exécutant "occ db:add-missing-primary-keys", ces clés primaires manquantes peuvent être ajoutées manuellement pendant que l’instance continue de fonctionner.

Clé primaire manquante sur la table "oc_federated_reshares".
Clé primaire manquante sur la table "oc_systemtag_object_mapping".
Clé primaire manquante sur la table "oc_comments_read_markers".
Clé primaire manquante sur la table "oc_collres_resources".
Clé primaire manquante sur la table "oc_collres_accesscache".
Clé primaire manquante sur la table "oc_filecache_extended".

Certaines colonnes de la base de données n'ont pas été converties en big int. Changer le type de colonne dans de grandes tables peu prendre beaucoup de temps, elles n'ont donc pas été converties automatiquement. En exécutant 'occ db:convert-filecache-bigint' ces changements en suspens peuvent être déclenchés manuellement. Cette opération doit être exécutée pendant que l'instance est hors ligne. Pour plus d'information, consulter la page de la documentation.

federated_reshares.share_id
share_external.id
share_external.parent
Comment corriger ?
Bonne journée,

Éric HOFFMANN
Éric HOFFMANN
Avatar de l’utilisateur
Elodie
Fondatrice / Responsable
Fondatrice / Responsable
Messages : 7937
Inscription : 2 avril 2010 à 20:14

Bonjour,

Afin de lancer des commandes PHP cli chez FSH et utiliser "occ" de Nextcloud, vous pouvez soit utiliser shell_exec() de PHP ou encore mieux utiliser un Shell PHP tel que par exemple https://github.com/flozz/p0wny-shell en protégeant son répertoire à l'aide d'un contrôle d'accès par IP ou encore mieux par mot de passe à l'aide d'un fichier .htaccess.

Surtout, ne laissez pas accessible le shell PHP sur Internet, car n'importe qui pourrai faire n'importe quoi comme par exemple voler/supprimer vos données. Ce Shell PHP va simuler la présence d'un accès SSH à votre espace de travail.

En Shell PHP, vous allez pouvoir exécuter des commandes, par exemple :

php7.4 occ db:add-missing-indices
php7.4 occ db:add-missing-primary-keys
php7.4 occ db:convert-filecache-bigint

Attendez le résultat d'exécution de la commande avant d'en exécuter une seconde.

Vous pouvez aussi passer par une tâche planifiée CLI ( https://www.franceserv.fr/gestion/heber ... planifiees ) en définissant l'exécution pour la minute suivante, mais pensez à supprimer la tâche une fois l'opération effectuée pour qu'elle ne se relance pas à nouveau automatiquement. Mais le mieux reste le Shell PHP pour avoir le résultat de la commande.

Si vous avez un besoin de plus de précisions, n'hésitez pas à revenir vers moi.
Vous avez une question ? Posez-la de préférence sur le forum et si ça demande un contact plus instantané, n'hésitez pas à vous rendre sur le t'chat IRC. Si votre question est personnelle, contactez-nous directement.
Eric-jr
Messages : 38
Inscription : 6 juin 2018 à 19:55

Merci pour votre retour !
Dans le gestionnaire des taches planifiées, je suppose qu'il faut choisir PHP-CLI.
Dans le champ 'Ligne de commande', je rentre la commande occ (par exemple "occ db:add-missing-indices") ?
Comment sait-on que l'exécution de la commande est terminée ?
Éric HOFFMANN
Avatar de l’utilisateur
Elodie
Fondatrice / Responsable
Fondatrice / Responsable
Messages : 7937
Inscription : 2 avril 2010 à 20:14

Eric-jr a écrit : 27 octobre 2021 à 18:01 Comment sait-on que l'exécution de la commande est terminée ?
On ne le sait pas directement, surement via NextCloud ou en redirigeant la sortie dans un fichier. Mais c'est pour ça que je recommande le Shell PHP.
Vous avez une question ? Posez-la de préférence sur le forum et si ça demande un contact plus instantané, n'hésitez pas à vous rendre sur le t'chat IRC. Si votre question est personnelle, contactez-nous directement.
Répondre