sql >> Base de Datos >  >> RDS >> PostgreSQL

Registros de archivos comprimidos de PostgreSQL en Windows

Muchos han escrito en blogs y han ofrecido abiertamente cómo comprimir registros de archivo en PostgreSQL. Deseo compartir una versión corta de mi parte que está en Windows.

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:

  1. El directorio de archivo debe tener acceso completo de usuario de postgres. ("C:Program FilesPostgreSQL9.2archives" en mi caso)
  2. 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.
  3. 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