Comprimir la base de datos PostgreSQL

12

Tengo una gran base de datos PostgreSQL de más de 500 GB que es demasiado grande. ¿Hay alguna forma de comprimir la base de datos a un tamaño más manejable? He intentado hacer esto con SquashFS y la base de datos comprimida a 177 GB, sin embargo, PostgreSQL requiere que la base de datos tenga acceso de escritura y los sistemas Squashed son de solo lectura. ¿Los usuarios de bases de datos más experimentados tienen alguna sugerencia para lograr este objetivo?

La base de datos contiene datos SIG para el planeta y se utilizará localmente en un sistema desplegado. Actualmente se encuentra en un SSD de 1TB, sin embargo, estoy tratando de evitar colocar un disco duro adicional simplemente para acomodar una gran base de datos. La base de datos funciona como se desea sin problemas, simplemente me gustaría comprimirla a un tamaño más manejable y evitar colocarla en una unidad separada.

MH21209
fuente
¿Por qué es demasiado grande? Si se está quedando sin espacio en el disco, debe agregar más disco al sistema. Si hay datos que ya no se necesitan, debe encontrar una manera de archivarlos. De lo contrario, presumiblemente tiene un problema de rendimiento que puede ser o no ayudado por un DB más pequeño.
RDFozz
2
La base de datos contiene datos SIG para el planeta y se utilizará localmente en un sistema desplegado. Actualmente se encuentra en un SSD de 1TB, sin embargo, estoy tratando de evitar colocar un disco duro adicional simplemente para acomodar una gran base de datos. La base de datos funciona como se desea sin problemas, simplemente me gustaría comprimirla a un tamaño más manejable y evitar colocarla en una unidad separada.
MH21209
44
Esta es una pregunta bastante razonable. No debería estar cerrado.
Evan Carroll

Respuestas:

10

Sistema de archivos

Un método muy popular para hacer esto es con el sistema de archivos. BTRFS y ZFS funciona bajo la base de datos en el nivel del sistema de archivos. Ambos se pueden usar en un dispositivo de bucle invertido para que pueda proporcionar un espacio de tabla comprimido sin tener otra partición. Hay advertencias con esto, si el espacio de tabla falla, también puede tomar su clúster.

ZFS

ZFS es el más grande aquí. Es por lo que iría.

Ver también

Btrfs

Btrfs es un fuerte contendiente, pero ha estado en desarrollo activo durante mucho tiempo, y la falta de grandes distribuciones que lo tomen por defecto hace que muchas personas se pregunten si está listo o no para el "horario estelar".

PostgreSQL

Métodos SIG (PostGIS)

Ambos resultan en una pérdida de información. PostGIS, como la mayoría de las características de la base de datos, no tiene una opción transparente de "compresión mágica".

cstore_fdw

También hay cstore_fdwuna tienda de columnas que ofrece compresión. Tiene un perfil de rendimiento diferente, así que mmm.

Evan Carroll
fuente
2
Esto es exactamente lo que estaba buscando. Actualmente estoy volviendo a implementar mi base de datos sobre ZFS. Gracias.
MH21209