Vous n'êtes pas identifié(e).
Pages : 1
J'ai constaté que ma base de données a largement pris du volume. Dans mes investigations j'ai identifiée la table concernée qui posait problème.
J'ai exécuté une requête DELETE pour ne garder que les lignes de l'année en cours. Cette action a pris toute une nuit (près de 8h). J'ai pu garder 420 000 enregistrement à la suite de cette action. J'ai regardé la taille après cette action elle est à 227 Go. Depuis, plus rien, aucune action de maintenance (VACUUM , REINDEX, TRUNCATE) n'aboutit. Toutes les requêtes de tronquage , de suppression, de réindexation sur cette table rentrent dans une boucle interminable. j’arrête même sans que l'action se termine
J'ai récupéré le "relfilnode" de la table dans la table "pg_class" et quand j'ai vérifié dans le répertoire physique de la Base de données j'ai vu 227 fichiers de 1 Go chacun liés à cette table.
Je voudrais réinitialiser cette table de sorte à libérer l'espace sur le disque. Par quel moyen puis-je le faire?
Hors ligne
TRUNCATE est censé être assez rapide. Si c'est lent, il peut soit être en attente de verrous si d'autres transactions utilisent la table (c'est la première chose à vérifier), soit en attente des écritures disque.
Dans une autre session il faudrait regarder via pg_stat_activity l'état de la session qui fait le truncate, notamment les colonnes wait_event et wait_event_type.
Pour les verrous on peut aussi utiliser les requêtes suggérées ici: https://wiki.postgresql.org/wiki/Lock_Monitoring
@DanielVerite
http://blog-postgresql.verite.pro/
Hors ligne
Bonjour dverite,
effectivement j'ai vérifié à travers pg_stat_activity l'etat de la session de truncate.
La colonne "wait_event_type" a pour valeur "relation" et la colonne "wait_event" a pour valeur "Lock"
Hors ligne
Avez-vous suivui le lien pointé par Daniel permettant de voir la connexion qui détient le verrou bloquant, et ainsi de résoudre la situation ?
Julien.
https://rjuju.github.io/
Hors ligne
Avez-vous suivui le lien pointé par Daniel permettant de voir la connexion qui détient le verrou bloquant, et ainsi de résoudre la situation ?
Bonsoir Admin,
je viens de finir les actions après parcours du lien.
Effectivement mon problème est reolu
Hors ligne
Merci infiniment Daniel
J'ai profité pour comprendre le principe des accès simultané et de comment cela est géré par POSTGRESQL.
Votre réponse m'a permis de solutionner mon problème
Hors ligne
Pages : 1