Esta pergunta pode ser um pouco "baseada em opinião", mas considere-a como uma fonte confiável de informações sobre o uso de níveis de compactação.
Eu tenho um servidor com poucos bancos de dados com tamanhos diferentes (de megabytes a 40GB). Neste momento, estamos usando gzip -9
o nível de compactação e os backups são lentos.
Temos política de backup diário e mantemos:
- backups diários por 14 dias
- backups semanais por 2 meses
- backups mensais por 2 anos
- backups anuais para sempre
Os backups do banco de dados são feitos assim:mysqldump ... > | gzip -9 -c > $TIMESTAMP.sql.gz
Eu tentei diferentes níveis de compactação para um dos pequenos bancos de dados. Aqui estão os resultados (o servidor estava um pouco carregado, então pode ser um pouco impreciso):
level | time (real) | output file size
1 | 0m1.844s | 6.6M
3 | 0m1.902s | 6.1M
5 | 0m2.112s | 5.1M
7 | 0m2.447s | 4.9M
9 | 0m3.498s | 4.8M
Depois disso, acho que o nível de compactação 5 ou 7 deve ser usado e devemos evitar o nível de compactação 9.
A questão é:
Quais são as práticas comuns em relação ao nível de compactação para backups?
Existem padrões usados em corporações ou instituições?
Nenhum, tudo depende estritamente de suas necessidades e habilidades.
Nenhum, use o que funcionar para você.
Eu sugiro fortemente usar ZSTD em vez de gzip. É maduro o suficiente, muito melhor que o gzip em termos de taxa de compactação e é incrivelmente rápido para descompactação. Ele tem 22 níveis de compactação, incluindo
--long
e--ultra
, portanto, você precisará experimentar para descobrir o que funciona melhor para você.Considere usar o PAR2 para seus dados compactados e mantenha as somas de verificação dos dados originais e compactados. Sem somas de verificação, é fácil perder seus dados devido a erros de bits durante o armazenamento ou recuperação de dados.