Vous n'êtes pas identifié(e).
Bonjour,
J'ai un serveur (PostgreSQL 9.6 - PostGIS 2.2) qui doit faire un peu plus de 300 Go, mais il en fait 3,5 Téra. J'ai repéré la base de données qui en question. J'ai affiché la taille de tous les schémas de cette base puis la somme, je me retrouve avec une taille correcte ( 352 Go) .
J'ai lancé la commande " ls -lh " sur le répertoire de la base de données en question, je me retrouve avec des fichiers de 1go
-rw------- 1 postgres postgres 1,0G févr. 11 02:30 121037129.1045
-rw------- 1 postgres postgres 1,0G févr. 11 02:34 121037129.1046
Ayant 500Go de stockage disponible, y-aura-t-il un risque si je lance un vacuum full sur la base ?
Pensez-vous si le vacuum sera la solution à ce problème d'espace disque ?
Merci d'avance.
Diassé
Hors ligne
Comment savez-vous qu'elle fat seulement 352 Go ?
Les fichiers que vous indiquez laissent supposer que vous avez une table (de relfilenode 121037129) qui fait plus d' 1 To.
Guillaume.
Hors ligne
Comment savez-vous qu'elle fat seulement 352 Go ?
Les fichiers que vous indiquez laissent supposer que vous avez une table (de relfilenode 121037129) qui fait plus d' 1 To.
Merci pour votre réponse,
J'ai fait la somme des tailles de tous les schémas avec la requête ci-dessous.
SELECT schemaname, sum(pg_total_relation_size(schemaname||'.'||tablename)) as size
from pg_tables group by schemaname order by size desc;
Diassé
Hors ligne
Cette requête vous donne la taille globale des tables et index de chaque schéma. Par contre, ça ne prends pas en compte les vues matérialisées.
Il serait intéressant de savoir l'objet correspondant aux fichiers indiqués dans le premier commentaire. Pouvez-vous nous donner le résultat de la requête suivante :
SELECT relname, relkind, pg_table_size(oid) FROM pg_class WHERE relfilenode=121037129;
Guillaume.
Hors ligne
Le résultat de cette commande est vide !
SELECT relname, relkind, pg_table_size(oid) FROM pg_class WHERE relfilenode=121037129;
relname | relkind | pg_table_size
---------+---------+---------------
(0 rows)
Avez vous une autre idée ?
Merci pour vos réponses.
Dernière modification par dsamake (16/02/2018 11:18:19)
Diassé
Hors ligne
Vous l'avez bien exécuté sur la bonne base de données ?
Guillaume.
Hors ligne
Bonjour Guillaume,
Oui, je suis connecté sur la bonne base de données.
Merci pour votre aide.
Diassé
Hors ligne
Essayez la requête suivante, mais ça ne devrait pas changer grand-chose au résultat :
SELECT relname, relkind, pg_table_size(oid) FROM pg_class WHERE oid=121037129;
Guillaume.
Hors ligne
Vous avez raison, je n'ai pas de sortie
bd_centre=# SELECT relname, relkind, pg_table_size(oid) FROM pg_class WHERE oid=121037129;
(0 rows)
Diassé
Hors ligne
Autrement dit, cela semble être un objet orphelin. Voici comment je réglerais la situation : je créerais une nouvelle instance où je restaurerais la sauvegarde de cette base (et des autres bases de l'instance), puis, une fois certain que tout s'est bien passé, je supprimerais l'ancienne instance.
Guillaume.
Hors ligne
Autrement dit, cela semble être un objet orphelin. Voici comment je réglerais la situation : je créerais une nouvelle instance où je restaurerais la sauvegarde de cette base (et des autres bases de l'instance), puis, une fois certain que tout s'est bien passé, je supprimerais l'ancienne instance.
Merci Guillaume,
je vais faire ce que vous m'avez conseillé. Ça veut dire que je risquerais d'avoir le même problème un jour.
Bonne journée.
Diassé
Hors ligne
Oui. Généralement, les fichiers orphelins surviennent suite à un crash du serveur, crash matériel ou logiciel. Pas suite à une utilisation normale.
Guillaume.
Hors ligne
Oui. Généralement, les fichiers orphelins surviennent suite à un crash du serveur, crash matériel ou logiciel. Pas suite à une utilisation normale.
Bonjour Guillaume,
J'ai crée une nouvelle instance puis sauvegardé et restauré sur la nouvelle instance, tout s'est bien passé, je n'ai plus de problème de fichiers orphelins. J'espère que je n'aurai plus ce même problème.
Merci pour votre aide.
Bonne journée.
Diassé
Hors ligne