【问题标题】:Live Migration of Repository Root存储库根目录的实时迁移
【发布时间】:2013-01-25 13:31:13
【问题描述】:

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

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

  • 资源管理器中的直接文件副本:应该保留所有数据,但我不太愿意相信 Windows 来完成这项任务
  • svnadmin dump 到转储文件,然后在新位置加载转储文件
  • svnadmin hotcopy 存储库到新位置

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

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

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

【问题讨论】:

    标签: svn visualsvn-server


    【解决方案1】:

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

    svnadmin dump 不是必需的,正如您提到的那样非常耗时。

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

    【讨论】:

    • 谢谢,对于我的情况,这似乎是最干净、最完整的答案。其他答案提出了一些有效的替代方法。
    【解决方案2】:

    这些是您可以使用的一些步骤。使用此 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 版本

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

    【讨论】:

      【解决方案3】:
      • Xcopy SVN-Parent 到新位置
      • (手动)编辑 VisualSVN 服务器的 httpd.conf,SVNParentPath 参数
      • 从它的 MMC 小程序重新启动 VisualSVN 服务器

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-10-07
        • 2012-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-03
        • 1970-01-01
        相关资源
        最近更新 更多