Bonjour,
J'ai une base de données postgresql 7.4 (debian). Jusqu'à présent mes sauvegardes sont quotidiennement réalisées via la commande
Très régulièrement je suis amené à restaurer une sauvegarde sur un autre serveur via la commande
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2$ pg_dump -U admin ma_base | bzip2 > `date +%Y-%m-%d`-ma_base.sql.bz2
Cela a toujours bien fonctionné, sauf hier. A la restauration le serveur ce plaint que telle fonction ou telle vue n'existe pas. Si bien qu'à la fin il me manque quelques vues. Bien entendu les fonctions ou vues en questions sont bien définies dans la sauvegarde mais certaines fonctions ou vues qui en dépendent sont définies avant d'où les erreurs. J'ai lancé la restauration deux fois d'affilées afin d'obtenir une restauration complète. Je sais que pg_dump n'organise pas toujours très bien les requêtes, néanmoins je n'ai pas introduit de dépendance circulaire, d'où ma surprise.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $ psql -U admin -d ma_base < 2009-01-11-ma_base.sql
Bref! Pour restaurer correctement la base:
- soit je sauvegarde en ajoutant l'option --format=t pour ensuite contrôler l'ordre dans lequel les objets sont restaurés avec pg_restore.
- soit je lance deux restaurations consécutives. La première méthode me parait plus propre. Mais étant donné qu'une restauration prend moins d'une minute - donc ce n'est pas gênant de la lancer deux fois - et qu'en ce moment je crée pas mal de vues et fonctions cette méthode me parait plus pénible à mettre en oeuvre.
Comment procédez-vous dans un tel cas ?
Merci,
--
Eric
Partager