svn服务器备份、还原、迁移一条龙教程

前言

此处要备份的库名以test为例

目的

当svn服务器发生灾难级故障时,我们可以利用备份文件对公司资产:svn代码进行恢复

面临的现状

整个svn备份文件非常大,如果每次进行都全量备份;将消耗非常多的硬盘资源。

解决方案

使用全量备份+增量备份的方案;对svn代码进行异地备份 每个月1号进行一个完整备份,其他时候进行差异备份

一:全量备份步骤

  • 1.使用svnadmin dump 仓库路径 > dumpfile svnadmin dump /data/svn/test > /data/backup/svn/test_dumpfile

  • 2.使用命令获取仓库的提交版本数,为后面的增量做好准备 svnlook youngest 仓库路径;如 [root@localhost svn]# svnlook youngest /data/svn/test/73988 备注:73988是当前仓库的版本提交数量

二:增量备份步骤

  • 1.备份差异的svn版本数 上1次全量备份的svn版本数有:73881;现在总有73988个版本数量,中间的差异为:73882-73988(在全量备份的基础上+1) svnadmin dump /data/svn/test -r 73882:73988 --incremental > /data/backup/svn/test_dumpfile_73882-73988

备份策略总结

凌晨1点开始备份,先使用svnlook youngest获取版本数量,然后再全量的压缩备份。将全量备份的版本号记录好,下次增量备份的时候,可以用该版本号+1进行差异备份

背景

上面我们通过svn的官方备份工具svnadmin dump,对svn仓库已经进行了备份;现在我们对数据进行还原

操作环境

  • 1.准备好svn备份数据:一般含有全量文件和增量备份文件

  • 2.准备好一台机器,上面搭建好svn即可

全量还原步骤

  • 1.执行导入命令 将全量备份的数据,导入到新机器搭建好的svn上 svnadmin load /data/svn/test/ < /data/backup/svn/test_dumpfile

  • 2.检查svn版本数;看到已经是还原成功了 [root@localhost svn]# svnlook youngest /data/svn/test/73881

  • 3.确认svn的提交日志内容,是否有问题

  • 4.和svn的使用同学,确认有无问题

增量还原步骤

  • 1.增量备份文件为:/data/backup/svn/test_dumpfile_73881-73988

 
 

svnadmin load /data/svn/test/ < /data/backup/svn/test_dumpfile_73881-73988

  • 2.当我们看到Committed new rev 73989 (loaded from original rev 73988),表示还原成功

  • 3.再次使用svnlook查看提交的版本数

 
 

[root@localhost svn]# svnlook youngest /data/svn/test/73988

迁移方案总结:

先利用全量备份,再利用增量备份进行还原,最后和客户端开发同学协助确认下:还原的svn数据是否可以被正常使用。

前言

svn://192.168.1.1/test中包含了公司所有的项目A、项目B、项目C(除客户端代码外);不便于直接使用

方法:

为了更好的区别项目,将不同的项目使用不同的版本库;从test中独立出来的子文件夹有:

  • 项目A

  • 项目B

  • 项目C

迁移原则:

尽可能对项目开发的影响较小;

迁移目的机器

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天后确认没有影响后删除

END

11月8日 免费直播课

微思金牌讲师

课程亮点

适合人群

讲什么内容?

上课时间:11月8日 星期一 19:30

赠送配套技术文档

赠送配套视频教程

学习资料领取,备注:纠删码

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厦门微思网络

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值