不积跬步,无以至千里;不积小流,无以成江海。

使用svnsync将win server 上的svn资源库迁移至linux

服 务 器 康康 1483℃ 1评论

最近公司的svn服务器真的是炒鸡慢慢慢,该服务器为win server2003 内存仅2GB,增加内存仍然无法解决svn慢,系统卡顿的问题,因此怀疑磁盘IO问题,由于该系统比较老安全性又没有保证,考虑将该svn迁移到linux系统。

1.搭建linux环境的svn服务

准备了一台centos7的linux服务器 ,使用yum安装svn ,非常简单

yum -y install subversion

2.迁移win server 上的svn资源库到linux

考虑了两种方式来迁移:

1.svnadmin dump 直接备份整个svn库

2.使用svnsync直接同步到新的资源库

由于第一种方式备份时需要停机,而业务需要又不能停用,所以采用第二种方式,直接同步,Let`s do it!

源svn服务的环境:

svn://192.168.1.110 只有一个资源库 名为CHNI

新svn服务的环境:

svn://192.168.1.120

创建一个空的资源库,并启用

svnadmin create /chni/svn/CHNI

svnserver -d /chni/svn/CHNI

将源服务器的密码和权限配置文件覆盖掉新资源库的配置文件

注意我们需要一个有所有文件夹访问权限的用户 ,不然没法完全同步数据,假设有这个用户,名为:admin 密码:admin

(如果没有可以自己配置一个)

在CHNI/hooks 目录下新建 pre_revprop-change 脚本,并给予可执行权限,内容为:

#!bin/bash

exit 0

初始化同步 svnsync init 目标服务器 源服务器

svnsync init svn://192.168.1.120  svn://192.168.1.110

提示我们输入用户名:admin ,密码 :admin

如果都正确,提示

Copied properties for revision 0.

执行同步操作

svnsync sync svn://192.168.1.120

至此等待复制完全部版本,大功告成!100G的资源库,同步了2天,最后将新服务器IP改为110 ,无缝替换。。

总结:

所有操作基本上在目标服务器上完成,仅仅需要了源服务器的配置而已。

注意脚本需要可执行权限

同步需要的用户需要有该资源库的所有权限

 

转载请注明:左手代码右手诗 » 使用svnsync将win server 上的svn资源库迁移至linux

喜欢 (6)or分享 (0)
发表我的评论
取消评论

 

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. 虽然没看懂
    匿名2017-07-28 11:32 回复