Si le preocupa el almacenamiento de archivos, puede elegir la función de registro de archivos comprimidos en PostgreSQL.
“archive_command(cadena)” en $PGDATA/postgresql.conf , es como un comando de shell para ejecutar lo que se pasa en la sección de cadena para copiar el archivo fuente completo (segmento de archivo WAL en $PGDATA/pg_xlog ) al destino (UBICACIÓN DEL ARCHIVO ). "cadena" puede ser cualquier cosa como script de shell (lote en Windows) en sí mismo, utilidades de compresión del sistema operativo y una herramienta especial pg_compresslog. En Windows, cmd.exe ejecutará el comando pasado en archive_command "cadena".
Dado que estamos aplicando en la plataforma Windows, los requisitos previos son:
- El directorio de archivo debe tener acceso completo de usuario de postgres. ("C:Program FilesPostgreSQL9.2archives" en mi caso)
- Utilidad GZIP de la versión de Windows. Aunque hay numerosas buenas utilidades de compresión de variantes de Windows, elegí gzip porque es compatible tanto con Linux como con Windows.
- Gzip.exe debe tener acceso al usuario de Postgres y también en PATH. ("C:Archivos de programaGnuWin32bin" en mi caso).
Suponiendo que se cumplan todos los requisitos previos y que el siguiente paso sea editar el archivo $PGDATA/postgresql.conf y cambiar los parámetros relacionados con el archivado y reiniciar el clúster:
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)
Según la documentación de PG, se realizaron cambios y se reinició el clúster, anticipando que a partir de ahora mis archivos se comprimirán uno. Veamos los registros:
2013-07-26 16:07:22 IST LOG:el comando de archivo falló con el código de salida 1
2013-07-26 16:07:22 IST DETALLE:El comando de archivo fallido fue:"""C :Archivos de programaGnuWin32bingzip.exe" -1 <"pg_xlog