Sauvegarde automatique des postgres


20

Quelle est la meilleure façon de sauvegarder automatiquement une base de données Postgres sous Linux tous les jours?

Réponses:


11

Vous pouvez utiliser pg_dumpcomme ceci:

$ pg_dump -h db_host -U user_name db_name > dump_file.sql

Pensez d'abord à définir le .pgpassfichier contenant les mots de passe à utiliser si la connexion nécessite un mot de passe. Ce fichier doit avoir des lignes du format suivant:

hostname:port:database:username:password

Et chacun des quatre premiers champs peut être une valeur littérale, ou *, qui correspond à n'importe quoi. Par exemple: *:*:*:postgres:pg_password.

Ce .pgpassfichier doit résider dans le répertoire personnel ~ / et les autorisations qu'il contient doivent interdire tout accès au monde ou au groupe; réaliser cela par la commande chmod 0600 ~/.pgpass.


sauvegarde-t-il automatiquement tous les jours ??
Anuj Patel

@indyaah: non, vous devrez l'exécuter quotidiennement depuis cron (ou similaire).
Bill Weiss

12

Exécutez pg_dumpall à partir de cron.


7
pg_dumpall est meilleur que les autres réponses car cela sauvegarde vos objets de base de données globaux. (Ex: utilisateurs, etc.) Vous en aurez besoin pour récupérer complètement votre base de données et si vous en avez un grand nombre, il peut être non trivial de les recréer. Cependant, pg_dumpall peut être excessif pour vous si vous souhaitez simplement sauvegarder une seule instance de base de données dans un cluster de bases de données multiples car pg_dumpall sauvegardera chaque instance. Donc ... comme avec la plupart des questions et réponses techniques, cela dépend.
KevinRae

1
J'ai tendance à confondre "base de données" et "serveur de base de données", ceci étant un bon exemple. J'ai supposé que l'affiche voudrait sauvegarder le tout. Bon point.
Bill Weiss

6

Essayez AutoPostgreSQLBackup . Il s'agit d'un fichier de script unique, peut être facilement configuré selon vos besoins, effectue une planification quotidienne, hebdomadaire et mensuelle, enregistre par e-mail, fichier journal ou stdout, etc.


J'utilise également AutoPostgreSQLBackup et cela fonctionne très bien pour moi ;-)
Matthieu

4

S'il s'agit d'une base de données raisonnablement petite et que les exigences de sauvegarde sont aussi faibles qu'une seule fois par jour, exécutez simplement pg_dump de cron pour vider dans un fichier local, puis utilisez tout ce que vous avez pour sauvegarder les fichiers sur la machine pour archiver le vidage. .


4

pg_rman est un nouvel outil, offrant des sauvegardes incrémentielles, qui fonctionne pour PostgreSQL 8.4 ou plus récent.




1

Il s'agit d'un script qui sauvegardera chaque base de données individuellement ainsi que les informations GLOBALES PostgreSQL et les informations de connexion utilisateur souvent oubliées mais importantes.

L'importance de ceci est de profiter de la compression que pg_dumpall ne fournit pas et des données oubliées que pg_dump ignore.

Cela nécessitera un pgpass ou une configuration similaire comme décrit ici http://wiki.postgresql.org/wiki/Pgpass

Ceci est configuré pour OSX, mais changez simplement les chemins du programme et cela fonctionnera bien.

Sauvegarde dans / sqlbackups Le script renverra la taille du répertoire / directory et possède des points d'arrêt qui renverront un état non nul en cas d'échec. Je l'ai utilisé en combinaison avec pgAgent pour faire des sauvegardes quotidiennes.

Script expurgé, désolé :(


1

Pourquoi s'installer avec une sauvegarde quotidienne alors que vous pouvez facilement avoir une récupération ponctuelle avec barman ?


Je laisserai les modérateurs décider, mais je pense que ressusciter des questions vieilles de 5 ans pour brancher des produits commerciaux est une mauvaise forme ici.
gparent


Vous avez raison, j'ai googlé la mauvaise chose. Ma principale préoccupation n'était pas que, de toute façon, il s'agissait de suggérer une réponse qui n'est pas vraiment ce que l'utilisateur a demandé 5 ans après. Cependant, après avoir lu les autres réponses, elles semblent également suggérer des solutions de sauvegarde similaires, donc je suppose que ce n'est pas si mal. Mon drapeau sera probablement refusé et nous l'appellerons un jour: D
gparent

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.