Postgres est très flexible - il y a plus d'une façon d'obtenir une bonne sauvegarde utilisable (et beaucoup des meilleures ne nécessitent pas l'utilisation de pgAgent - vous pouvez les script avec les outils ordinaires du système d'exploitation).
nearora a déjà décrit l'utilisation pg_dumpall
qui peuvent être viables pour vous.
Le manuel Postgres décrit deux autres options qui peut être automatisé sous Windows avec un petit script.
Option 2 : Sauvegarde au niveau du système de fichiers
Normalement, cela se fait en arrêtant le serveur et en saisissant le fichier PGDATA
répertoire.
Si vous ne pouvez pas arrêter le serveur alors contrairement à ce que dit le manuel ici vous peut obtenir une sauvegarde utilisable sans arrêter le serveur -- Il suffit de prendre une "sauvegarde de base" comme vous le feriez pour mettre en place une Esclave WAL/PITR .
Le résultat de cette sauvegarde doit être une copie de la base de données de l'entreprise. PGDATA
plus quelques segments WAL, stockés dans un emplacement séparé sur le serveur que vos processus de sauvegarde normaux au niveau du système de fichiers peuvent récupérer.
Vous devez vous assurer que la sauvegarde de base est terminée avant de saisir les fichiers avec votre processus de sauvegarde du système de fichiers habituel, sinon vous risquez d'obtenir une sauvegarde inutilisable.
Option 3 : Sauvegarde d'un esclave
Avec cette méthode, vous devrez créer un serveur esclave, qu'il s'agisse d'un serveur d'expédition ou d'un serveur de secours à chaud, comme décrit dans les documents de Postgres .
Quand il est temps de sauvegarder votre cluster, arrêter l'esclave et sauvegarder son PGDATA
comme vous le feriez pour une sauvegarde régulière du système de fichiers. puis redémarrez l'esclave et laissez-le rattraper le maître.
C'est de loin mon option préférée pour sauvegarder un cluster Postgres - Si vous dédiez un serveur esclave spécifique pour être "l'esclave des sauvegardes", vous pouvez effectuer des sauvegardes de votre cluster avec un impact nul sur les applications de production utilisant votre base de données.
Ses principaux inconvénients sont qu'elle nécessite un serveur esclave et que vous devez vous assurer que Postgres est arrêté sur l'esclave. antes de vous attrapez le PGDATA
et n'est pas relancé tant que vous n'avez pas fini de saisir les fichiers.
Vous devez également vous assurer que les sauvegardes se terminent dans un délai raisonnable afin que les segments WAL dont vous avez besoin pour rattraper le maître soient toujours disponibles. Dans la pratique, cela ne sera un problème que pour les clusters avec des fichiers EXTREMELY des charges d'écriture élevées, ou si vous faites quelque chose comme une VACUUM FULL
sur le maître pendant que l'esclave est sauvegardé
0 votes
Pourquoi ne pas utiliser simplement PostgreSQL-Backup pour créer automatiquement des sauvegardes de votre base de données ? postgresql-backup.com/postgresql-blog/backup-tool