我们正在移动服务器,其中一个最后的项目是移动到svn存储库。
大约有10个各种svn存储库。它们是使用以下命令创建的:
svnadmin create --fs-type fsfs
服务器A(原始)具有svn 1.4,而服务器B(目标)具有svn 1.6。
我的想法是使用rsync
来迁移整套存储库(它们都在服务器上的1个文件夹中),但我担心有些东西可能无法迁移或我需要特殊的交换机rsync
为此工作。
大多数在线教程只讨论一次移动1个存储库,例如使用svnadmin hotcopy
,但我需要一起移动大约100个左右。这是正确的方法吗?
答案 0 :(得分:15)
Subversion的FSFS在复制和移动时非常稳定,即使在不同的操作系统上也是如此。虽然mliebelt通过转储重新加载是正确的,但年龄需要移动10 GB!
这就是我推荐以下程序的原因:
通过文件系统将存储库复制到新服务器
例如$ scp -r /var/repos/ user@newServer:repos/
执行$ svnadmin upgrade
对1.6的存储库进行更新(这是可选的,但如果您想使用合并跟踪,稀疏检出等1.5 / 1.6功能,则强烈建议使用。)
在每个存储库上执行$ svnadmin verify
以验证所有修订都可以(您可以在已经运行的服务器上执行此操作)。
通过这个程序,你需要的时间减少10到100倍:
e.g。对于转储存储库,它通常大约每小时 1 GB (很大程度上取决于HD速度),转储文件比存储库大得多(在SVN 1.4中!) 因此,您必须将较大的文件移动到新服务器并执行转储加载,这也需要大约1小时/ GB。将此与文件系统副本进行比较,如果您有GBit-LAN,则通常仅限于网络连接(100 mbit,大约10 MB /秒)或HD(大约100 MB /秒)。
答案 1 :(得分:3)
首先,我不是Subversion管理员,但我和他们一起工作很多。所以不要只相信我的话,也请查看其他来源。
我过去5年的经历是:
dump
和load
。它们只是为了这份工作而编写的。dump
和load
另外检查一切正常。通过使用它们,您可以获得额外的“保险”,确保一切顺利。所以,是的,我建议将一个存储库相互移动。
答案 2 :(得分:3)
有关svn 1.6的svnadmin dump
和svnadmin load
的详细信息,请参阅here。它提供了有关dump
和load
的一些讨论,以及--deltas
,--incremental
等选项。
另外,请注意,如果您执行直接复制和svnadmin升级,则可以节省时间,但存储库状态可能不是最佳状态。从svnadmin帮助:
svnadmin help upgrade
用法:svnadmin升级REPOS_PATH
将位于REPOS_PATH的存储库升级到最新支持的存储库 架构版本。
提供此功能是为了方便存储库 希望使用新Subversion功能的管理员 无需承担可能昂贵的完整存储库转储 和加载操作。因此,升级仅执行最小化 完成这项工作所需的工作量,同时仍然保持 存储库的完整性。 不保证最优化 存储库状态为转储和后续加载。