PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 Re : Général » Version 9.5.4 : utilisation de RLS (row level security) » 26/09/2016 16:14:14

Je decouvre Postgres et essaye de comprendre .

Je peux vous certifier que je ne manipule pas les catalogues system .  Si j'ai deleté un record c'est après avoir rencontré le problème décrit dans mon mail d'origine.

Pour info, après avoir deleté le record dans pg_type, j'ai pu  recréer ma table et la policy qui y est associée.. 

Par contre je n'arrive pas à dropper la table pg_catalog.pg_rowsecurity :  message error   ERROR: cache lookup failed for type 18279

Merci pour votre aide

#2 Re : Général » Version 9.5.4 : utilisation de RLS (row level security) » 26/09/2016 14:57:30

Ok , mais j'avais déjà essayé le drop de pg_type sans succès. Le système me disait de dropper la table .  Ceci dit,  je ne trouve pas normal que l'on puisse deleter des records dans des tables systèmes.

Cela mis à part ,   comment expliquer qu'à un certain moment j'ai perdu cette table ou plus précisément qu'elle ait été renommée en pg_catalog.pg_rowsecurity ?

Merci de m'éclairer à ce sujet .

#3 Re : Général » Version 9.5.4 : utilisation de RLS (row level security) » 26/09/2016 11:59:01

J'ai lancé la commande delete from pg_type WHERE typname='alain';    

Il fallait faire quoi ?

#4 Re : Général » Version 9.5.4 : utilisation de RLS (row level security) » 26/09/2016 09:54:50

J'ai deleté pg_type .  Maintenant j'essaie de renomme la table pg_catalog.pg_rowsecurity to alain (nom de la table qui a disparu) .

et j'ai le message suivant :

ERROR:  cache lookup failed for type 18279

#6 Général » Version 9.5.4 : utilisation de RLS (row level security) » 23/09/2016 13:45:40

Peters Alain
Réponses : 11

J'ai créé une policy sur une table .  J'ai créé un user et j'ai donné accès à cette table avec les restrictions définies au niveau de la policy .

Cà marchait bien ,  puis tout à coup ,  la table a disparu comme si elle n'existait plus .  J'ai essayé de la recréer et j'ai eu un message d'erreur signalant qu'elle existait encore : ERROR:  type "alain"
already exists
HINT:  A relation has an associated type of the same name, so you must use a
name that doesn't conflict with any existing type.

Dans pg_tables , la table n'existe plus .  Par contre elle existe encore dans pg_type.

J'ai essayé de dropper la policy sans succès parce que la table associée à la policy n'existe plus .

Après qques recherches j'ai retrouvé les données de ma table dans une table nommée pg_catalog.pg_rowsecurity.

Ma question :  comment procéder pour recréer ma table ?

#7 Re : Site PostgreSQL.fr » Vacuum » 19/02/2016 16:26:42

Bonjour,

effectivement j'ai killé par un kill -9 .  Merci pour vos infos .  Je regarde cela tranquillement . 

Bon we

#8 Re : Site PostgreSQL.fr » Vacuum » 19/02/2016 09:04:18

Merci pour vos réponses.
Effectivement la db n'est pas corrompue.  Je l'ai arrêtée et redémarrée sans problème .  Cependant je n'ai toujours pas récupéré mes 30 gigas . 
Ce sont probablement des fichiers temporaires créé par Vacuum .  Donc je réédite ma question : comment récupérer cet espace ?

#9 Re : Site PostgreSQL.fr » Vacuum » 18/02/2016 12:59:51

J'ai killé   le process vacuumdb .  Je sais que ce n'est pas très 'propre' mais dans le même temps je simulais un crash .

  Je ne l'aurais pas killé sur une db de production.

#10 Re : Site PostgreSQL.fr » Vacuum » 18/02/2016 12:46:43

Bonjour,

j'ai killé un vaccuum full  et je m'aperçois que l'espace déjà utilisé par le vacuum n'est pas récupéré .  Comment identifier cet espace alloué temporairement par le vacuum .  Je voudrais le remover de mon disk .

Merci pour vos bons conseils

#11 Re : Site PostgreSQL.fr » Vacuum » 18/02/2016 11:56:04

Merci pour l'info .

Je vais tester tout cela

#12 Site PostgreSQL.fr » Vacuum » 18/02/2016 11:32:12

Peters Alain
Réponses : 10

Bonjour , 

je suis un nouvel utilisateur Postgres , je me familiarise avec le produit.

J'ai créé une db dans laquelle on insert et delete pas mal de records .  La taille des tables augmentent donc considérablement .  Pour récupérer l'espace disk , je lance un Vacuum . 

Deux questions :

1) la table est lockée pendant le vacuum ,  y-a-t-il une possibilité de lancer un vacuum sans locker la table .

2) les indexes sont aussi recréés .  Est-il possible de ne pas générer les Wals pendant le vacuum et la création des indexes ?

Merci pour vos réponses

Pied de page des forums

Propulsé par FluxBB