文章目录
前言
前段时间,部门svn服务器迁移,而我是svn的管理人员,自然这工作就交给了我。部门SVN分为主和备两台服务器,对外公开访问使用的是HTTP协议。
一、搭建主用服务器的操作步骤
1.下载 svn服务器的rpm软件包:
我所用的是:subversion-1.6.11-15.el6_7.x86_64.rpm
2.安装依赖包:
yum install -y apr*
yum install -y perl*
yum install -y neno
3.安装svn rpm包:
rpm -ivh subversion-1.6.11-15.el6_7.x86_64.rpm
4.导出原主服务器上的svn项目库:
svnadmin dump /var/www/svn/SVNProject/01Test > svnOld-01Test.dump
以上命令在原有主用服务器上执行,如果项目库比较大,这个导出过程所需要的时间会比较长。
5.将步骤4导出的dump文件,移动到新的主用服务器上
如果你的新旧服务器网络是通的,则可以使用scp命令;
scp -r svnOld-01Test.dump 新服务器ip地址:/tmp/
如果不通则可以使用Xshell、MobaXterm等自带的窗口文件传输ftp功能。
6.在新主用服务器上创建同名项目库:
mkdir -p /var/www/svn/SVNProject/
cd /var/www/svn/SVNProject/
svnadmin create 01Test
#添加访问权限:
chown -R apache:apache /var/www/svn/SVNProject/ #保证http服务可以读写
chmod 777 /var//www/svn/SVNProject
chmod 777 /var/www/svn/SVNProject/01Test
7.导入dump文件:
cd /var/www/svn/SVNProject
svnadmin load 01Test < /tmp/svnOld-01Test.dump #导入过程也需要较长的时间
8.安装httpd服务及修改配置:
安装httpd:yum install -y httpd
配置服务:/etc/httpd/conf.d/svn.conf #配置svn项目库的信息
<Location /svnNew/>
DAV svn
SVNParentPath /var/www/svn/SVNProject
SVNListParentPath on
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /var/www/svn/authfile #该文件存储的是用户和加密后的密码
AuthzSVNAccessFile /var/www/svn/authzNew.conf #该文件存储的是各个用户对项目库路径的访问权限
Satisfy all
Require valid-user
#</LimitExcept>
</Location>
/var/www/svn/authfile和/var/www/svn/authzNew.conf也是从旧服务器上拷贝过来的。
9.启动服务
service httpd start #我使用的服务器是rhel6.8的,如果是更高级的版本应使用systemctl命令启动服务。
启动完成后,即可访问该svn库了。
验证:在浏览器上或者svn的客户端上输入地址 http://ip/svnNew/01Test/
用户和密码为原有配置的。
这样svn主用服务器就迁移完毕了。
二、搭建备用服务器的操作步骤
1. 以上步骤都需要在备用服务器上执行。
2.在主用服务器上配置定时执行任务:执行备份(其实就是svnadmin dump);且将该备份拷贝到备用服务器上。
3.在备用服务器上配置定时执行任务:执行拷贝过来的dump文件(其实就是svnadmin load)
4.用户密码和权限控制文件(authfile和authzNew.conf)也要定时同步(配置crontab,定时scp到备用服务器上)
总结
以上就是svn服务器迁移的经验总结,写的不算太详细,有错误之处请见谅。