Compactar banco de dados PostgreSQL

12

Eu tenho um grande banco de dados PostgreSQL com mais de 500 GB de tamanho, que é muito grande. Existe alguma maneira de compactar o banco de dados para um tamanho mais gerenciável? Eu tentei fazer isso com o SquashFS e o banco de dados compactado para 177 GB, mas o PostgreSQL exige que o banco de dados tenha acesso de gravação e os sistemas Squashed sejam somente leitura. Os usuários mais experientes do banco de dados têm alguma sugestão para atingir esse objetivo?

O banco de dados contém dados GIS para o planeta e será usado localmente em um sistema implantado. No momento, ele está instalado em um SSD de 1 TB, no entanto, estou tentando evitar um disco rígido adicional simplesmente para acomodar um banco de dados grande. O banco de dados tem o desempenho desejado, sem problemas; eu simplesmente gostaria de compactá-lo para um tamanho mais gerenciável e evitar colocá-lo em uma unidade separada.

MH21209
fonte
Por que é muito grande? Se você estiver sem espaço em disco, precisará adicionar mais disco ao sistema. Se houver dados que não são mais necessários, você deve encontrar uma maneira de arquivá-los. Caso contrário, você presumivelmente tem um problema de desempenho que pode ou não ser ajudado por um banco de dados menor.
RDFozz
2
O banco de dados contém dados GIS para o planeta e será usado localmente em um sistema implantado. Atualmente, ele fica em um SSD de 1 TB, no entanto, estou tentando evitar bater em um disco rígido adicional simplesmente para acomodar um grande banco de dados. O banco de dados tem o desempenho desejado, sem problemas; eu simplesmente gostaria de compactá-lo para um tamanho mais gerenciável e evitar colocá-lo em uma unidade separada.
MH21209
4
Esta é uma pergunta bastante razoável. Não deve estar fechado.
Evan Carroll

Respostas:

10

Sistema de arquivo

Um método muito popular de fazer isso é com o sistema de arquivos. O BTRFS e o ZFS funcionam no banco de dados no nível do sistema de arquivos. Ambos podem ser usados ​​em um dispositivo de loopback, para que você possa fornecer um espaço de tabela compactado sem ter outra partição. Existem ressalvas com isso, se o espaço de tabela falhar, também pode levar seu cluster.

ZFS

O ZFS é o grande aqui. É para isso que eu iria.

Veja também

Btrfs

O Btrfs é um forte candidato, mas está em desenvolvimento há muito tempo, e a falta de grandes distribuições como padrão faz com que muitas pessoas questionem se está pronto para o "horário nobre".

PostgreSQL

Métodos GIS (PostGIS)

Ambos resultam em perda de informações. O PostGIS, como a maioria dos recursos do banco de dados, não possui uma opção transparente de "compressão mágica".

cstore_fdw

Também cstore_fdwexiste um armazenamento colunar que oferece compactação. Ele tem um perfil de desempenho diferente, então sim.

Evan Carroll
fonte
2
Isto é exatamente o que eu estava procurando. No momento, estou reimplantando meu banco de dados no ZFS. Obrigado.
MH21209