Vous n'êtes pas identifié(e).
Pages : 1
Bonjour, je ne connais pas encore très bien Postgres et j'ai un besoin particulier : je cherche à remonter à travers une requête ou vue la liste des tablespaces d'une instance avec leur taille.
J'ai trouvé la fonction "pg_tablespace_size" pour avoir la taille d'un tablespace en particulier, mais y-a-t'il un moyen de remonter tous les tablespaces en une seule requête ?
Dernière modification par jonathan.durant (13/08/2012 10:04:52)
Hors ligne
Bonjour,
oui, il suffit de faire comme cela :
select spcname,pg_size_pretty(pg_tablespace_size(oid)) from pg_tablespace;
Julien.
https://rjuju.github.io/
Hors ligne
Merci ^^
Hors ligne
Est-il également possible de récupérer le nom de l'instance courante ? Je viens de faire une installation et à aucun moment je n'ai choisi de nom pour l'instance, comment puis-je le choisir ?
Hors ligne
pg_default ? mais je sais pas si c'est ce que vous cherchez
Hors ligne
Les instances n'ont pas de nom. Sur une même machine,elles sont identifiées par leur port (5432 par défaut). Si vous voulez le changer, c'est paramétrable dans le fichier postgresql.conf (nécessite de redémarrer pour le prendre en compte).
Julien.
https://rjuju.github.io/
Hors ligne
Ok, merci pour les infos.
Maintenant j'essaye de donner les droits à un user pour exécuter le select sur pg_tablespace.
J'ai créé l'user avec un mot de passe, activé l'authentification md5.
Mon user a bien le connect.
J'ai fait :
grant select on pg_tablespace to mon_user;
J'obient l'erreur : "Permission denied for tablespace pg_global", et la commande :
grant select on pg_global to mon_user;
me retourne : "ERROR: relation "pg_global" does not exist"
Savez vous comment faire ?
Hors ligne
Il faut que l'utilisateur lançant la requête GRANT ait les droits pour le faire. Essayez en tant qu'utilisateur postgres.
Julien.
https://rjuju.github.io/
Hors ligne
Pages : 1