Subversion Backup and Restore
Backup Specified Revision
- Backup specified revision (here is 20):
$ cd /opt/svnRepo
$ svnadmin dump deployTest/ -r 20 > deploy-r20.dump
- Restore backup:
$ mv deploy-r20.dump /opt/Gcp/tmp
$ cd /opt/Gcp/tmp
$ svnadmin create deploy20
$ svnadmin load deploy20 < deploy-r20.dump
Verify
- Get revision 20 of "deploy.exp" in original repository
$ svn cat -r 20 file:///opt/svnRepo/deployTest/CalcServer/deploy.exp > r20
- Get "deploy.exp" in restored repository
$ svn cat file:///opt/Gcp/tmp/deploy20/CalcServer/deploy.exp > restore20
- Compare them:
$ diff r20 restore20
They are identical.
- Compare logs:
[root@cloud141 /opt/svnRepo]$ svn log -r 20 file:///opt/svnRepo/deployTest/
r20 | bvt | 2013-08-30 17:30:03 +0800 (Fri, 30 Aug 2013) | 1 line
remove unittest in source file
[root@cloud141 /opt/svnRepo]$ svn log file:///opt/Gcp/tmp/deploy20
r1 | bvt | 2013-08-30 17:30:03 +0800 (Fri, 30 Aug 2013) | 1 line
remove unittest in source file
So you can see the restored repository is identical to that part of original repository except the revision number.
Backup Specified Revisions
$ svnadmin dump deployTest/ -r 10:20 > deploy-r20.dump
Incremental Backup
- Backup:
$svnadmin dump myrepos -r 0:1000 > 0-1000.dumpfile
$svnadmin dump myrepos -r 1001:2000 --incremental > 1001-2000.dumpfile
$svnadmin dump myrepos -r 2001:3000 --incremental > 2001:3000.dumpfile
- Restore:
$svnadmin load myrepos < 0-1000.dumpfile
$svnadmin load myrepos < 1001-2000.dumpfile
$svnadmin load myrepos < 2001:3000.dumpfile
Experiment on incremental dump
- Create a incremental backup:
[root@cloud141 /opt/svnRepo]$ svnadmin dump deployTest/ --incremental -r 9:11 > r9-11.dump - Create a full backup:
[root@cloud141 /opt/svnRepo]$ svnadmin dump deployTest/ -r 9:11 > backup9-11.dump - Compare the size of these two dump files, full backup is obviously larger than the incremental counterpart:
[root@cloud141 /opt/svnRepo]$ ll
total 984
-rw-r--r-- 1 root root 997105 Oct 31 19:08 backup9-11.dump
drwxr-xr-x 6 root root 4096 Aug 22 18:09 deployTest
-rw-r--r-- 1 root root 2509 Oct 31 19:07 r9-11.dump - Restore a incremental backup in a fresh repository:
[root@cloud141 /opt/svnRepo]$ mv r9-11.dump ../Gcp/tmp
[root@cloud141 /opt/Gcp/tmp]$ svnadmin create new9
[root@cloud141 /opt/Gcp/tmp]$ svnadmin load new9 < r9-11.dump
<<< Started new transaction, based on original revision 9
svnadmin: File not found: transaction '0-0', path 'CalcServer/src/com/boco/deploy/ConfigLoader.java' - editing path : CalcServer/src/com/boco/deploy/ConfigLoader.java ...[root@
You can see the restore failed. - Restore a incremental backup (revision 9~11) in a "root" repository (restored from revision 8) :
[root@cloud141 /opt/Gcp/tmp]$ svnadmin load backup8 < r9-11.dump
...
[root@cloud141 /opt/Gcp/tmp]$ svn log file:///opt/Gcp/tmp/backup8
r4 | bvt | 2013-08-30 16:35:10 +0800 (Fri, 30 Aug 2013) | 1 line
initial import project
r3 | bvt | 2013-08-30 15:31:47 +0800 (Fri, 30 Aug 2013) | 1 line
make new project basedir
r2 | bvt | 2013-08-29 14:32:15 +0800 (Thu, 29 Aug 2013) | 1 line
remove unittest in source file to pass compile without junit
r1 | bvt | 2013-08-29 14:31:10 +0800 (Thu, 29 Aug 2013) | 1 line
remove unittest in source file to pass compile without junit
Now the restore succeed.
Summary
Backup a huge repository in the following steps:
Execute a full backup at a revision. If the revision n is not 0, you will lose all revisions from 0 to n-1;
Execute incremental backups weekly, use the revision arrange as file name: "inc-rev-from-to.dump", like "inc-rev-35-46.dump";
When original repository corrupts, first load the full backup, then load the incremental ones according to their revision numbers;
Ref:
Subversion Backup and Restore的更多相关文章
- TFS Express backup and restore
When we setup source control server, we should always make a backup and restore plan for it. This ar ...
- 转:db2 backup 及 restore
db2 backup 及 restore 2011-06-21 18:12:20| 分类: AIX |举报 |字号 订阅 两个问题: db2=>list applications db ...
- 第一章、关于SQL Server数据库的备份和还原(sp_addumpdevice、backup、Restore)
在sql server数据库中,备份和还原都只能在服务器上进行,备份的数据文件在服务器上,还原的数据文件也只能在服务器上,当在非服务器的机器上启动sql server客户端的时候,也可以通过该客户端来 ...
- [转]Configure Network Drive Visible for SQL Server During Backup and Restore Using SSMS
本文转自:https://mytechmantra.com/LearnSQLServer/Configure-Network-Drive-Visible-for-SQL-Server-During-B ...
- Backup and restore of FAST Search for SharePoint 2010
一个同事问我一个问题: 如果FAST Search for SharePoint 2010被full restore到了一个之前的时间点, 那么当FAST Search重新开始一个增量爬网的时候, 会 ...
- SQL Server Database Backup and Restore in C#
SQL Server Database Backup and Restore in C# Syed Noman Ali Shah, 7 Feb 201 ...
- csharp: SQL Server 2005 Database Backup and Restore using C#
1.第一种方式: using SQLDMO;//Microsoft SQLDMO Object Library 8.0 /// <summary> /// 数据库的备份 /// 涂聚文注: ...
- Experience on Namenode backup and restore --- checkpoint
Hadoop version: Hadoop 2.2.0.2.0.6.0-0009 Well, We can do this by building Secondary Namenode, Check ...
- Backup and Restore MySQL Database using mysqlhotcopy
mysqlhotcopy is a perl script that comes with MySQL installation. This locks the table, flush the ta ...
随机推荐
- 使用Dice loss实现清晰的边界检测
前言: 在深度学习和计算机视觉中,人们正在努力提取特征,为各种视觉任务输出有意义的表示.在一些任务中,我们只关注对象的几何形状,而不管颜色.纹理和照明等.这就是边界检测的作用所在. 关注公众号CV ...
- 通过css实现幻灯片效果
html: css: .box { border: 0px solid white; width: 1520px; height: 480px; margin: 0 auto; position: a ...
- bash的RANDOM变量生成的是真正的随机数吗
static void seedrand () { struct timeval tv; gettimeofday (&tv, NULL); sbrand (tv.tv_sec ^ tv.tv ...
- gitlab用户,组,项目权限管控
前言:gitlab上的权限管控是非常重要的,尤其是很多研发人员开发一个项目.这个是我总结的权限管控. 1.这个是创建项目时开放权限设置 2.这个创建用户设置的权限 3.用户权限,5种类型用户是 ...
- WPF教程十一:简单了解并使用控件模板
WPF教程十一:简单了解并使用控件模板 这一章梳理控件模板,每个WPF控件都设计成无外观的,但是行为设计上是不允许改变的,比如使用Button的控件时,按钮提供了能被点击的内容,那么自由的改变控件外观 ...
- 记两道最近做的pwn题(ciscn_2019)
这两题为什么要记录呢,一个是我发现网上很多教程没写清楚(也可能是我太菜了),二是细节点很多,不同的大佬方式不太一样,有很多细节需要注意 ciscn_2019_es_2 这题是栈迁移的题,先上exp 1 ...
- Django基础009--Paginator分页
1.引入 from django.core.paginator import Paginator 2.Paginator对象提供的方法 articles = models.Article.object ...
- js学习-apply,call,bind的实现
目录 apply call bind demo apply 简单说:构建一个和调用aplly函数一样的字符串,用eval执行,完了之后删除掉,最后返回执行的结果. Function.prototype ...
- 【JavaWeb】请求和响应Request&Response
请求 请求对象 关于请求 顾名思义,意思就是请求一个"对象" 请求不到的,别想了 请求,就是使用者希望从服务器端索取一些资源,向服务器发出询问.在B/S架构中,就是客户浏览器向服务 ...
- 【洛谷P1962 斐波那契数列】矩阵快速幂+数学推导
来提供两个正确的做法: 斐波那契数列双倍项的做法(附加证明) 矩阵快速幂 一.双倍项做法 在偶然之中,在百度中翻到了有关于斐波那契数列的词条(传送门),那么我们可以发现一个这个规律$ \frac{F_ ...