实时迁移存储库根目录



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

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

  • 资源管理器中的直接文件复制:应该保留所有数据,但我犹豫是否信任Windows来完成此任务
  • svnadmin dump到转储文件,然后在新位置加载转储文件
  • 将存储库svnadmin hotcopy到新位置

我想听听您对哪种方法更可取的意见。如果它足够强大,我更喜欢热复制方法,因为转储所有存储库需要相当长的时间。此处描述了转储方法,但似乎包括对我的情况不必要的步骤,因为我将所有内容都保留在同一台服务器上。

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

最后,我想借此机会将服务器从 2.5.2 升级到 2.5.8。我应该在文件复制后执行此操作吗?我是否应该先重新启动服务,然后再次关闭它,以便它处理和检查移动的存储库?

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

svnadmin dump不是必需的,正如您提到的,该过程非常耗时。

最好在存储库迁移和需要重新配置后升级 VisualSVN 服务器。在某些升级中,VisualSVN 服务器需要访问存储库文件夹才能升级。

以下是您可以使用的一些步骤。使用此 python 脚本将使您的任务更轻松,并使您将来对存储库进行每日备份。

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

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

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

  • Xcopy SVN-父级到新位置
  • 编辑(手动)VisualSVN 服务器的 httpd.conf,SVNParentPath参数
  • 从MMC小程序重新启动VisualSVN服务器

最新更新