SVN专题-备份与迁移
一、 备份策略
svn的备份方式一般有三种:
1、svnadmin dump
2、svnadmin hotcopy
3、svnsync
TIPS
注意,svn备份不宜采用普通的文件拷贝方式(除非你备份的时候将库暂停),如copy命令、rsync命令。
笔者曾经用 rsync命令来做增量和全量备份,在季度备份检查审计中,发现备份出来的库大部分都不可用,因此最好是用svn本身提供的功能来进行备份。
以上三种方式各自的优缺点如下:
第一种svnadmin dump是官方推荐的备份方式,优点是比较灵活,可以全量备份也可以增量备份,并提供了版本恢复机制。
缺点是:如果版本比较大,如版本数增长到数万、数十万,那么dump的过程将非常慢;备份耗时,恢复更耗时;不利于快速进行灾难恢复。
个人建议在版本数比较小的情况下使用这种备份方式。
第二种svnadmin hotcopy原设计目的估计不是用来备份的,只能进行全量拷贝,不能进行增量备份;
优点是:备份过程较快,灾难恢复也很快;如果备份机上已经搭建了svn服务,甚至不需要恢复,只需要进行简单配置即可切换到备份库上工作。
缺点是:比较耗费硬盘,需要有较大的硬盘支持。
第三种svnsync实际上是制作2个镜像库,当一个坏了的时候,可以迅速切换到另一个。不过,必须svn1.4版本以上才支持这个功能。
优点是:当制作成2个镜像库的时候起到双机实时备份的作用;
缺点是:当作为2个镜像库使用时,没办法做到“想完全抛弃今天的修改恢复到昨晚的样子”;而当作为普通备份机制每日备份时,操作又较前2种方法麻烦。
二、备份命令
dump、hotcopy、svnsync三种备份方式的备份方式如下:
2.1、全备份
#dump备份
svnadmin dump myrepos > dumpfile
#hotcopy备份
svnadmin hotcopy path/to/repository path/to/backup --clean-logs
#svnsync备份
$svnsync init 目的库 源库
$svnsync sync 目的库
TIPS
svnadmin hotcopy的方式可以将目的地址设置为NFS的远程地址,就可以直接备份到其他的机器。
svnsync的方式可以在svn hook中写入svnsync脚本实现实时同步。
svnsync不能对已经存在数据的版本库进行init操作。
2.2、增量备份
使用svnadmin dump的–incremental选项来实现
svnadmin dump 版本库路径及名称 –revision 上次导出的版本号:到本次要导出到的版本号 –incremental > 导出的命名
svnadmin dump myrepo --revision 1001:2001 --incremental > myrepo-1001-2001.dump
三、还原命令
svnadmin load 要恢复的版本库路径及名称 < 导出的命名
svnadmin hotcopy path/to/repository path/to/backup --clean-logs
TIPS
svnadmin load命令还原时,conf目录和hook目录不能还原。
svnadmin hotcopy 复制的是整个目录,所以conf和hook目录是平移过来的。
四、备份校验
svn log -r 'HEAD' http://svn.changyou.com/websvn/npt.changyou.com/
svn log http://svn.changyou.com/websvn/npt.changyou.com/
svnlook youngest SVN目录
五、SVN的UUID
使用svnadmin dump/load 、svnadmin hotcopy 来备份和还原时,UUID会保持不变。
使用svnsync来同步时,需要手动设置成一致的。否则客户端会出现错误。
UUID查看和设置方法
svnlook uuid SVN目录
svnadmin setuuid SVN目录 $SVNUUID
对低于 subversion-1.5 的系统可以参照下面的文章设置
http://chowroc.blogspot.hk/2009/05/uuid-of-subversion.html
六、备份时间对照
整个SVN版本库43M
svnsync 耗时0m42.629s
dump 耗时0m1.721s
hotcopy 耗时0m0.215s
svn dump时间明显快于其他备份方式。svnsync方式最慢。
七、大数据量版本库迁移
当版本库数据达到一定规模时,可以使用svnadmin dump 增量方式,每次导出一部分数据进行迁移(迁移最好安排在使用频率较少的时间)。
通过多次增量备份和恢复来完成迁移。
八、参考文章
http://www.361way.com/svn-backup/2867.html
http://carywu.blog.51cto.com/13185/207571
转载请注明:IPCPU-网络之路 » SVN专题-备份与迁移