我们有一个相当大的 SVN 存储库(50 GB,超过 100000 个修订)。使用它的速度相当慢,我的猜测是,其原因是 db/revs 和 db/revprops 中的平面目录结构(其中每个修订版都是一个文件)。

我们在 SVN 1.5(在 Linux 服务器上)中使用 FSFS 格式,但存储库是使用较旧的 SVN 版本创建的。现在我读到 SVN 1.5 支持“分片”,并且我了解到此功能将修订版分发到多个目录中,因此单个目录不会包含这么多文件。这听起来非常有用,但不幸的是,该功能似乎仅适用于使用 SVN 1.5 新创建的存储库。

如何将现有的大型线性存储库转换为分片存储库?该手册提到了工具“fsfs-reshard.py”,但该脚本说“该脚本尚未完成,尚未准备好用于实时数据。相信我们。”。所以我绝对不想使用它。还有其他选择吗?

有帮助吗?

解决方案

的最佳方法是如所提到的转储/装入cylcle。但是你可以尝试升级

svnadmin upgrade

请您的回购协议的副本第一次尝试升级和测试它....(不要错过做一个备份)。

其他提示

将一个svnadmin dumpsvnadmin load做的伎俩? http://subversion.apache.org/faq.html#dumpload

由于转储/恢复过程需要大量磁盘空间和处理时间,因此我(在 2010 年)发布了改进版本 fsfs-reshard.py 其中包括对 Subversion 1.6 FSFS 格式 5 的支持:https://github.com/ymartin59/svn-fsfs-reshard

它支持线性布局和分片布局之间的切换,并在需要时拆包分片。由于分片统计计算,您可以预期打包修订大小选择适当的分片大小。

当然必须是 小心使用:

  • 如果可能的话,首先在存储库副本上测试过程
  • 准备好备份以供恢复
  • 处理时防止访问存储库
  • 跑步 svnadmin verify 在上线之前
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top