6

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

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

如何将现有的大型线性回购转换为分片回购?手册中提到了工具“fsfs-reshard.py”,但这个脚本说“这个脚本尚未完成,还不能用于实时数据。相信我们。”。所以我绝对不想使用它。有替代方案吗?

4

3 回答 3

8

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

于 2010-10-27T15:28:19.510 回答
3

最好的方法是如上所述的转储/加载周期。不过你可以试试升级

svnadmin upgrade

复制您的存储库首先尝试升级并测试它....(不要错过备份)。

于 2010-10-27T15:38:55.767 回答
1

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

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

当然必须小心使用

  • 如果可能,在存储库副本上进行第一个测试过程
  • 准备好要恢复的备份
  • 处理时阻止访问存储库
  • svnadmin verify在上线之前运行
于 2015-11-28T08:26:59.680 回答