centos svn迁移备份的两种方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos svn迁移备份的两种方法相关的知识,希望对你有一定的参考价值。
svn备份方式对比分析
一般采用三种方式:
1、svnadmin dump
2、svnadmin hotcopy
3、svnsync
注意,svn备份不宜采用普通的文件拷贝方式(除非你备份的时候将库暂停),如copy、rsync命令。 曾经用rsync命令来做增量和全量备份,在季度备份检查审计中,发现备份出来的库大部分都不可用,因此最好是用svn本身提供的功能来进行备份。
优缺点分析:
第一种
svnadmin dump是官方推荐的备份方式
优点是:比较灵活,可以全量备份也可以增量备份,并提供了版本恢复机制。
缺点是:如果版本比较大,如版本数增长到数万、数十万,那么dump的过程将非常慢;备份耗时,恢复更耗时;不利于快速进行灾难恢复。
个人建议在版本数比较小的情况下使用这种备份方式。
第二种
svnadmin hotcopy原设计目的估计不是用来备份的,只能进行全量拷贝,不能进行增量备份;
优点是:备份过程较快,灾难恢复也很快;如果备份机上已经搭建了svn服务,甚至不需要恢复,只需要进行简单配置即可切换到备份库上工作。
缺点是:比较耗费硬盘,需要有较大的硬盘支持(俺的备份机有1TB空间,呵呵)。
第三种
svnsync实际上是制作2个镜像库,当一个坏了的时候,可以迅速切换到另一个。不过,必须svn1.4版本以上才支持这个功能。
优点是:当制作成2个镜像库的时候起到双机实时备份的作用;
缺点是:当作为2个镜像库使用时,没办法做到“想完全抛弃今天的修改恢复到昨晚的样子”;而当作为普通备份机制每日备份时,操作又较前2种方法麻烦。
svnadmin dump方式
SVN迁移需要做如下操作:
将原来的Repository导出为一个文件dumpfile:
svnadmin dump 原先的repos的目录路径(/repository/directory) > dumpfile
如:
svnadmin dump /home/svn/jiekou > /home/svn/jiekou_bak
在另外一台机器上配置同样的SVN服务器:
安装SVN
[email protected]/0 # yum -y install subversion
创建svn版本库目录
mkdir -p /home/svn/jiekou
创建版本库
svnadmin create /home/svn/jiekou/
[email protected]/0 # ll /home/svn/jiekou/
总用量 24
drwxr-xr-x 2 root root 4096 2月 19 14:42 conf
drwxr-sr-x 6 root root 4096 2月 19 14:42 db
-r--r--r-- 1 root root 2 2月 19 14:42 format
drwxr-xr-x 2 root root 4096 2月 19 14:42 hooks
drwxr-xr-x 2 root root 4096 2月 19 14:42 locks
-rw-r--r-- 1 root root 229 2月 19 14:42 README.txt
将dumpfile导入到新的repository 目录中:
svnadmin load 新建的repos的目录路径(/repository/directory) < dumpfile
如:
svnadmin load /home/svn/jiekou < /home/svn/jiekou_bak
将原先服务器的配置文件备份后复制到新服务器中:
/home/svn/jiekou/conf目录下
authz、passwd、svnserve.conf文件
svnadmin hotcopy方法
备份:
svnadmin hotcopy /home/svn/jiekou/ /home/svn/jiekou_bak –clean-logs
如果你传递–clean-logs选项,svnadmin会执行热拷贝操作,然后删除不用的Berkeley DB日志文件。 你可以在任何时候运行这个命令得到一个版本库的安全拷贝,不管其它进程是否使用这个版本库。
还原:
svnadmin hotcopy /home/svn/jiekou_bak /home/svn/jiekou/
linux下重新定位SVN URL方法
如果更换了SVN服务器,就需要重新定位,指向新的SVN URL。 重新定位命令:
svn switch --relocate 原svn地址 新svn地址
例子:
[email protected]/0 # svn info
路径: .
URL: svn://192.168.0.2/youyuan/huluweb
版本库根: svn://192.168.0.2/youyuan
版本库 UUID: 8cb80f63-1ffe-4fea-9436-65ad52441f62
版本: 6868
节点种类: 目录
调度: 正常
最后修改的作者: yysx
最后修改的版本: 6868
最后修改的时间: 2016-02-15 16:49:25 +0800 (一, 2016-02-15)
[email protected]/0 # svn switch --relocate svn://192.168.0.2/youyuan/huluweb svn://192.168.20.10/youyuan/huluweb
认证领域: <svn://192.168.20.10:3690> /home/svn/youyuan
“root”的密码:
认证领域: <svn://192.168.20.10:3690> /home/svn/youyuan
用户名: yysx
“yysx”的密码:
-----------------------------------------------------------------------
注意! 你的密码,对于认证域:
<svn://192.168.20.10:3690> /home/svn/youyuan
只能明文保存在磁盘上! 如果可能的话,请考虑配置你的系统,让 Subversion
可以保存加密后的密码。请参阅文档以获得详细信息。
你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext- passwords”为“yes”或“no”,
来避免再次出现此警告。
-----------------------------------------------------------------------
保存未加密的密码(yes/no)?yes
[email protected]/0 # svn info
路径: .
URL: svn://192.168.20.10/youyuan/huluweb
版本库根: svn://192.168.20.10/youyuan
版本库 UUID: 8cb80f63-1ffe-4fea-9436-65ad52441f62
版本: 6868
节点种类: 目录
调度: 正常
最后修改的作者: yysx
最后修改的版本: 6868
最后修改的时间: 2016-02-15 16:49:25 +0800 (一, 2016-02-15)
以上是关于centos svn迁移备份的两种方法的主要内容,如果未能解决你的问题,请参考以下文章