AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 589345
Accepted
Caterpillar
Caterpillar
Asked: 2014-04-16 22:32:04 +0800 CST2014-04-16 22:32:04 +0800 CST 2014-04-16 22:32:04 +0800 CST

Subversion 存储库大小和备份文件差异

  • 772

Subversion 存储库大小为 5.2 GB,包含 339 个修订版。

当我使用 Perl 脚本运行备份时,文件大小的最终结果是 28 GB。

我能知道,这怎么可能。我很困惑。

下面的备份脚本。

#!/usr/bin/perl
my $svn_repo = "/subversion/REPONAME";
my $bkup_dir = "/mnt/Subversion/SVN-Backups/REPO_DIR/";
my $bkup_file = "REPONAME_backup-";
my $bkup_svr = "my.backup.com";
my $bkup_svr_login = "backup";

$bkup_file = $bkup_file . `date +%Y%m%d-%H%M`;
chomp $bkup_file;
my $youngest = `svnlook youngest $svn_repo`;
chomp $youngest;

my $dump_command = "svnadmin -q dump $svn_repo > $bkup_dir/$bkup_file";
print "\nDumping Subversion repo $svn_repo to $bkup_file...\n";
print `$dump_command`;
print "Backing up through revision $youngest... \n";
print "\nCompressing dump file...\n";
print `gzip -9 $bkup_dir/$bkup_file\n`;
chomp $bkup_file;
my $zipped_file = $bkup_dir . "/" . $bkup_file . ".gz";
print "\nCreated $zipped_file\n";
svn
  • 2 2 个回答
  • 2790 Views

2 个回答

  • Voted
  1. Best Answer
    Rüdiger Voigt
    2014-04-17T02:34:32+08:002014-04-17T02:34:32+08:00

    Subversion 使用复杂的压缩。但是,您使用最大压缩对备份进行了 gzip,并且您的备份文件仍然比存储库大得多。如果您的存储库包含许多相同的文件,这可以通过表示共享来解释:

    “虽然 detified 存储从一开始就是 Subversion 设计的一部分,但多年来已经做出了额外的改进。使用 Subversion 1.4 或更高版本创建的 Subversion 存储库受益于文件内容的全文表示形式的压缩。使用创建的存储库Subversion 1.6 或更高版本进一步享受了表示共享提供的磁盘空间节省,该功能允许具有相同文件内容的多个文件或文件修订引用该数据的单个共享实例,而不是每个都有自己的不同副本。” 来源和更多细节

    要进一步缩小备份文件,您可以切换算法。bzip2 或 LZMA 的压缩率更好,但比 gzip 慢。

    您可以通过使用svn export将存储库的版本导出到测试目录来测试它。如果您以与备份脚本中相同的方式压缩该导出,则生成的文件大小应该大致相同。

    • 2
  2. Angelo
    2014-07-24T07:00:37+08:002014-07-24T07:00:37+08:00

    这就是我使用 svadmin hotcopy 而不是 svnadmin dump 来进行备份的原因。hotcopy 的缺点是直到 1.8 版才能进行增量操作。但是 hotcopy 至少给你和 subversion repository 一样的压缩。

    • 1

相关问题

  • 使用 crontab 和 /etc/cron.hourly,daily,weekly 的区别

  • 如何定期复制 SVN 存储库而不会丢失目标标签和分支?

  • 如何通过 SVN 命令行接受 SSL 证书?

  • 如何在 slicehost 上设置集市

  • 如何在 Mac OS X 中正确安装 Subversion?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve