转载:https://www.cnblogs.com/HByang/articles/9088206.html

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种方法麻烦。

dump

命令语法:svnadmin dump 版本库路径及名称 –revision 导出的版本号> 导出的命名

增量备份:使用svnadmin dump的–incremental选项来实现
svnadmin dump 版本库路径及名称 –revision 上次导出的版本号:到本次要导出到的版本号 –incremental > 导出的命名

实验

创建用户

创建版本库

给用户授权

进行版本库的全备

客户端进行同步创建数据(这里是测试所以就随便创建了123)然后点击提交

到此我们的环境创建完成

进行版本库的全备

Svnadmin dump C:\Repositories\hehe-DB > ./bak.dump

进行第一次的增备

客户端再次创建数据文件456并提交

进行数据的增量备份

svnadmin dump E:\Repositories\测试 -r 1:2 --incremental > E:\inc.bak

增量模式备份, 冒号前后是开始和结束的版本号

第二次增量备份

客户端再次进行数据创建并提交

服务端进行增量

模拟误删除版本库

客户端再次提交数据

删除服务端hehe-DB库内所有文件

进行数据还原

svnadmin load C:\Repositories\hehe-DB < ./bak.dump

由于9和10 在模拟故障前没有进行数据备份所以就没有

hotcopy命令

语法:svnadmin hotcopy 路径/repository 路径/backup

此时你可以发现在你的E盘下面会有bak文件夹且里面有东西

增量备份

如果此时你需要删除冗余的日志文件只需在后面添加--clean-logs参数即可,如果需要增量备份后面加入--incremental即可

如果要做还原的话可以直接将备份文件里面的东西直接拷贝到版本库相对路径下即可。相比dump hotcopy更加方便省事

Svn hotcopy备份脚步

Windows下svn备份脚步这个脚步可放心使用,已经在正式环境下测试过了

@echo 正在备份版本库%1......@%SVN_HOME%\bin\svnadmin hotcopy %1 %BACKUP_DIRECTORY%\%2@echo 版本库%1成功备份到了%2!

Backup脚本

 1 echo off2 3 rem Subversion的安装目录4 5 set SVN_HOME="D:\Program Files\VisualSVN Server"6 7 rem 所有版本库的父目录8 9 set SVN_ROOT=D:\Repositories
10
11 rem 备份的目录
12
13 set BACKUP_SVN_ROOT=E:\Backup
14
15 set BACKUP_DIRECTORY=%BACKUP_SVN_ROOT%\%date:~0,10%
16
17 if exist %BACKUP_DIRECTORY% goto checkBack
18
19 echo 建立备份目录%BACKUP_DIRECTORY%>>%SVN_ROOT%/backup.log
20
21 md %BACKUP_DIRECTORY%
22
23 rem 验证目录是否为版本库,如果是则取出名称备份
24
25 for /r %SVN_ROOT% %%I in (.) do @if exist "%%I\conf\svnserve.conf" %SVN_ROOT%\simpleBackup.bat "%%~fI" %%~nI
26
27 goto end
28
29 :checkBack
30
31 echo 备份目录%BACKUP_DIRECTORY%已经存在,请清空。
32
33 goto end
34
35 :end

这里只有日期定义格式为“-”才能正常运行,如果是“/”就会提示找不到备份目录须要定义日期格式

Windows下定义格式

echo “%date:~0,10%”

echo “%date:~0,4%_%date:~5,2%_%date:~8,2%”

windows下svn备份相关推荐

  1. Windows下SVN权限配置过程详解

    本节讲解一下Windows下SVN权限配置说明,针对的是一个目录下多库的情况,下面是具体的介绍,希望通过本文的学习,你能够对SVN权限配置问题有更加深刻的认识. 1.本文档适用于对Subvesion的 ...

  2. Windows下RMAN备份脚本

    Windows 下RMAN备份脚本,比较简单. 我们看内容. 1.      修改RMAN相关参数 RMAN>show all; RMAN>CONFIGURE CONTROLFILE AU ...

  3. Windows下自动备份Oracle数据库

    Windows下自动备份Oracle数据库 先说说为啥要搞这么个玩意 那是上线前几天[这不是讲故事],测试环境用的数据库崩了[为啥崩了不知道].之前造的一堆测试数据全都没得了[].然后急急忙忙的恢复环 ...

  4. windows下SVN日志反馈中文乱码的解决方法

    windows下SVN日志反馈中文乱码的解决方法 参考文章: (1)windows下SVN日志反馈中文乱码的解决方法 (2)https://www.cnblogs.com/wangkeqin/p/11 ...

  5. windows下mysql备份

    windows下mysql备份 关键字: windows mysql 备份 一.单机备份 1.   ============================     假想环境:     MySQL 安 ...

  6. Windows下svn使用教程

    Windows下svn使用教程 SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. ...

  7. svn服务器如何删文件,windows下 svn服务器端 无法删除文件,只能删除文件夹,这是怎么回...

    windows下 svn服务器端 无法删除文件,只能删除文件夹,这是怎么回 (2011-06-22 22:32:46) 标签: 情缘 咖啡机 杂谈 念删除文件时,右键后没有瞥见有删除的选项!敬辞谁理解 ...

  8. 版本控制概述|VSS/CVS/SVN/Git比较|Windows下SVN搭建详细介绍

    版本控制介绍 常用版本控制技术 vssVisual SourceSafe cvsConcurrent Versions System svnSubversion git 区别转自网络 SVN使用简介 ...

  9. 在linux和windows下自动备份数据库

    摘要: 详细介绍在windows和linux下自动备份数据库的过程,希望可以让新手立即上手吧! 本文档内容共分为2大部分:linux和windows Linux和windows都分为:准备工作和操作阶 ...

最新文章

  1. windos 2008 vista 下的端口范围改变
  2. 收缩 tempdb 数据库
  3. 设计模式之间可以相互功能替换吗?
  4. 只用一张图+相机走位,AI就能脑补周围环境,来自华人团队 | CVPR2022
  5. 自己整理的计算机视觉领域稍微容易中的期刊(第一版)
  6. Java设计模式之行为型:备忘录模式
  7. [linux]cp和mv对文件和链接影响的区别
  8. X265源码解析1-Encode方法
  9. 基于神经网络的混合计算(DNC)-Hybrid computing using a NN with dynamic external memory
  10. Unity3D入门其实很简单
  11. 服务器升级文件 不推送就无法打开吗,Win7升Windows10有获取通知,但是就不推送的解决方法...
  12. 如何使用gcc编译器
  13. 《企业软件交付:敏捷与高效管理精要》——2.2 MyCo公司和MyProj企业软件交付项目...
  14. 如何判断数据库中是否已经存在某个临时表?
  15. 安卓修改大师功能简介
  16. 秒懂---LDA算法
  17. 三极管放大电路基础知识
  18. pycharm+mysql安装步骤
  19. python 微信发送图片失败什么原因_微信发不出去图片的4种解决方法
  20. 【Rust日报】 2020-01-10 track_caller 錯誤處理大突破

热门文章

  1. RGB读取转为BGR显示
  2. axure流程图模式_PRD之道:活用Axure绘制高质量的业务流程图
  3. 埃及分数 ← IDA*
  4. JS在页面渲染一个div,用鼠标点击鼠标随意拖动该元素,当鼠标松开时,该元素会停在鼠标松开的页面位置。
  5. Java文档注释(利用javadoc生成HTML文档)
  6. UML-交互图包含哪些图?
  7. 微信小程序学习笔记(五) 云开发
  8. 膜拜大佬!关于Android开发的面试经验总结,面试必备
  9. Android 设置多语言不生效问题
  10. java制作一个GUI实现字符串的相关操作(合并、比较、检索、清除)