此处要备份的库名以test
为例服务器
当svn服务器发生灾难级故障时,咱们能够利用备份文件对公司资产:svn代码进行恢复ide
整个svn备份文件很是大,若是每次进行都全量备份;将消耗很是多的硬盘资源。svn
使用全量备份+增量备份的方案;对svn代码进行异地备份
每月1号进行一个完整备份,其余时候进行差别备份工具
1.使用svnadmin dump 仓库路径 > dumpfile日志
svnadmin dump /data/svn/test > /data/backup/svn/test_dumpfile
[root@localhost svn]# svnlook youngest /data/svn/test/ 73988
备注:73988
是当前仓库的版本提交数量code
svnadmin dump /data/svn/test -r 73882:73988 --incremental > /data/backup/svn/test_dumpfile_73882-73988
凌晨1点开始备份,先使用svnlook youngest
获取版本数量,而后再全量的压缩备份。将全量备份的版本号记录好,下次增量备份的时候,能够用该版本号+1进行差别备份资源
上面咱们经过svn的官方备份工具svnadmin dump
,对svn仓库已经进行了备份;如今咱们对数据进行还原开发
svnadmin load /data/svn/test/ < /data/backup/svn/test_dumpfile
[root@localhost svn]# svnlook youngest /data/svn/test/ 73881
/data/backup/svn/test_dumpfile_73881-73988
svnadmin load /data/svn/test/ < /data/backup/svn/test_dumpfile_73881-73988
Committed new rev 73989 (loaded from original rev 73988)
,表示还原成功[root@localhost svn]# svnlook youngest /data/svn/test/ 73988
先利用全量备份,再利用增量备份进行还原,最后和客户端开发同窗协助确认下:还原的svn数据是否能够被正常使用。rem
svn://192.168.1.1/test
中包含了公司全部的项目A、项目B、项目C(除客户端代码外);不便于直接使用it
为了更好的区别项目,将不一样的项目使用不一样的版本库;从test
中独立出来的子文件夹有:
尽量对项目开发的影响较小;
192.168.1.2;这台机器做为svn还原使用
1.先利用全量还原好数据
2.使用增量备份文件,对差别部分进行还原便可(通常是1天的数据)
1.在项目二大群中发一个通知:svn版本库周末进行维护,周末暂停使用
2.使用完整备份的文件,过滤出须要的文件夹
svndumpfilter include 项目A < test_bak_0-90769 > 项目A_dumpfile svndumpfilter include 项目B < test_bak_0-90769 > 项目B_dumpfile # 若是包含了多个文件夹,能够用空格+文件夹名,表明多个目录 svndumpfilter include 项目C 17_项目C < test_bak_0-90769 > 项目C_dumpfile
3.在192.168.1.2
新建好版本库
svnadmin create /data/svn/项目A svnadmin create /data/svn/项目B svnadmin create /data/svn/项目C
4.作好受权
准备好在用的人员信息,写到新版本库的受权文件中
5.使用步骤1的文件进行数据恢复
svnadmin load /data/svn/项目A < 项目A_dumpfile svnadmin load /data/svn/项目B < 项目B_dumpfile svnadmin load /data/svn/项目C < 项目C_dumpfile
1.准备差别文件 2.将差别部分进行还原 3.验证差别部分
6.验证没有问题以后。将旧机器上面的文件隐藏移动到一个再也不使用的文件夹中;7/14天后确认没有影响后删除