可用于 Oracle .DMP 文件的良好压缩算法是什么

可用于 Oracle .DMP 文件的良好压缩算法是什么

我计划压缩所有 Oracle 数据库服务器的 Oracle 导出转储文件以减少其磁盘空间使用量。

我的问题是:您知道任何用于压缩此类文件的良好压缩实用程序/算法吗?

答案1

我使用 4800 MB .DMP 文件进行了一些比较。结果如下:

  • 放气,正常压缩:799 MB
  • bzip2,正常压缩:749 MB
  • PPMd,正常压缩:654 MB

然后,我对一个较小的 72 MB 的 .DMP 文件做了一些测试:

  • 放气,正常压缩:21 MB
  • bzip2,正常压缩:15,4 MB
  • bzip2,超级压缩:15.4 MB
  • LZMA(又名 7zip),正常压缩:14.3 MB(字典:16MB,字长:32)
  • PPMd,正常压缩:13,3 MB
  • LZMA(又名 7zip),最大压缩率:12.3 MB(字典:32MB,字长:64)
  • PPMd,超级压缩:11 MB
  • LZMA(又名 7zip),超级压缩:9.1 MB(字典:64MB,字长:64)
  • LZMA2(也适用于 7z 格式),超级压缩:9.1 MB

所有这些测试都是使用 7Zip 完成的,压缩级别参考 7Zip 中可用的默认设置。

迄今为止的一些结论和观察
LZMA 和 LZMA2 似乎是 .DMP 文件的最佳选择。我在其他论坛上也看到有人报告了这个问题。在 7zip 中,LZMA 仅支持 2 个 CPU,而 LZMA2 支持更多(也会使用更多内存)。由于压缩结果看起来相同,因此选择 LZMA2 应该可以加快压缩速度。

现在让我们来玩一下超压缩 LZMA2 文件的单词和字典大小……

  • 词大小 273 / 词典 64MB: 8,8 MB
  • 词大小 273 / 词典 128MB: 8,8 MB

最终结论
7zip、7z、LZMA2 或者无论您怎么称呼它,都是可行的方法。

如果你有耐心,那么进行超级压缩是值得的。进行更大的单词大小也值得,但进行更大的字典大小可能不值得(在本测试案例中)。

我很想知道尝试这种方法的人的平均压缩率。我会尽量记住在压缩一些较大的档案后发布结果。

新结论
我一直在对此进行微调,并根据以下设置在时间/比率方面获得了最佳结果:

  • 压缩级别:超高
  • 压缩方法:LZMA2
  • 字典大小:48MB(增大没有任何影响,减小则会显著增加最终文件大小)
  • 字长:12(最高可达 16双打压缩时间,文件大小仅有轻微改善。最高可达 128三倍压缩时间,最终结果“仅”提高了 23%。如果每 MB 都很重要,就可以做到这一点……)
  • 实体块大小:实体(因为我们正在压缩一个或几个大文件,这会加快压缩速度,并且对生成的文件大小没有影响)

答案2

Oracle 转储文件使用专有的二进制格式。因此您需要一种适合二进制数据的标准压缩。bzip2 非常适合二进制数据,因此我推荐它。

答案3

这里是一篇很棒的文章,我在一些 Linux 机器上制作备份脚本时用到了它。效果非常好。我最终使用 rzip 来满足我的需求。我用它来备份和压缩所有类型的数据文件,包括 SQL 数据库转储。

答案4

我首先尝试使用超压缩级别的 7zip,看看能得到什么。.7z 的效果肯定比 .zip 格式更好……

相关内容