• SVN总结


    最近3天研究svn的自动备份问题。现把一些过程经验总结分享一下。

    由开始写的东西和研究后批注组合而成

    有不对的地方请大家指正!

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    1 现状

    1.1 服务器

    目前SVN服务器占用磁盘空间40G,实际使用10G,已过期文件30G。---后研究发现40G内容均为实际内容,Copyto操作相当于创建了一个新的指针,实际内容并没有被复制。

    1.2 备份方式

    直接利用RAR压缩,执行一次备份需要8.5小时以上。且生成文件较大,难以传输,致命问题是恢复备份的时间不可估计。-----打算采用分卷压缩,还是比较傻

    2 SVN备份方案研究

    2.1 hotcopy

    命令行:svnadmin hotcopy d:\svnhome d:\svnBackup

    效果:完全备份,创建完全一致的目录及内容。

    优点:恢复速度可忽略不计。

    缺点:磁盘占用空间较大,等于服务器文件空间。

    恢复策略:停止服务,删除根目录,重命名备份文件夹为原根目录,重启服务。

    备注:执行此命令时可对服务器进行其他操作,不保证结果是最新版本。建议停止服务后操作。

    2.2 dump

    命令行:1.svnadmin dump d:\svnhome > d:\svnBackup.20100421

            2.svnadmin dump d:\svnhome –revision 15 –incremental > d:\svnBackup.15

    效果:按照版本完全/增量备份

    优点:可执行增量备份(需提供版本号)

    缺点:完全备份时间很长,生成文件大,恢复速度很慢

    恢复策略:svnadmin create d:\newsvnhome

              Svnadmin load d:\newsvnhome < d:\svnBackup.svn

    3 方案

    3.1 脚本

    根据实际情况,现行制定的方案为采用hotcopy的方式编写脚本,并于每周日晚8点定制计划任务自动执行。

    脚本内容:

    @echo off

    :: SVN根目录

    set SVN_HOME="D:\svn_repository"

    :: SVN备份目录

    set SVN_BACKUP="D:\svnBackup"

    :: SVN服务名称

    set SVN_SERVER="SUBVERSION"

    if exist %SVN_BACKUP% goto have

    mkdir %SVN_BACKUP%

    :have

    net stop %SVN_SERVER%

    @echo 正在备份,请稍等...

    svnadmin hotcopy %SVN_HOME% %SVN_BACKUP%\%date:~0,10%

    @echo 备份成功

    net start %SVN_SERVER%

    3.2 存在问题

    目前服务器文件大小依然为40G,备份时间较长,效率应优于rar方式。--------svn的压缩做的非常好,rar压缩svn的压缩比超级高(应该大于99%)基本无用功

    方案1:准备完成备份后在客户端删除不用的文件夹,但发现服务器上其实并没有删除对应内容。失败。-----要删除了还叫什么版本控制,此方案最傻

    方案2:删除服务器db文件夹对应内容,导致客户端无法显示目录结构。失败。-------------目录结构好像不止revprops和revs两部分

    方案3:dump服务器20091116以后版本,删除原根目录,load备份文件。此方案的速度应该很慢很慢。-----------未发现直接能dump版本大于一个版本号的命令,可能需要写bat

    4 附

    Rar命令行分卷:rar a –v4096 d:\a.rar d:\svn_repository

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    另外一些总结:

    1.svn的压缩比很厉害,服务器40g,全部checkout出来100g,实际内容应该比这还要大(未包括一些删除的文件);

    2.dump很好,不愧是官方推荐的形式,不过适合于管理规范的方式,区分正在进行的项目与结束的项目,将不动内容加锁,这样可以将已有内容备份出去,如果想查看可以另设置一个svn服务

    3.隐藏的.svn文件夹占用的空间较大,且很多,删除方案http://www.svn8.com/svnsy/20100228/23538.html

  • 相关阅读:
    Javascript 加解密
    Netsuite 友好提示
    一中另类调试javascrīpt的好方法
    js 转化为标准日期型
    多站点整合—单点登录简单方案{装载}
    win+e 失效
    (转载)向页面某处动态添加js的方法
    prototype.js源码解读(一)
    Saved search in customer center on tab
    spring boot 加载web容器tomcat流程源码分析
  • 原文地址:https://www.cnblogs.com/futao/p/1717489.html
Copyright © 2020-2023  润新知