- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
svn备份与恢复心得
HYPERLINK /index.php?q=forum/2 \o 专门讨论SVN(Subversion)的安装、配置、技巧等,包括Windows、Unix/Linux系统环境下的svnserve,Apache和SSH。 SVN服务器配置
Svn备份与恢复有感
?????? 今天的主要任务是对svn的备份与恢复进行测试,但是测试的过程中,也出现的一些问题,现在写出来与大家进行分享,希望对大家有所帮助。
这里我介绍两种备份方式:完全备份和增量备份。
首先进行完全备份的测试,我从网上查的方法进行测试。
1. 完全备份
??????? 最常见和简单的备份就是直接使用拷贝命令,将版本库目录拷贝到备份目录上,就可以了。但是这样不是很安全的方式,因为如果在拷贝时版本库发生变化,将会造成备份的结果不够准确,失去备份的作用,为此Subversion提供了“svnadmin hotcopy”命令,可以防止这种问题。
版本库目录结构如下图所示:
?
D:\svnroot├─project1│ ├─conf│ ├─dav│ ├─db│ │ ├─revprops│ │ ├─revs│ │ └─transactions│ ├─hooks│ └─locks└─project2├─conf├─dav├─db│ ├─revprops│ ├─revs│ └─transactions├─hooks└─locks?
如果要把project1备份到d:\svnrootbak目录下,只需要运行:
svnadmin hotcopy d:\svnroot\project1 d:\svnrootbak\project1
但是如果我们这个目录下有许多版本库,则需要为每个版本库写这样一条语句备份,为此我写了下面的脚本,实现备份一个目录下的所有版本库。
我们在D:\svnroot下创建了两个文件,
simpleBackup.bat:
?
@echo 正在备份版本库%1......
@%SVN_HOME%\bin\svnadmin hotcopy %1 %BACKUP_DIRECTORY%\%2
@echo 版本库%1成功备份到了%2!?
这个文件仅仅是对“svnadmin hotcopy”的包装,然后是
backup.bat:
?
@echo off
set SVN_HOME=C:\Program Files\VisualSVN Server//VisualSVN Server的安装路径
set SVN_ROOT=D:\svnroot//库根目录地址
set BACKUP_SVN_ROOT=D:\svnrootbak//要备份的地址
set BACKUP_DIRECTORY=%BACKUP_SVN_ROOT%\%date:~0,10%
if exist %BACKUP_DIRECTORY% goto checkBack
echo %BACKUP_DIRECTORY%%SVN_ROOT%/backup.log
mkdir %BACKUP_DIRECTORY%
for /r %SVN_ROOT% %%I in (.) do @if exist %%I\conf\svnserve.conf %SVN_ROOT%\simplebackup.bat %%~fI %%~nI
goto end
:checkBack
@echo %BACKUP_DIRECTORY%
goto end
:end?
你在使用的时候,只需要修改backup.bat开头的三个路径,根据以上的配置,你只需要运行backup.bat,就可以把“SVN_ROOT”下的版本库都备份到“BACKUP_SVN_ROOT”里,并且存放在备份所在的目录里,例如“D:\svnrootbak\2006-10-22”。
虽然这部分工作很简单,可是必须有人定时地去执行这个操作(例如每周一凌晨),为了避免发生遗忘的情况,我们可以将这个操作加入到系统的at任务当中去,例如还是上面的环境,为了安装at任务,我们运行:
at 11:30/every:F D:\svnroot\backup.bat这样在每周五晚上11:30都会执行这个备份过程。当然备份在本机也是不安全的,你也许需要上传到别的机器,这个就要靠你自己去实现了。
出现的问题:
D:\svnrootbak\2006-10-22中是空的。
首先查看脚本,看看是不是路径写错了,经检查路径正确。然后运行命令,svnadmin hotcopy d:\svnroot\project1 d:\svnrootbak\project1发现命令不能运行,上网查原来是没设环境变量。
下面是设环境变量的步骤:右键我的电脑-属性,在系统属性
文档评论(0)