O que é um bom algoritmo de compressão que pode ser usado para arquivos .DMP do Oracle

2

Estou planejando compactar os arquivos de despejo de exportação do Oracle de todos os servidores de banco de dados Oracle para reduzir o uso de espaço em seus discos.

Minha pergunta é: Você conhece algum utilitário / algoritmo de compactação para compactar esse tipo de arquivo?

    
por titanium 14.08.2009 / 20:35

5 respostas

2

Os arquivos de dumps do Oracle usam um formato binário proprietário. Então você quer uma compressão padrão que seja boa para dados binários. O bzip2 é bom com dados binários, então eu recomendo isso.

    
por 14.08.2009 / 20:54
1

Eu fiz algumas comparações usando um arquivo 4800 MB .DMP. Como resultado:

  • deflate, compactação normal: 799 MB
  • bzip2, compactação normal: 749 MB
  • PPMd, compactação normal: 654 MB

Em seguida, fiz alguns testes em um arquivo .DMP menor, de 72 MB:

  • deflate, compactação normal: 21 MB
  • bzip2, compactação normal: 15,4 MB
  • bzip2, compactação ultra: 15,4 MB
  • LZMA (aka 7zip), compressão normal: 14,3 MB (dicionário: 16MB, tamanho da palavra: 32)
  • PPMd, compactação normal: 13,3 MB
  • LZMA (também conhecido como 7zip), compactação máxima: 12,3 MB (dicionário: 32MB, tamanho da palavra: 64)
  • PPMd, ultra compactação: 11 MB
  • LZMA (também conhecido como 7zip), ultra-compressão: 9,1 MB (dicionário: 64MB, tamanho da palavra: 64)
  • LZMA2 (também disponível para o formato 7z), ultra compactação: 9,1 MB

Todos esses testes foram feitos com o 7Zip, e os níveis de compressão referem-se às configurações padrão disponíveis no 7Zip.

Algumas conclusões e observações até agora
LZMA e LZMA2 parecem ser as melhores opções para arquivos .DMP. Eu vi outras pessoas relatar isso também em outros fóruns. No 7zip, o LZMA suporta apenas 2 CPUs, e o LZMA2 suporta mais (também usa mais memória). Como os resultados da compactação parecem idênticos, selecionar LZMA2 deve resultar em uma compactação mais rápida.

Agora vamos brincar com tamanho de palavra e dicionário para arquivos LZMA2 ultra compactados ...

  • Tamanho da palavra 273 / dicionário 64MB: 8,8 MB
  • Tamanho da palavra 273 / dicionário 128MB: 8,8 MB

Conclusões finais
7zip, 7z, LZMA2, ou como você quiser, é o caminho a seguir.

Se você tiver paciência, a compactação será compensada. Indo para um tamanho de palavra ainda maior também vale a pena, mas indo para um tamanho de dicionário maior não pode (neste caso de teste).

Eu ficaria curioso para obter algumas médias de taxas de compactação de pessoas tentando isso. Tentarei lembrar de postar resultados assim que concluir a compactação de alguns arquivos maiores.

Novas conclusões
Eu ajustei tudo isso e obtive os melhores resultados em tempo / proporção com essas configurações:

  • Nível de compactação: ultra
  • Método de compactação: LZMA2
  • Tamanho do dicionário: 48 MB (ir maior não tem nenhum efeito, diminuir aumenta o tamanho do arquivo resultante significativamente)
  • Tamanho do Word: 12 (indo até 16 dobra o tempo de compactação, com apenas uma pequena melhora no tamanho do arquivo. Aumentando para 128 tripples o tempo de compactação, novamente com " apenas "23% melhor resultado final. Poderia fazer isso é cada contagens de MB ...)
  • Tamanho de bloco sólido: sólido (já que estamos compactando um ou apenas alguns arquivos grandes, isso acelera a compactação e não tem efeito no tamanho de arquivo resultante)
por 22.06.2016 / 12:03
0

Primeiro tento usar o 7zip com nível de ultra-compactação e ver o que você consegue. Eu definitivamente obtenho melhores resultados de .7z do que o formato .zip ...

    
por 14.08.2009 / 20:42
0

bzip2 costuma ser a minha resposta padrão para essa tarefa.

    
por 14.08.2009 / 20:48
0

AQUI é um ótimo artigo que usei ao fazer um script de backup em algumas máquinas linux. Funcionou muito bem. Acabei usando o rzip para minhas necessidades. Eu usei para fazer backup e comprimir todos os tipos de arquivos de dados, incluindo despejos de banco de dados SQL.

    
por 14.08.2009 / 20:59