PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Journaux d'archivage compressés PostgreSQL sous Windows

Beaucoup ont blogué et proposé de manière flagrante comment compresser les journaux d'archives dans PostgreSQL, je souhaite partager l'une d'une version courte de ma part qui est sur Windows.

Si le stockage des archives est un problème, vous pouvez choisir la fonctionnalité de journalisation des archives compressées dans PostgreSQL.

"archive_command(string)" dans $PGDATA/postgresql.conf , est comme une commande shell pour exécuter ce qui est passé dans la section de chaîne pour copier le fichier source terminé (segment de fichier WAL dans $PGDATA/pg_xlog ) à destination(EMPLACEMENT D'ARCHIVE ). "chaîne" peut être quelque chose comme script shell (batch dans Windows) lui-même, utilitaires de compression du système d'exploitation et un outil spécial pg_compresslog. Sous Windows, cmd.exe exécutera la commande passée dans archive_command "string".

Puisque nous postulons sur la plateforme Windows, les pré-requis sont :

  1. Le répertoire d'archivage doit avoir un accès utilisateur postgres complet. ("C:Program FilesPostgreSQL9.2archives" dans mon cas)
  2. Utilitaire GZIP version Windows. Bien qu'il existe de nombreux bons utilitaires de compression de variantes Windows, j'ai choisi gzip car il est pris en charge à la fois sur Linux et Windows.
  3. Gzip.exe doit avoir accès à l'utilisateur Postgres et également au PATH. ("C:Program FilesGnuWin32bin" dans mon cas).

En supposant que tous les prérequis sont en place et que la prochaine étape devrait être de modifier le fichier $PGDATA/postgresql.conf et de modifier les paramètres liés à l'archivage et de redémarrer le cluster :

wal_level=archive
archive_mode=on
archive_command = '"C:\Program Files\GnuWin32\bin\gzip.exe -1 " < "%p" > "C:\Program Files\PostgreSQL\9.2\archives\%f.gz"'

c:Program FilesPostgreSQL9.2bin>pg_ctl.exe -D ..data start (You can also start from services.msc)

Selon la documentation PG, des modifications ont été apportées et le cluster a redémarré, en anticipant à partir de maintenant mes archives seront compressées. Regardons les journaux :

2013-07-26 16:07:22 IST LOG :la commande d'archivage a échoué avec le code de sortie 1
2013-07-26 16:07:22 IST DETAIL :la commande d'archivage a échoué :"""C :Program FilesGnuWin32bingzip.exe" -1 <"pg_xlog