Réponses:
Vous pouvez utiliser pg_dump
comme ceci:
$ pg_dump -h db_host -U user_name db_name > dump_file.sql
Pensez d'abord à définir le .pgpass
fichier 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 .pgpass
fichier 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
.
Exécutez pg_dumpall à partir de cron.
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.
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. .
pg_rman est un nouvel outil, offrant des sauvegardes incrémentielles, qui fonctionne pour PostgreSQL 8.4 ou plus récent.
Essayez sans danger pour les astrails . Il sait comment sauvegarder mysql (mysqldump), postgres (pg_dump), ou simplement des fichiers simples (tar) avec cryptage (gnupg) et télécharger vers S3 / Sftp.
pg_dump est une bonne solution, mais si vous essayez de sauvegarder beaucoup de données, cela peut peut-être vous aider:
http://www.postgresql.org/docs/8.1/static/backup-online.html
qui est en fait une sorte de journalisation `` brute '', mais qui peut être utile comme méthode de sauvegarde incrémentielle ...
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é :(
Pourquoi s'installer avec une sauvegarde quotidienne alors que vous pouvez facilement avoir une récupération ponctuelle avec barman ?
Comme d'autres l'ont dit: pg_dumpall.
Jetez également un œil à l'expédition des journaux. Ensuite, vous pouvez obtenir plus de sauvegardes ponctuelles que vous pouvez lire: http://www.postgresql.org/docs/8.3/static/runtime-config-wal.html
Ou que diriez-vous de la section sur les sauvegardes dans le manuel: