PostgreSQL
La base de données la plus sophistiquée au monde.

Ouverture de session

Navigation

Contactez-nous

Administration du site :
"equipe chez postgresqlfr point org"

Contact presse :
"fr chez postgresql point org"

Contact association :
"bureau chez postgresqlfr point org"

Questions PostgreSQL :
 IRC :
  serveur irc.freenode.net
  canal #postgresqlfr

Recherche

Accéder aux archives

« Octobre 2008  
Lun Mar Mer Jeu Ven Sam Dim
  2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31  

Syndication

Flux XML

Sondage

Quelle est la version de PostgreSQL la plus répandue sur vos serveurs ?
8.3
10%
8.2
42%
8.1
40%
8.0
2%
7.4
6%
7.3 ou antérieure
0%
Nombre de votes: 48

restore_command

Technique - interfaces | restore_command

Par bilone le 23/08/2007 - 16:21

Suite à un crash (sans sauvegarde préalable), je souhaite restaurer ma base à partir d'un "restore_command "

Malgré la lecture et relecture de la doc, de nombreux essais, je n'arrive pas à exécuter mon "restore_command" !!

QUESTION 1
Doit-on impérativement créer un fichier "backup" à partir de la commande archive_command au préalable ?
... Ou est-il possible de le faire à partir des fichiers situés dans le répertoire "pg_xlog/" ?

QUESTION 2
Comme la doc le precise :
- j'ai donc créer un fichier "recovery.conf" dans le repertoire data du groupe (C:\Program Files\PostgreSQL\8.0.0-rc1)
dans lequel j'exécute la commande "restore_command"

D'aprĂšs la doc, la commande est :
restore_command = 'cp /mnt/serveur/répertoire_archive/%f %p'

avec "%f, qui est remplacé par le nom du journal souhaité,
et %p, qui est remplacĂ© par le chemin absolu oĂč copier le journal"

Que représentent exactement ces paramÚtres, et plus précisement %p ? Est ce un répertoire de travail ? ...
Dans mon répertoire, j'ai plusieurs fichier "00000001000000000000000A", "00000001000000000000000B", ..."....E", doi-je tous les spécifier ? ...

... Bref, malgrĂ© ces longues heures, mĂȘme si je compend les grands principes, la procĂ©dure de restauration me parait encore bien flou !... Est ce que une Ăąme charitable et surtout expĂ©rimentĂ©e ;) pourrait m'aider dans ma dĂ©marche !!

Merci pour votre réponse (la plus rapide bien sur ;)... La base contient des donnés capitales) !

Options d'affichage des commentaires

Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder les paramÚtres" pour activer vos changements.

Essai en vue d'une recupération

syracine/ = 23 Août, 2007 - 19:47

Bonjour,

Je ne suis pas un spécialiste de PostgreSQL. Mais j'ai déjà fait un backup simple de PostgreSQL 7.4 et transférer le contenu d'une BD dans la version 8.1 de PostgreSQL avec PostGIS, dans des conditions optimales. J'ai besoin de savoir certaines informations.

Est-ce que des requĂȘtes SQL provenant d'utilisateurs connectĂ©s ou des commandes d'administration tels que VACCUUM Ă©taient en cours au moment du crash?

Est-ce que le serveur PostgreSQL fonctionne encore? Quel type de crash s'agit-il: panne électrique, problÚme matériel (barette de mémoire défectueuse, disque dur qui lùche, etc.), problÚme logiciel (l'ordi a gelé, ne répond plus, dépassement de la mémoire, virus...)

Sous quelle systÚme est installé PostgreSQL: Linux? Windows? Cygwin ou l'exécutable compilé sous Mingw (depuis la version 8)? Quel est la version de PostgreSQL?

Y a-t-il des extensions, tel PostGIS? Quelle version?

Sache que, d'aprÚs mes lectures, il existe 3 méthodes pour réaliser un backup de PostgreSQL: création d'un fichier SQL avec pg_dump, pg_dumpall (recommendé); sauvegarde des fichiers physiquement présents sur le disque dur; et récupération par les logs (journaux) d'un moment X de la BD (c'est ce que j'ai cru comprendre?) Je connais les 2 premiÚres méthodes, mais pas la troisiÚme.

Quel est ton niveau de connaissance de PostgreSQL? débutant, intermédiaire, expert?
D'aprÚs ta question, tu as essayé la derniÚre méthode, la plus compliquée. Si tu es un expert et que tu tiens mordicus à ta méthode, je ne peux pas t'aider. Va sur le forum anglais de PostgreSQL www.postgresql.org et pose ta question.
Si tu es un utilisateur plus ou moins expérimenté de PostgreSQL, qu'il s'agit de ton premier crash et que tu es un peu perdu dans les commandes de PostgreSQL, je peux t'aider avec d'autres méthodes.

Dans l'attente de réponses

Cordialement


restore_command suite

bilone/ = 27 Août, 2007 - 11:50

Bonjour syracine,

Et merci pour ta réponse.

Concernant les miennes par rapport Ă  tes questions, voila la situation :

Le crash est intervenu suite Ă  une coupure de courant.
L’application (en relation avec PostgreSQL) ne fonctionnant plus, l’utilisateur Ă  eu la bonne idĂ©e ;) de rĂ©installer PostgreSQL !! 
 Ce qui a Ă©crasĂ© la base !

Bien que ces donnĂ©es soient « vitales » pour l’entreprise, aucune procĂ©dure rĂ©guliĂšre de sauvegarde n’était en place. La derniĂšre (sauvegarde) date de plus de six mois (je sais, ça commence plutĂŽt mal !).

Heureusement (?), nous avons retrouvĂ©, dans le rĂ©pertoire des donnĂ©es du groupe, un rĂ©pertoire « _data » (surement crĂ©Ă© par Postgre lors de la rĂ©installation) contenant les infos de l’ancienne base et notamment :
- le répertoire « base » contenant les infos des tables
- le répertoire « pg_xlog » contenant les journaux

Question 1 : Peut-on rĂ©tablir une base Ă  partir des infos du rĂ©pertoire « base » (fichiers dĂ©crivant les tables) ? Est-ce que c’est la deuxiĂšme mĂ©thode que tu dĂ©cris («sauvegarde des fichiers physiquement prĂ©sents sur le disque dur ») ? Si oui, nous sommes SAUVĂ©S !
Dans un premier temps, c’est ce que nous avons tentĂ© (en copiant les fichiers du rĂ©pertoire « base » dans la nouvelle)
 Sans succĂšs.

Nous nous sommes alors retournés vers la procédure de « recovery » (exploitation des journaux WAL) via la commande restore_command dans le fichier recovery.conf.
Mais les fichiers log nous indiquent l’erreur suivante :
«
2007-08-24 16:32:55 LOG: database system was shut down at 2007-08-24 16:32:01 Paris, Madrid
2007-08-24 16:32:55 LOG: starting archive recovery
2007-08-24 16:32:55 LOG: restore_command = "copy C:\archives\0000000100000000000000BC "%p""
2007-08-24 16:32:56 LOG: restored log file "00000001.history" from archive
2007-08-24 16:32:56 PANIC: syntax error in history file: \Ð
2007-08-24 16:32:56 HINT: Expected a numeric timeline ID.
»
En effet, nos fichiers commencent par les charactÚres « \Ð ».
Mais, j’ai Ă©galement d’autres fichiers WAL sur un autre ordinateur (qui sont Ă  priori bons !... Donc aucun rapport avec le crash) qui commence Ă©galement par les mĂȘme caractĂšres, et qui crĂ©es la mĂȘme erreur ! Q2 : POURQUOI ?

Indices ( ?) :
Sur ces deux ordinateurs (celui ayant subi le crash et l’autre, celui des fichiers WAL), l’installation de postgre a Ă©tĂ© faite en 2 temps : tout d’abord la 8.2 puis la 8.0.0-rci.
Question 3 : Est-ce que notre commande restore_command est invalide (elle s’exĂ©cute pourtant correctement sur d’autres fichiers WAL testĂ©s) ? 
 Ou l’erreur pourrait-elle provenir d’un « mĂ©lange » Ă©ventuel des deux versions ?

Question 4 : Aurais-tu d’autres solutions ?

Merci.


re

Guillaume Lelarge/ = 28 Août, 2007 - 10:07

Comme expliqué sur http://www.developpez.net/forums/showthread.php?t=400349 , il n'est pas possible d'utiliser restore_command si tu n'as pas fait 1. une sauvegarde de base façon PITR (donc avec pg_start_backup...) 2. une sauvegarde de *tous* les fichiers WAL générés depuis cette sauvegarde.

Dis autrement, je pense que tu ne pourras rien restaurer par les fichiers WAL.

Autre chose, il est trĂšs Ă©tonnant que PostgreSQL ait acceptĂ© de se rĂ©installer sur un rĂ©pertoire systĂšme oĂč des donnĂ©es sont dĂ©jĂ  prĂ©sentes. Donc soit votre utilisateur a indiquĂ© un autre rĂ©pertoire, soit le rĂ©pertoire des donnĂ©es n'existait plus (soit Ă  cause du systĂšme d'exploitation (je pense Ă  un fsck qui aurait supprimĂ© des fichiers suite Ă  l'arrĂȘt brutal), soit Ă  cause de l'utilisateur).

--
Guillaume.


Autre piste

bilone/ = 29 Août, 2007 - 12:40

Merci Guillaume pour ces précisions.

Afin de compléter les infos de ma situation, je tiens à préciser que j ai un bien un backup ... de janvier.

Mais effectivement je ne suis pas sûr d'avoir "*tous*" les fichiers WAL créés depuis ! (j'en ai 4, datés du mois d'août)

1 - Bien que tu ne m'es pas l'air optimiste, puis-je tout de mĂȘme espĂšrer rĂ©cupĂ©rer qqch ?

L'AUTRE PISTE :

2 - J'ai également le répertoire "base" (contenant les infos des tables et datées du jour du crash). A ton avis, est il possible, de l'exploiter ?

Franck R.


© PostgreSQLFr, tous droits rĂ©servĂ©s.
Site déclaré à la CNIL sous le numéro 1074678, conformément à la Loi en vigueur.