当前位置:  开发笔记 > 编程语言 > 正文

SVN存储库备份策略

如何解决《SVN存储库备份策略》经验,为你挑选了9个好方法。

我是SVN的新手,我想知道在Windows环境中有哪些方法可用于备份存储库?



1> Nicolai Reus..:

你可以使用像(Linux)这样的东西:

svnadmin dump repositorypath | gzip > backupname.svn.gz

由于Windows不支持GZip,它只是:

svnadmin dump repositorypath > backupname.svn


使用7Zip:`svnadmin dump repositorypath | "%ProgramFiles%\ 7-Zip\7z.exe"一个backup.7z -sibackupname.svn`这将创建一个名为'backup.7z'的文件,其中包含一个文件'backupname.svn',它是从`svnadmin dump`.
我不确定,但肯定有些像7-zip这样的工具可以压缩STDIN的数据,这意味着你也可以在Windows上使用第一种风格.
我只是自己看一下,文档中的一条评论http://svnbook.red-bean.com/nightly/en/svn.reposadmin.maint.html#svn.reposadmin.maint.backup就是你要的除非使用--deltas选项,否则获取非常大的svnadmin转储输出.
Windows确实支持gzip,只需从unxutils网页获取它http://unxutils.sourceforge.net/
@Josh Stodola __bash__:`用于项目*; svnadmin dump $ {project} | gzip> /backuppath/${project}.svn.gz; 完成;`

2> Duncan Smart..:

我们使用svnadmin hotcopy,例如:

svnadmin hotcopy C:\svn\repo D:\backups\svn\repo

根据这本书:

您可以随时运行此命令并制作存储库的安全副本,无论其他进程是否正在使用存储库.

您当然可以使用ZIP(最好是7-Zip)备份副本.恕我直言这是备份选项中最直接的选择:在遇到灾难的情况下除了将其解压缩到位之外别无他法.


我认为svnadmin dump是备份的首选,原因有两个.请参见http://svn.haxx.se/users/archive-2005-05/0842.shtml
@daremon:我建议你阅读你链接到的帖子的回复,特别是提到svnadmin转储的回复不包括repo的控制文件.

3> Kevin Dente..:

Subversion网站上有一个hotbackup.py脚本,它非常便于自动备份.

http://svn.apache.org/repos/asf/subversion/trunk/tools/backup/hot-backup.py.in


我相信这是一个适用于hotbackup脚本的链接:http://svn.apache.org/repos/asf/subversion/trunk/tools/backup/hot-backup.py.in

4> 小智..:

这是一个Perl脚本,它将:

    备份回购

    通过SCP将其复制到另一台服务器

    检索备份

    从备份创建测试存储库

    做一个测试结帐

    给您发送任何错误(通过cron)

剧本:

my $svn_repo = "/var/svn";  
my $bkup_dir = "/home/backup_user/backups";
my $bkup_file = "my_backup-";
my $tmp_dir = "/home/backup_user/tmp";   
my $bkup_svr = "my.backup.com";
my $bkup_svr_login = "backup";

$bkup_file = $bkup_file . `date +%Y%m%d-%H%M`;
chomp $bkup_file;
my $youngest = `svnlook youngest $svn_repo`;
chomp $youngest;

my $dump_command = "svnadmin  -q dump $svn_repo > $bkup_dir/$bkup_file ";
print "\nDumping Subversion repo $svn_repo to $bkup_file...\n";
print `$dump_command`;
print "Backing up through revision $youngest... \n";
print "\nCompressing dump file...\n";
print `gzip -9 $bkup_dir/$bkup_file\n`;
chomp $bkup_file;
my $zipped_file = $bkup_dir . "/" . $bkup_file . ".gz";
print "\nCreated $zipped_file\n";
print `scp $zipped_file $bkup_svr_login\@$bkup_svr:/home/backup/`;
print "\n$bkup_file.gz transfered to $bkup_svr\n";

#Test Backup
print "\n---------------------------------------\n";
print "Testing Backup";
print "\n---------------------------------------\n";
print "Downloading $bkup_file.gz from $bkup_svr\n";
print `scp $bkup_svr_login\@$bkup_svr:/home/backup/$bkup_file.gz $tmp_dir/`;
print "Unzipping $bkup_file.gz\n";
print `gunzip $tmp_dir/$bkup_file.gz`;
print "Creating test repository\n";
print `svnadmin create $tmp_dir/test_repo`;
print "Loading repository\n";
print `svnadmin -q load $tmp_dir/test_repo < $tmp_dir/$bkup_file`;
print "Checking out repository\n";
print `svn -q co file://$tmp_dir/test_repo $tmp_dir/test_checkout`;
print "Cleaning up\n";
print `rm -f $tmp_dir/$bkup_file`;
print `rm -rf $tmp_dir/test_checkout`;
print `rm -rf $tmp_dir/test_repo`;

脚本源以及有关此类备份的合理性的更多详细信息.


+1包括关于*测试*备份的步骤.

5> Tom Mayfield..:

我使用svnsync,它将远程服务器设置为镜像/从属服务器.两周前我们有一台服务器停机,我能够很容易地将从机切换到主要位置(只需将从机存储库上的UUID重置为原始位置).

另一个好处是同步可以由中间人运行,而不是作为任一服务器上的任务.我有一个客户端,两个VPN同步它们之间的存储库.



6> Adam..:

svnadmin hotcopy

svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH

此子命令对存储库进行完整的"热"备份,包括所有挂钩,配置文件,当然还有数据库文件.



7> RobotCaleb..:

您可以使用创建存储库备份(转储)svnadmin dump.

然后,您可以使用它导入它svnadmin load.

SVNBook中的详细参考: "使用svnadmin进行存储库数据迁移"



8> Uwe Keim..:

svnbackup over Google Code,一个.NET控制台应用程序.



9> 小智..:

基本上,如果svn服务器停止,则可以安全地复制存储库文件夹.(来源:https://groups.google.com/forum/?fromgroups#!topic/visssvn/i_55khUBrys%5B1-25%5D)

因此,如果您被允许停止服务器,那么只需使用某些脚本或备份工具即可复制存储库.Cobian Backup非常适合,因为它可以自动停止和启动服务,并且它可以执行增量备份,因此您只需备份最近更改过的存储库部分(如果存储库很大并且您要备份到远程位置,则非常有用) ).

例:

    安装Cobian备份

    添加备份任务:

    将源设置为存储库文件夹(例如C:\Repositories\),

    添加备份前事件"STOP_SERVICE"VisualSVN,

    添加备份后事件,"START_SERVICE"VisualSVN,

    根据需要设置其他选项.我们已经设置了增量备份,包括删除旧备份,备份计划,目标,压缩包括.存档拆分等

    利润!

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有