Essayer de faire une sauvegarde incrémentielle toutes les heures d'un seul serveur Postgres (Win7 64).
J'ai la configuration suivante dans postgresql.conf
:
max_wal_senders = 2
wal_level = archive
archive_mode = on
archive_command = 'copy "%p" "c:\\postgres\\foo\\%f"'
(redémarrer)
J'ai fait une sauvegarde de base avec pg_basebackup -U postgres -D ..\foo -F t -x
Ce qui a fait un gros base.tar
fichier dans le foo
dossier et ajouté quelques fichiers 16,384 KB, qui je suppose sont des WAL.
Ce que je ne comprends pas, c'est pourquoi les WAL foo
ne changent pas . Les WAL en data/pg_xlog
mutation. Pg n'est pas censé les copier? Comment décide-t-il de le faire?
Peut-être que je dois régler archive_timeout=3600
?
J'ai vu plusieurs sites (listes de diffusion de pg, page postgres de bacula) qui disent que vous devez appeler pg_start_backup () et pg_stop_backup (), mais je pense que ceux-ci ne sont pas requis. Est-ce vrai?
Questions secondaires:
À quelle fréquence les WAL
data/pg_xlog
sont-ils écrits? Qu'est-ce qui déclenche une écriture?Il semble mettre à jour un WAL si je fais du DML puis
\q
en psql. Ou modifiez un tableau dans pgAdmin puis fermez la fenêtre. J'ai pensé qu'il écrirait sur commit.Les meilleures pratiques? pg_basebackup une fois par semaine? Archiver les WAL sur la même machine que PG ou une machine distante?
la source
pg_basebackup
, il s'en occupe déjà. 3. postgres supprimera automatiquement les fichiers WALpg_log
lorsqu'ils ne seront plus nécessaires. Vous ne devez rien faire manuellement danspg_log
. Sinon, voir lewal_keep_segments
paramètrepg_xlog
est entièrement géré automatiquement par postgres, tandis que le dossier d'archives est entièrement géré par le DBA.Il existe un outil existant qui vous aidera beaucoup, WAL-E . Il fournit un
archive_command
etrestore_command
pour PITR à S3.Il n'existe aucune commande pour effectuer des sauvegardes logiques incrémentielles ou différentielles .
pg_dump
ne peut pas prendre un incrémental ou différentiel. La seule façon de procéder est l'archivage des journaux.En théorie, vous pouvez prendre une nouvelle sauvegarde complète, faire un diff binaire entre celle-ci et la dernière sauvegarde et télécharger le diff. Cela me semble cependant une manière fragile et inefficace de faire les choses, et je ne le recommanderais vraiment pas.
De plus, PgBarman prend en charge l'intégration avec S3 via des scripts de raccordement et automatisera une grande partie de la rotation et de la gestion des sauvegardes pour vous. Encore une fois, cela peut ne pas être une option sous Windows.
la source