存储库根的实时迁移

时间:2013-01-25 13:31:13

标签: svn visualsvn-server

我们的VisualSVN服务器(SE)目前将其存储库存储在“C:\ Repositories”中,但鉴于我们的存储库增长,C:驱动器开始填满。我们希望将整个存储库根目录移动到服务器中的第二个驱动器(D :),它在可预见的未来有足够的空间。

我发现this question告诉我如何更改根目录,但由于该问题涉及全新安装,因此保留现有数据并不是一个问题。经过一些研究后,我发现有几种方法可以保留现有的存储库:

  • 资源管理器中的直接文件副本:应保留所有数据,但我对使用此任务信任Windows犹豫不决
  • svnadmin dump转储文件,然后在新位置加载转储文件
  • svnadmin hotcopy存储库到新位置

我想知道哪种方法更可取。我更喜欢hotcopy方法,如果它足够强大,因为倾倒所有存储库需要相当长的时间。转储方法描述为here,但似乎包括对我的情况不必要的步骤,因为我将所有内容保存在同一台服务器上。

此外,我想问一下如何最好地进行此迁移,以将停机时间降至最低。我想阻止用户在复制文件时提交更改。我可以在更改根目录并复制文件时关闭SVN服务吗?

最后,我想借此机会将服务器从2.5.2升级到2.5.8。我应该在文件复制后这样做吗?我应该首先重新启动服务,然后再将其关闭,以便它处理并检查移动的存储库吗?

3 个答案:

答案 0 :(得分:2)

我建议您为每个存储库或svnadmin hotcopy使用xcopy /E /H C:\Repositories D:\Repositories。不要忘记复制授权文件(authz,authz-windows和htpasswd)。您必须在迁移之前停止VisualSVN Server。

svnadmin dump不是必需的,因为您提到了非常耗时的过程。

最好在存储库迁移和所需的重新配置后升级VisualSVN Server。在某些升级中,VisualSVN Server需要访问存储库文件夹以进行升级。

答案 1 :(得分:1)

这些是您可以使用的一些步骤。使用此python脚本将使您的任务更容易,并在将来对您的存储库进行每日备份时受益。

  1. 在VisualSVNServer上,转到属性并将存储库根目录更改为新位置。假设“D:\ Repositories”。
  2. 下载Python 2.7(如果您还没有安装它)。
  3. 下载“hot-backup.py”
  4. 从命令窗口执行以下操作。

    hot-backup.py C:\Repositories\<YourRepoName>  D:\Repositories\<YourRepoName>
    
  5. 升级您的SVN版本

  6. 这应该可以解决问题。祝好运 !!!

答案 2 :(得分:1)

  • Xcopy SVN-Parent到新位置
  • 编辑(手动)VisualSVN Server的httpd.conf,SVNParentPath参数
  • 从其MMC-applet重新启动VisualSVN Server