> Linux教程 >

svn迁移,备份,重装系统后恢复数据

svn服务要迁移到其它linux主机上

原服务器svn配置

仓库路径:/home/svn/repos

权限文件:/home/svn/svn-access-file

用户认证文件:/home/svn/passwordfile

apache 配置文件:/etc/httpd/conf.d/subversion.conf

svn 服务启动脚本 /etc/init.d/svn

做法如下

一、在原服务器上备份svn,备份内容如下

    1.备份/home/svn/svn-access-file文件

    2.备份/home/svn/passwordfile文件

    3.备份/etc/httpd/conf.d/subversion.conf文件

    4.备份/etc/init.d/svn文件

    5.将版本库导出为一个文件,使用如下命令

view plaincopy to clipboardprint?
  1. svnadmin dump /home/svn/repos > svn_bak  

svnadmin dump /home/svn/repos > svn_bak

   将以上备份的文件传到linux新主机的某个目录下,如/root/

二、在新的linux环境上安装svn和apache,配置

   1.安装svn,使用如下命令

view plaincopy to clipboardprint?
  1. yum install subversion  

  2. yum install httpd  

  3. yum install mod_dav_svn  

yum install subversion yum install httpd yum install mod_dav_svn

   2.创建仓库文件夹

view plaincopy to clipboardprint?
  1. mkdir /home/svn/  

  2. mkdir /home/svn/repos  

mkdir /home/svn/ mkdir /home/svn/repos

   3.运行创建版本库的命令,指定数据存储为 FSFS,如果要指定为 Berkeley DB,则将 fsfs 替换为 bdb

view plaincopy to clipboardprint?
  1. svnadmin create --fs-type fsfs /home/svn/repos  

svnadmin create --fs-type fsfs /home/svn/repos

三、恢复svn数据

view plaincopy to clipboardprint?
  1. svnadmin  load /home/svn/repos/ < /root/svn_bak  

svnadmin load /home/svn/repos/ < /root/svn_bak

   2.恢复权限、认证配置文件

 

view plaincopy to clipboardprint?
  1. mv /root/svn-access-file /home/svn/  

  2. mv /root/passwordfile /home/svn/  

  3. mv /root/subversion.conf /etc/httpd/conf.d/  

mv /root/svn-access-file /home/svn/ mv /root/passwordfile /home/svn/ mv /root/subversion.conf /etc/httpd/conf.d/

  3.给版本库权限

 

view plaincopy to clipboardprint?
  1. chown -Rvf apache /home/svn/  

  2. chomd 755 /home/svn/  

chown -Rvf apache /home/svn/ chomd 755 /home/svn/

 注:这一步很重要,如果没有,可能会出现
Can't create directory '/home/svn/repos/db/transactions/1-2.txn': Permission denied这样的错误,因为在svnadmin create时是root身份,所以,mod_dav_svn就没有write权限等。

四、启动svn

把svn文件恢复到 /etc/init.d/目录下,给它可执行的权限,然后

service svn start

(责任编辑:IT)