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 03/06/2013 11:19:49

marc73450
Membre

Annuler une requete delete

Bonjour,

Je viens de faire une mauvais manip : j'ai lancer un peu vite une requête delete qui m'a supprimé tous les enregistrements d'une table... que je ne voulais pas supprimer.

Je n'avais pas fais de sauvegarde de la base.

Y-a-t-il une possibilité pour revenir en arrière ? restaurer une version antérieure des fichiers de base ?

merci d'avance


Marc .

Hors ligne

#2 03/06/2013 15:08:14

kenrio
Membre

Re : Annuler une requete delete

delete lancé dans une transaction sinon direction backup

Hors ligne

#3 03/06/2013 15:15:02

marc73450
Membre

Re : Annuler une requete delete

Merci de ta réponse ! comment faire un backup ?


Marc .

Hors ligne

#4 03/06/2013 15:31:15

kenrio
Membre

Re : Annuler une requete delete

le backup fallait le faire avant le delete, donc la vous voulez juste connaitre la procédure d'un backup on est d'accord ?

Hors ligne

#5 03/06/2013 15:39:09

marc73450
Membre

Re : Annuler une requete delete

Oui mais j'ai déjà fais mon delete ! j'aimerais revenir en arrière, le backup ne m'est pas d'une grande utilité

merci


Marc .

Hors ligne

#6 03/06/2013 16:15:55

rjuju
Administrateur

Re : Annuler une requete delete

C'est plutôt mal parti hmm Si l'autovacuum ne s'est pas encore lancé, vous pouvez le désactiver et essayer du côté de pg_dirtyread (http://www.depesz.com/2012/04/04/lets-talk-dirty/).

Hors ligne

#7 03/06/2013 16:32:17

marc73450
Membre

Re : Annuler une requete delete

Je fais show autovacum ; il m'affiche ON ! ai-je une chance de récupérer mes données ?


Marc .

Hors ligne

#8 03/06/2013 16:36:43

rjuju
Administrateur

Re : Annuler une requete delete

Vous pouvez regarder les colonnes last_vacuum et last_autovacuum de la table pg_stat_user_tables pour votre table pour vérifier.

Hors ligne

#9 03/06/2013 16:42:26

marc73450
Membre

Re : Annuler une requete delete

J'ai essayé ! et voila ce que ca me donne : http://cjoint.com/?0FdqOnCKBmM

que dois-je faire pour récupérer mes données a l'heure inscrite ?


Marc .

Hors ligne

#10 03/06/2013 16:55:39

kenrio
Membre

Re : Annuler une requete delete

rien c'est mort, je me trompe rjuju ?

Hors ligne

#11 03/06/2013 16:57:49

marc73450
Membre

Re : Annuler une requete delete

Tu es sur ?


Marc .

Hors ligne

#12 03/06/2013 20:16:44

rjuju
Administrateur

Re : Annuler une requete delete

Hélas oui, si le vacuum a eu lieu après le delete malencontrueux, pg_drityread ne sera pas capable de les voir : « pg_dirtyread is a simple function that allows you to see all rows of a relation including ones that have been deleted or older versions of rows that have been updated since the last vacuum ». En effet, une fois que le vacuum a eu lieu, les lignes supprimées sont réutilisables, et si aucune ligne n'a été insérée entre temps, le fichier aura simplement été tronqué à 0 octet.

Hors ligne

#13 04/06/2013 08:19:27

marc73450
Membre

Re : Annuler une requete delete

Merci à vous deux ! je vais essayé de me débrouiller pour récupérer mes données .


Marc .

Hors ligne

Pied de page des forums