写在前面
本人兼职CM工作,前一阵研发中心需要更换新的服务器,需要将原服务器(linux系统)上SVN迁移至另外一台新的服务器(linux系统),已迁移完成一段时间,想简单整理一下迁移的过程,大致分为如下几步:
1)新的服务器搭建SVN环境;
2)旧的服务器SVN备份,我这里采用的是svnadmin hotcopy整库拷贝方式;
3)将备份的SVN库迁移到新服务器上;
4)为新服务器svn库指定端口,启动服务。
1、新服务器搭建SVN环境
很多linux系统安装成功后,会已安装SVN环境
所以首先执行svnserve --version 查看是否安装环境,若已安装则会显示svn对应的版本,我这里显示的是1.10.2,此为系统自带的。
若未安装,则可以执行subversion yum install subversion 进行安装,或者下载安装包手动安装也可以。
2、旧服务器SVN备份
我这里用的是svnadmin hotcopy整库拷贝的方式,这种备份方式快,而且迁移到新服务上后只需要配置一下即可,但这种方式比较占用硬盘空间,而我们旧服务器空间剩余不多,所以我备份、迁移、还原(即这里提到的2、3、4步)同步进行。
执行命令:svnadmin hotcopy /需要备份的svn库 /备份至目录,如:
svnadmin hotcopy /home/svn/projectlibrary2019 /backup/projectlibrary2019
我这里将 /home/svn/projectlibrary2019备份到/backup/projectlibrary2019目录下
3、将备份的SVN库迁移到新服务器上
因为两台服务器在同一个局域网中,所以我使用的scp命令进行的迁移,这里可以把上面的备份文件执行tar命令压缩再传输也可以直接传输。
执行命令:scp -r /待迁移的目录 迁移至新服务器的用户名@新服务器地址:/路径,回车后需要输入新服务器用户名对应的密码
如:
scp -r /backup/projectlibrary2019 root@192.168.1.111:/home/svn
这里新服务器路径下不需要再输入projectlibrary2019这个项目名,因迁移的文件已有这个目录了
说明:若新服务器中无需要的路径,则需要执行mkdir先创建好对应的文件夹
4、为新服务器svn库指定端口,启动服务
执行命令:svnserve -d -r /svn库路径 --listen-port 端口号
如:svnserve -d -r /home/svn/projectlibrary2019 --listen-port 3380
操作完成之后,执行命令netstat -anp |grep svn可以查看当前已启动的svn端口。
执行命令ps -aux | grep svnserve可查看详细的SVN端口以及路径信息,若要停止某个SVN端口服务,则执行命令kill -9 ID号即可。
写在后面
以上,2、3、4步反复执行,直到所有的SVN库迁移完成。因怕遗漏,我提前整理了一个表格,完成了便标注一下,所以没有造成遗漏和错误。不足之处便是如果SVN库较多的话,迁移会略微繁琐,但认真一点也没什么问题。