加入收藏 | 设为首页 | 会员中心 | 我要投稿 百科站长网 (https://www.baikewang.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

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

发布时间:2022-10-26 12:35:31 所属栏目:系统 来源:
导读:  备份篇

  前言

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

  目的

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

  面临的现状

  整个svn备份文件非
  备份篇
 
  前言
 
  此处要备份的库名以test为例
 
  目的
 
  当svn服务器发生灾难级故障时,我们可以利用备份文件对公司资产:svn代码进行恢复
 
  面临的现状
 
  整个svn备份文件非常大,如果每次进行都全量备份;将消耗非常多的硬盘资源。
 
  解决方案
 
  使用全量备份+增量备份的方案;对svn代码进行异地备份
 
  每个月1号进行一个完整备份,其他时候进行差异备份
 
  一:全量备份步骤二:增量备份步骤
 
  备份策略总结
 
  凌晨1点开始备份,先使用svnlook youngest获取版本数量,然后再全量的压缩备份。将全量备份的版本号记录好,下次增量备份的时候,可以用该版本号+1进行差异备份
 
  还原数据篇
 
  背景
 
  上面我们通过svn的官方备份工具svnadmin dump,对svn仓库已经进行了备份;现在我们对数据进行还原
 
  操作环境全量还原步骤增量还原步骤
 
  svnadmin load /data/svn/test/ < /data/backup/svn/test_dumpfile_73881-73988
  [root@localhost svn]# svnlook youngest /data/svn/test/73988
  迁移方案总结:
 
  先利用全量备份,再利用增量备份进行还原服务器系统备份,最后和客户端开发同学协助确认下:还原的svn数据是否可以被正常使用。
 
  迁移篇
 
  前言
 
  svn://192.168.1.1/test中包含了公司所有的项目A、项目B、项目C(除客户端代码外);不便于直接使用
 
  方法:
 
  为了更好的区别项目,将不同的项目使用不同的版本库;从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天后确认没有影响后删除
  备份篇
 
  前言
 
  此处要备份的库名以test为例
 
  目的
 
  当svn服务器发生灾难级故障时,我们可以利用备份文件对公司资产:svn代码进行恢复
 
  面临的现状
 
  整个svn备份文件非常大,如果每次进行都全量备份;将消耗非常多的硬盘资源。
 
  解决方案
 
  使用全量备份+增量备份的方案;对svn代码进行异地备份
 
  每个月1号进行一个完整备份,其他时候进行差异备份
 
  一:全量备份步骤二:增量备份步骤
 
  备份策略总结
 
  凌晨1点开始备份,先使用svnlook youngest获取版本数量,然后再全量的压缩备份。将全量备份的版本号记录好,下次增量备份的时候,可以用该版本号+1进行差异备份
 
  还原数据篇
 
  背景
 
  上面我们通过svn的官方备份工具svnadmin dump,对svn仓库已经进行了备份;现在我们对数据进行还原
 
  操作环境全量还原步骤增量还原步骤
 
  svnadmin load /data/svn/test/ < /data/backup/svn/test_dumpfile_73881-73988
  [root@localhost svn]# svnlook youngest /data/svn/test/73988
  迁移方案总结:
 
  先利用全量备份,再利用增量备份进行还原服务器系统备份,最后和客户端开发同学协助确认下:还原的svn数据是否可以被正常使用。
 
  迁移篇
 
  前言
 
  svn://192.168.1.1/test中包含了公司所有的项目A、项目B、项目C(除客户端代码外);不便于直接使用
 
  方法:
 
  为了更好的区别项目,将不同的项目使用不同的版本库;从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天后确认没有影响后删除
 

(编辑:百科站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!