Linux下svn服务器迁移

1.介绍迁移方式:

1.由于项目工作需要进行svn服务器的迁移,对此简要介绍svn服务器的迁移方案。
2.主要迁移方式:

  • svnadmin dump
  • svnadmin hotcopy
  • svnsync

3.【svnadmin dump】是官方推荐的备份方式。

  • 优点:比较灵活,可以全量备份也可以增量备份,并提供了版本恢复机制。
  • 缺点:如果版本比较大,如版本数增长到数万、数十万,那么dump的过程将非常慢;备份耗时,恢复更耗时;不利于快速进行灾难恢复,建议在版本数比较小的情况下使用这种备份方式。

4.【svnadmin hotcopy】只能进行全量拷贝,不能进行增量备份;

  • 优点:备份过程较快,灾难恢复也很快;如果备份机上已经搭建了svn服务,甚至不需要恢复,只需要进行简单配置即可切换到备份库上工作。
  • 缺点:比较耗费硬盘,需要有较大的硬盘支持。

5.【svnsync】直接同步源机器代码库,实际上是制作2个镜像库,当一个坏了的时候,可以迅速切换到另一个。

  • 优点:当制作成2个镜像库的时候起到双机实时备份的作用;
  • 缺点:当作为2个镜像库使用时,没办法做到“想完全抛弃今天的修改恢复到昨晚的样子”;而当作为普通备份机制每日备份时,操作又较前2种方法麻烦。

6.实际上在Linux下将svn从一台源服务器迁移到另一台目标服务器的操作过程分2步:

1)安装SVN服务端:根据源服务器的svn版本,在目标服务器安装同样版本或者相近版本的SVN;
2)同步SVN仓库:同步源服务器的SVN代码仓库到目标服务器上。

2.具体步骤:

由于本人目前处理的svn仓库容量也就几个G而已,所以本文就针对自己的需求以【svnadmin dump】举例进行svn的迁移介绍。

2.1安装svn

1.下面就先具体地介绍安装配置svn服务端,待操作完这一步后续在待迁移目标服务器上安装配置svn服务端就比较方便顺手了。

1.yum方式安装或者源码编译安装svn服务端。这里以yum方式安装为例(假设当前在Linux下已经切换至root用户):
$yum install subversion #即可安装svn服务端
$svn help               #查看svn帮助手册
$svn --version          #查看svn当前版本
2.创建svn仓库目录:
$mkdir -p /home/www/svn/web/
$svnadmin create /home/www/svn/web/
3.经【上述第二步】后在/home/www/svn/web下会生成一个svn的仓库工作空间。使用以下查看目录树:
$tree /home/www/svn/web
4.显示的目录树类似以下结果:
[root@bogon web]# tree /home/www/svn/web
/home/www/svn/web
├── conf
│   ├── authz
│   ├── authz.bak
│   ├── passwd
│   ├── passwd.bak
│   ├── svnserve.conf
│   └── svnserve.conf.bak
├── db
│   ├── current
│   ├── format
│   ├── fsfs.conf
│   ├── fs-type
│   ├── min-unpacked-rev
│   ├── rep-cache.db
│   ├── revprops
│   │   └── 0
│   │       ├── 0
│   │       ├── 1
│   │       └── 2
│   ├── revs
│   │   └── 0
│   │       ├── 0
│   │       ├── 1
│   │       └── 2
│   ├── transactions
│   ├── txn-current
│   ├── txn-current-lock
│   ├── txn-protorevs
│   ├── uuid
│   └── write-lock
├── format
├── hooks
│   ├── post-commit.tmpl
│   ├── post-lock.tmpl
│   ├── post-revprop-change.tmpl
│   ├── post-unlock.tmpl
│   ├── pre-commit.tmpl
│   ├── pre-lock.tmpl
│   ├── pre-revprop-change.tmpl
│   ├── pre-unlock.tmpl
│   └── start-commit.tmpl
├── locks
│   ├── db.lock
│   └── db-logs.lock
└── README.txt10 directories, 35 files
[root@bogon web]#
5./home/www/svn/web/conf下以.conf结尾的文件:svn仓库的配置。
conf
├── authz:权限控制文件
├── authz.bak
├── passwd:帐号密码文件
├── passwd.bak
├── svnserve.conf:SVN服务配置文件
└── svnserve.conf.bak
6.编辑authz权限控制:
$vim /home/www/svn/web/conf/authz
[/]                 :仓库下所有文件/文件夹
yunwei=rw          :【yunwei】用户具有读写权限
test=r             :【test】用户具有只读权限
*=                 :除上述俩用户外,其他用户没有任何权限
7.编辑passwd账号密码:
$vim /home/www/svn/web/conf/passwd
[users]
yunwei=yunwei      :用户名=密码
8.编辑svnserve.coonf服务配置:
$vim /home/www/svn/web/conf/svnserve.conf
[general]
anon-access=none           :匿名用户没有访问权限
auth-access=write          :已经被授权的用户具有写权限操作的权利
password-db=passwd         :密码信息的文件路径(路径相对于本svnserve.conf而言)
authz-db=authz             :访问控制文件信息的文件路径(路径相对于本svnserve.conf而言)
realm=/home/www/svn/web/   :认证命名空间,svn会在认证提示里显示。
9.启动svn服务端:
$svnserve -d -r /home/www/svn/web  #-d:守护进程;-r:后台运行
10.查看svn进程:
$ps -ef|grep svn
11.如果想要停掉SVN服务,可以下面这样子操作:
$killall svnserve
12.【Windows客户端TortoiseSVN】连接svn服务端,进行检出获取仓库数据:
1)对话框输入地址:【svn://ip地址:端口】
#ip地址:待检出的svn服务端ip地址
#端口:默认3690
#这样子一来就可以用来获取这个svn服务端的仓库数据。
2)输入【用户名,如:yunwei】,【密码,如:yunwei】。即可检出。

2.准备好源服务器和目标服务器。本文假设svn源服务器:10.80.80.238,svn目标服务器:10.80.80.234,svn目标服务器已经完成了svn服务端安装。

2.2使用【svnadmin dump】迁移svn代码仓库

  • 前提说明:源服务器10.80.80.238的svn仓库目录【/home/svn/】,待操作的目标服务器10.80.80.234仓库目录【/home/www/svn/web】,俩服务器svn服务端口均使用默认端口3690。
  • 具体细节:
    1)$mkdir -p /home/linux/downloads/ #在源服务器上操作【创建目录】用于存放备份出来的仓库
    2)$svnadmin dump /home/svn/ > /home/linux/downloads/svnRepos.dump.backup
    #在源服务器备份svn仓库
    #svnRepos.dump.backup :已备份好的svn仓库
    3)使用【scp把/home/linux/downloads/svnRepos.dump.backup从源服务器传输到目标服务器】或者【sz下载至本地然后rz上传至目标服务器】。
    4)假设源服务器的仓库已经备份至目标服务器的【/home/linux/svnbackupdir/svnRepos.dump.backup
    5)加载到目标服务器仓库:
    $svnadmin load /home/www/svn/web < /home/linux/svnbackupdir/svnRepos.dump.backup
    6)拷贝源服务器【/home/svn/conf】下的3个配置文件至目标服务器【/home/www/svn/web/conf】。
    7)启动目标服务器:
    $svnserve -d -r /home/www/svn/web/
  • 由于服务端svn的ip地址变更了导致原有的客户端如果不做配置变更那就无法连接服务端,所以客户端想要连接到目标服务器svn需进行类似如下的操作变更:
    • 1)Windows下【TortoiseSVN】对仓库目录做变更【鼠标右键】:


      【确定】完即可。
    • 2)Linux下,对客户端连接变更:

2.1)本地仓库路径:/home/linux/downloads/svntestprojects/pro1dir/】。使用【$svn info】查看连接信息,结果类似如下(可看到源服务器ip:10.80.80.238):

[root@localhost pro1dir]# svn info
Path: .
Working Copy Root Path: /home/linux/downloads/svntestprojects/pro1dir
URL: svn://10.80.80.238
Repository Root: svn://10.80.80.238
Repository UUID: d40b338c-41be-439f-aade-8b6a1aebb690
Revision: 2
Node Kind: directory
Schedule: normal
Last Changed Author: yunwei
Last Changed Rev: 2
Last Changed Date: 2019-01-07 15:11:39 +0800 (Mon, 07 Jan 2019)

2.2)变更:
$svn switch --relocate svn://10.80.80.238 svn://10.80.80.234
#过程中输入本地【root】密码->输入目标服务器svn被授权的用户名和密码->进行验证->验证成功->接着连接到目标服务端svn即可。
$svn info

[root@localhost pro1dir]# svn info
Path: .
Working Copy Root Path: /home/linux/downloads/svntestprojects/pro1dir
URL: svn://10.80.80.234
Repository Root: svn://10.80.80.234
Repository UUID: d40b338c-41be-439f-aade-8b6a1aebb690
Revision: 2
Node Kind: directory
Schedule: normal
Last Changed Author: yunwei
Last Changed Rev: 2
Last Changed Date: 2019-01-07 15:11:39 +0800 (Mon, 07 Jan 2019)

3.补充:

  • Linux下SVN服务器迁移(详细介绍迁移的方法,推荐)
  • Linux SVN迁移备份的三种方法(简要介绍svn迁移)
  • Linux下安装SVN服务端小白教程(主要用于安装svn服务端)
  • VisualSVN Server迁移至新服务器(Windows平台)
  • 如何进行svn relocate 操作(Windows平台下的客户端)
  • svn参考手册

Linux下svn服务器迁移相关推荐

  1. Linux下SVN服务器迁移(详细版)

    最近因公司测试环境需要做迁移,除了应用需要迁移外,项目中平时用到的软件都得迁,涉及到nginx,redis , active MQ ,jenkins 以及SVN.SVN的迁移涉及到了代码的同步,在网上 ...

  2. Linux下SVN服务器同时支持Apache的http和https及svnserve独立服务器三种模式且使用相同的访问权限账号...

    1.在服务器上安装配置SVN服务: 2.配置SVN服务同时支持Apache的http和svnserve独立服务器两种模式访问: 3.Apache的http和svnserve独立服务器两种模式使用相同的 ...

  3. Linux下SVN服务器的搭建

    Linux下SVN服务器的搭建 宗旨:技术的学习是有限的,分享的精神是无限的. 1.下载工具(下载地址:) subversion-1.6.1.tar.gz subversion-deps-1.6.1. ...

  4. linux下svn服务器搭建及使用

    文章目录 1. 安装svn客户端 2. 安装svn服务器 3. 在svn目录下创建版本库 4. 修改版本库配置文件 4.1 修改 authz 文件 4.2 设置密码 passwd 4.3 修改 svn ...

  5. linux下svn服务器的安装配置和使用

    2019独角兽企业重金招聘Python工程师标准>>> 安装环境: centos 一,安装必须的软件包. yum install subversion mod_dav_svn 二,基 ...

  6. Linux下SVN服务器搭建(CentOS+Subversion)

    svn(subversion)是近年来崛起的版本管理工具,是CVS的接班人.目前,绝大多数开源软件都使用svn作为代码版本管理软件.svn服务器有2种运行方式:独立服务器和借助apache等web服务 ...

  7. linux svn 面板,Linux下SVN服务器搭建(CentOS+Subversion)

    安装 (centos下yum即可方便的完成安装) # yum install subversion 测试安装是否成功: # svnserve --version 回车显示版本说明安装成功 建立版本库 ...

  8. Linux下SVN服务器支持Apache的http和svnserve独立服务器

    2019独角兽企业重金招聘Python工程师标准>>> 说明 服务器操作系统:CentOS 6.6 关闭防火墙,SElinux 实现 1.在服务器上安装配置SVN服务: 2.SVN服 ...

  9. linux下 svn服务器搭建及使用

    1.安装svn 命令:sudo apt-get install subversion 2.创建目录和svn仓库 1) mkdir /home/zx/test_svn 2)svnadmin create ...

最新文章

  1. java 数组 列表_用Java将列表转换为数组
  2. AAAI 2020| 一文看尽腾讯优图10篇入选论文
  3. nginx之upsream实现负载均衡
  4. 100. Same Tree同样的树
  5. 遇到npm install的错误,多比较比较npm的版本
  6. soureTree中如何设置git 用户名与密码 SourceTree提交修改用户详细图文方法
  7. 如何确定python开发环境已经配置好_搭建 python 开发环境 前面安装选位置我直接回车了现在我想测试查看目录该怎么办...
  8. Redis高级项目实战!北京java编程入门培训
  9. [zz]4.1.5 进程的处理器亲和性和vCPU的绑定
  10. “中国音乐金钟奖”落地成都 今年起将连续举办三届
  11. java jtable defaulttablemodel_java – JTable和DefaultTableModel
  12. 软件测试基础课程学习笔记4--测试用例设计方法技巧
  13. [转]IE首页被http://www.9798.net/篡改解决办法
  14. 复活Java 前言
  15. ES6标准入门略读笔记
  16. 开发APP的费用是多少?
  17. web页面:窗口切换
  18. Yii Framework 开发教程(29) Zii组件-Menu 示例
  19. win10浏览器闪退_Win10系统下Edge浏览器经常闪退的解决方法
  20. window10企业版永久密钥激活

热门文章

  1. IDEA 自动去除无用的 import
  2. 企业文化培训课程PPT模板
  3. BuildMSI.vbs 生成MSI中间件 并通过连接生成MSI包
  4. 简析ROF降噪原理及python实现详解
  5. 《从零开始学架构》一:基础架构
  6. C语言中到底是非0表示真,还是1表示真?
  7. coreseek 安装
  8. OpenStack_Stein版安装部署
  9. 彩信平台软件模块清单
  10. webshell检测方式深度剖析 ---统计学特征检测