svnadmin dump备份工具

转载 2016年05月30日 11:21:02

转载:http://blog.itpub.net/23141985/viewspace-713631/

作者:kidking2010

svnadmin dump备份工具(转载)

(

svn

备份

分类: svn学习笔记

这是subversion官方推荐的备份方式。

关闭所有运行的进程,并确认没有程序在访问存储库(如 httpd、svnserve 或本地用户在直接访问)。

备份svn存储库

#压缩备份
svnadmin dump /home/workhome/svn/repository | gzip > ~/repository-backup.gz
#不压缩备份
svnadmin dump /home/workhome/svn/repository > ~/repository-backup.svn

恢复svn存储库

#建立新的svn存储库
svnadmin create /home/workhome/svn/newrepository
#确认成功与否
ls -l /home/workhome/svn/newrepository
#导入存储库数据
svnadmin load /home/workhome/svn/newrepository < ~/repository-backup.svn

或者采用一定的备份策略:
1)定义备份策略:
备份频度:每周六进行一次全量备份,每周日到周五进行增量备份
备份地点:备份存储路径到/home/backup/svn/
备份命名:全量备份文件名为:weekly_fully_backup.yymmdd,增量备份文件命名为:daily-incremental-backup.yymmdd
备份时间:每晚21点开始
备份检查:每月末进行svnadmin load恢复试验。
2)建立全量备份脚本:
在~/下建立一个perl脚本文件,名为weekly_backup.pl,执行全量备份,并压缩备份文件,代码如下(本代码只针对一个库的备份,如果是多个库请做相应改动):

#!/usr/bin/perl -w
my $svn_repos="/home/svn/repos/project1";
my $backup_dir="/home/backup/svn/";
my $next_backup_file = "weekly_fully_backup.".`date +%Y%m%d`;

$youngest=`svnlook youngest $svn_repos`;
chomp $youngest;

print "Backing up to revision $youngestn";
my $svnadmin_cmd="svnadmin dump--revision $youngest $svn_repos> $backup_dir/$next_backup_file";
`$svnadmin_cmd`;
open(LOG,">$backup_dir/last_backed_up"); #记录备份的版本号
print LOG $youngest;
close LOG;
#如果想节约空间,则再执行下面的压缩脚本
print "Compressing dump file...n";
print `gzip -9 $backup_dir/$next_backup_file`;

3)建立增量备份脚本:
在全量备份的基础上,进行增量备份:在~/下建立一个perl脚本文件,名为:daily_backup.pl,代码如下:

#!/usr/bin/perl -w
my $svn_repos="/home/svn/repos/project1";
my $backup_dir="/home/backup/svn/";
my $next_backup_file = "daily_incremental_backup.".`date +%Y%m%d`;

open(IN,"$backup_dir/last_backed_up");
$previous_youngest = ;
chomp $previous_youngest;
close IN;

$youngest=`svnlook youngest $svn_repos`;
chomp $youngest;
if ($youngest eq $previous_youngest)
{
print "No new revisions to backup.n";
exit 0;
}
my $first_rev = $previous_youngest + 1;
print "Backing up revisions $youngest ...n";
my $svnadmin_cmd = "svnadmin dump--incremental --revision $first_rev $youngest $svn_repos > $backup_dir/$next_backup_file";
`$svnadmin_cmd`;
open(LOG,">$backup_dir/last_backed_up"); #记录备份的版本号
print LOG $youngest;
close LOG;
#如果想节约空间,则再执行下面的压缩脚本
print "Compressing dump file...n";
print `gzip -g $backup_dir/$next_backup_file`;

4)配置/etc/crontab文件
配置 /etc/crontab 文件,指定每周六执行weekly_backup.pl,指定周一到周五执行daily_backup.pl;
具体步骤俺就不啰嗦了.

5)备份恢复检查
在月底恢复检查中或者在灾难来临时,请按照如下步骤进行恢复:恢复顺序从低版本逐个恢复到高版本;即,先恢复最近的一次完整备份 weekly_full_backup.071201(举例),然后恢复紧挨着这个文件的增量备份 daily_incremental_backup.071202,再恢复后一天的备份071203,依次类推。如下:
user1>mkdir newrepos
user1>svnadmin create newrepos
user1>svnadmin load newrepos < weekly_full_backup.071201
user1>svnadmin load newrepos < daily_incremental_backup.071202
user1>svnadmin load newrepos < daily_incremental_backup.071203
....

如果备份时采用了gzip进行压缩,恢复时可将解压缩和恢复命令合并,简单写成:
user1>zcat weekly_full_backup.071201 | svnadmin load newrepos
user1>zcat daily_incremental_backup.071202 | svnadmin load newrepos
...

(这部分内容很多参考了《版本控制之道》)



svn库迁移-备份和恢复-svnadmin

文章转载来自:http://blog.sina.com.cn/s/blog_5eb1a2670100l24i.html   前段时间对项目SVN库做整理, 顺带再次研究了下SVN迁移的方式...
  • deng_sai
  • deng_sai
  • 2014年09月26日 16:28
  • 3874

SVN使用svnadmin dump进行备份时报“拒绝访问”错误

svnadmin dump进行备份时报“拒绝访问”错误的解决方法,网上查阅的大多数都是说文件系统错误,自己遇到的情况与网上的不同,就把这个问题和解决方法分析给大家吧...
  • u011592350
  • u011592350
  • 2016年02月25日 14:00
  • 2346

svn 版本库数据的移植:svnadmin dump、svnadmin load 导出

http://chunanyong.iteye.com/blog/875013 初级篇:         版本库数据的移植:svnadmindump、svnadminlo...
  • lanndmentt
  • lanndmentt
  • 2014年12月19日 10:45
  • 4415

svnrdump dump 实现 SVN 库的远程导出

svnrdump dump 命令必须 在 SVN 1.7版本以上提供的用于远程dump SVN库的命令. 一个例子: svnrdump dump https://monkeyk.googleco...
  • monkeyking1987
  • monkeyking1987
  • 2013年09月25日 12:32
  • 5058

SVN备份及其还原 — dump/load方法

由于服务器要进行搬迁,学习了一下SVN备份还原的一些知识,跟大家分享一下。 本文中采用最简单的dump/load方法。 备份: 一个较大的Subsersion版本库想用最少的空间来将它备份下来,...
  • lan120576664
  • lan120576664
  • 2013年11月04日 10:20
  • 1465

svnadmin dump备份工具(转载)

这是subversion官方推荐的备份方式。 关闭所有运行的进程,并确认没有程序在访问存储库(如 httpd、svnserve 或本地用户在直接访问)。 备份svn存储库 #压缩...
  • yuwenruli
  • yuwenruli
  • 2013年03月25日 13:53
  • 916

Visual SVN备份和还原

除去最常用的update,checkout, commit等操作,最常见的就是对svn版本库的备份和还原。 备份策略svn备份一般采用三种方式:1)svnadmin dump 2)svnadmin h...
  • alpa
  • alpa
  • 2010年11月12日 14:58
  • 4232

svn备份方式对比分析

svn备份方式对比分析 一般采用三种方式: 1、svnadmin dump 2、svnadmin hotcopy 3)svnsync 注意,svn备份不宜采用普通的文件拷贝方式(除非你备...
  • Steven_liwen
  • Steven_liwen
  • 2016年07月10日 13:41
  • 1422

完整备份工具dump

  • chenjianqi0502
  • chenjianqi0502
  • 2016年01月08日 10:02
  • 281

Linux完整备份工具 - dump, restore(现在基本不用这两个)

dump          其实 dump 的功能颇强,他除了可以备份整个文件系统之外,还可以制定等级喔!什么意思啊! 假设你的 /home 是独立的一个文件系统,那你第一次进行过 dump 后,再进...
  • zyq522376829
  • zyq522376829
  • 2015年08月06日 14:35
  • 4583
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:svnadmin dump备份工具
举报原因:
原因补充:

(最多只允许输入30个字)