备份:

1.停止svnserve服务
2. svnadmin dump /home/workhome/svn/repository | gzip > svnbackup.gz
window操作系统下不能用gzip
还原:
1.停止svnserve服务
2.解压缩svnbackup.gz ——> svnbackup.svn
3. svnadmin load /home/workhome/svn/newrepository < svnbackup.svn
 
 
 
SVN备份恢复 同步存储等日常管理
备份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  
其他
svnadmin recover — 将版本库数据库恢复到稳定状态 
svnadmin recover /home/workhome/svn/newrepository  
删除存储库中无用的日志文件 
svnadmin list-unused-dblogs /home/workhome/svn/newrepository/ | xargs rm -vf  
删除存储库中所有剩余的共享内存文件 
rm -f /home/workhome/svn/newrepository/db/_db.0*  
实现svnsync
 
实现svnsync的唯一的前提条件是创建一个希望镜像的版本库,一旦创建,你就可以按照下面步骤继续。 
 
Step 1: 创建镜像Repository(要与主Repository名字相同)
svnadmin create MIRROR_REPO_PATH 
Step 2: 设置镜像版本库只对同步用户可写
svnsync synchronize -h  
synchronize (sync): usage: svnsync synchronize DEST_URL
Transfer all pending revisions to the destination from the source  with which it was initialized.  
Valid options:   
  --non-interactive        : do no interactive prompting   
  --no-auth-cache          : do not cache authentication tokens   
  --username ARG           : specify a username ARG (deprecated;   see --source-username and --sync-username)   
  --password ARG           : specify a password ARG (deprecated;   see --source-password and --sync-password)   
  --source-username ARG    : connect to source repository with username ARG   
  --source-password ARG    : connect to source repository with password ARG   
  --sync-username ARG      : connect to sync repository with username ARG   
  --sync-password ARG      : connect to sync repository with password ARG   
  --config-dir ARG         : read user configuration files from directory ARG   
  -q [--quiet]             : print as little as possible  
这句意思是不是同步用户可以主Repository和镜像Repository都设成一样。待实践
为了让镜像版本库只被同步用户写,我们的例子里用户名是”svnsync”,我们有一些选项,一个就是使用Subversion的授权功能设置缺省的访问规则: 
[/]   
* = r   
svnsync = rw  
 
另一个选项就是使用start-commit(MIRROR_REPO_PATH/hooks下) 检查svnsync用户,下面是一个例子,是shell脚本: 
 #!/bin/sh  
USER=”$2″    
if [ “$USER” = “svnsync” ];   
then exit 0 
fi   
echo “Only the syncuser user may commit new revisions as this is a read-only, mirror repository.” >&2 
exit 1  
Step 3: 让镜像版本库使用同步用户修改修订版本属性
 
为此,我们需要创建一个pre-revprop-change(MIRROR_REPO_PATH/hooks下)钩子,类似于下面的例子,也是shell脚本: 
 #!/bin/sh    
USER=”$3″    
if [ “$USER” = “svnsync” ];  
then exit 0;  
fi   
echo “Only the syncuser user may change revision properties as this is a read-only, mirror repository.”  >&2 
exit 1  
Step 4: 注册同步的镜像版本库
 
在任何平台使用下面的svnsync命令: 
svnsync initialize URL_TO_MIRROR_REPO URL_TO_MASTER_REPO --username=svnsync --password=svnsyncpassword 
如果所有的配置正确,你一定会看到下面的输出: 
Copied properties for revision 0. 
 
现在你已经注册了镜像版本库与主版本库的同步,我们必须继续执行初始的同步,这样镜像版本库才和主版本库是一样的了。 
 
Step 5: 执行初始同步
 
为了确定所有事情已经准备好了,并且执行初始同步,在任何系统只需要执行: 
svnsync synchronize URL_TO_MIRROR_REPO --username=svnsync --password=svnsyncpassword  
如果所有的同步正确,你会看到类似的输出: 
Committed revision 1. 
Copied properties for revision 1. 
Committed revision 2. 
Copied properties for revision 2. 
Committed revision 3. 
Copied properties for revision 3.… 
 
Step 6: 使用post-commit(MASTER_REPO_PATH/hooks下)钩子自动同步
 
根据初始同步的输出,我们现在要做的就是写一个定时执行或post-commit钩子来同步镜像版本库,我建议post-commit,因为它让你的镜像版本库尽可能的最新,下面是可以用在主版本库上同步镜像版本库的post-commit钩子,一个shell脚本: 
 # Example for synchronizing one repository from the post-commit hook  
#!/bin/sh 
svnsync synchronize URL_TO_MIRROR_REPO -username=svnsync -password=svnsyncpassword & 
exit 0  
注:上述钩子脚本需用 chmod 755 使之可运行。

转载于:https://blog.51cto.com/zcnick/938997

svn 备份恢复【转】相关推荐

  1. 版本管理工具Subversion Edge的备份恢复与数据迁移方案

    软件开发生命周期中会使用到多种工具,这些工具的更迭与迁移,备份与恢复都构成了软件开发生命周期的重要部分.这篇文章以当下最新版本的Subversion Edge为例介绍一下其备份恢复与数据迁移方案,因相 ...

  2. VisualSVN server 备份恢复

    VisualSVN server 备份恢复 Svn版本:VisualSVN server 3.6.1 操作系统:windows server 2008标准版 库文件位置:D:\Repositories ...

  3. Linux svn备份和还原

    转自: http://spiritfrog.iteye.com/blog/448578 + http://magnet2008.iteye.com/blog/586578 备份策略 ========= ...

  4. windows下svn备份

    转载:https://www.cnblogs.com/HByang/articles/9088206.html svn备份的三种方法 1)svnadmin dump 2)svnadmin hotcop ...

  5. 备份集过期时间_TiDB备份恢复方式你知多少?

    背景 学习一款数据库,要学会备份和恢复.备份是一个严谨的工作,作为一个dba,掌握数据库备份.恢复的各种手段. 下面让我们一起来看看TiDB的备份恢复有那些手段吧. 基于MVCC的恢复方式 相关原理已 ...

  6. 虚拟桌面的备份恢复最佳实践 第一部分

    摘要 VMware View 是目前虚拟桌面市场的旗舰产品.借助它,企业可以将办公系统.应用和基础架构以高性能.高度可扩展的集中式托管服务形式交付给用户.View 还可提供保护它所支持的系统和应用以及 ...

  7. mysql备份数据库语句6_13.4 MySQL用户管理;13.5 常用sql语句;13.6 MySQL数据库备份恢复...

    扩展 : SQL语句教程 什么是事务?事务的特性有哪些? 根据binlog恢复指定时间段的数据 mysql字符集调整 使用xtrabackup备份innodb引擎的数据库  innobackupex  ...

  8. mysql用户管理,常用sql语句,mysql数据库备份恢复

    2019独角兽企业重金招聘Python工程师标准>>> mysql用户管理 grant all on . to 'user1' identified by 'passwd'; gra ...

  9. 什么鬼!基于备份恢复的实例数据还能变多?

    此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 对数据库进行数据备份无非两种方式,一种是逻辑备份,也就是直接连上数据库导出所有的数据,对于MySQL,就是通 ...

最新文章

  1. 《基于单幅图像的快速去雾》原理与C++复现(有一定工程意义)
  2. python爬图片_网络爬虫经验:反爬和反反爬
  3. linux 内核申请内存大小,linux内核常用的内存申请函数
  4. 【转】你必须了解的Session的本质
  5. java中注解的解析_【Java】中的注解与注解解析器
  6. oc---类方法load和initialize的区别
  7. android底部导航栏_Kotlin实现底部导航栏
  8. [渝粤教育] 西南科技大学 数据库应用 在线考试复习资料(3)
  9. mysql 不能添加外键 1215_MySQL错误1215:无法添加外键约束
  10. K8S的SDN容器网络解决方案【机制篇】
  11. linux网络编程socket,Linux网络编程入门
  12. sqlplus 调试存储过程
  13. flink fi java_Flink DataStream API编程指南
  14. CPLEX案例教程推荐
  15. 读取ClientKey的另一种思路,无需注入DLL
  16. 接线端子冲击和振动测试要求
  17. Windows下winrm的网络类型公用的问题解决
  18. PON串口链接上网步骤
  19. 【漏洞复现】海洋CMS6.28远程代码执行
  20. 棋类游戏的真正收获 - 延迟满足感

热门文章

  1. 渴望整成“卡戴珊” 澳大利亚年轻女性以整容为荣
  2. 这一大堆打着RAR旗号的文件都是啥
  3. 由DB2分页想到的,关于JDBC ResultSet 处理大数据量
  4. VC++ 结束线程 AfxBeginThread AfxEndThread
  5. Notes for Linux Administration Handbook (1) : Booting and Shutting Down
  6. 野指针   悬垂指针   迷途指针
  7. 贝叶斯公式的直观理解(先验概率/后验概率)(未完)
  8. opencv-python 无法显示图片
  9. 对tensorflow中的tensor、placeholder及feed_dict的理解
  10. [Flex] Flex 控件类 的自定义事件添加