svn备份库及还原库

文章
林里克斯

操作SVN备份及还原备份

实验平台:CentOS 6.8
SVN版本:1.6.11(r934486)
Editor:林里克斯


操作步骤:


一、介绍


svn备份不是靠普通的复制拷贝方式来备份。

svn备份方式一般有三种:

svnadmin dump       #官方推荐方式
svnadmin hotcopy    #只能进行全量拷贝,不能进行增量备份
svnsync         #制作2个镜像库,当一个坏了的时候可以迅速切换到另一个。需1.4以上版本支持

以上三种方式详解如下:

第一种svnadmin dump是官方推荐的备份方式,优点是比较灵活,可以全量备份也可以增量备份,并提供了版本恢复机制。
缺点是:如果版本比较大,如版本数增长到数万、数十万,那么dump的过程将非常慢;备份耗时,恢复更耗时;不利于快速进行灾难恢复。
个人建议在版本数比较小的情况下使用这种备份方式。

第二种svnadmin hotcopy原设计目的估计不是用来备份的,只能进行全量拷贝,不能进行增量备份;
优点是:备份过程较快,灾难恢复也很快;如果备份机上已经搭建了svn服务,甚至不需要恢复,只需要进行简单配置即可切换到备份库上工作。
缺点是:比较耗费硬盘,需要有较大的硬盘支持。

第三种svnsync实际上是制作2个镜像库,当一个坏了的时候,可以迅速切换到另一个。不过,必须svn1.4版本以上才支持这个功能。
优点是:当制作成2个镜像库的时候起到双机实时备份的作用;
缺点是:当作为2个镜像库使用时,没办法做到'想完全抛弃今天的修改恢复到昨晚的样子';而当作为普通备份机制每日备份时,操作又较前2种方法麻烦。


二、实际操作


1.全量备份操作

1)svnadmin dump

svnadmin dump 版本库路径及名称 –revision 备份的版本号> 备份的命名
eg:
$ svnadmin dump /svn/jarbo/ --revision 116 > /home/ane/svn_dump116_20170212
* Dumped revision 116.
#备份116版本

2)svnadmin hotcopy

svnadmin hotcopy 版本库路径及名称 备份路径 –clean-logs
eg:
$ svnadmin hotcopy /svn/jarbo/ /home/ane/svnhotcop_20170212 --clean-logs
#全量拷贝了一份svn库文件过去

3)svnsync

$ svnsync init file://svn/jarbo/ 初始化目标仓库
$ svnsync  sync file://svn/jarbo/ 开始同步

2.增量备份

svnadmin dump 版本库路径及名称 --revision 上次导出的版本号:到本次要导出到的版本号 --incremental > 备份的命名
eg:
$ svnadmin dump /svn/jarbo/ --revision 116:1118 --incremental > /home/ane/svn_dump118_20170212
* Dumped revision 116.
* Dumped revision 117.
* Dumped revision 118.
eg:
svnadmin dump --revision 5162 --deltas /ane/svn/tl/ | bzip2 | tee dump.bz2 | md5sum > dump.md5
#分步解释:--revision 选择要备份的版本,也不选择,则备份全部版本,这里选择是因为svn库大切版本较多;最重要的一步是 --deltas,将消耗更多的CPU资源,但拥有更有效的差异存储办法。
bzip2压缩方案比gzip慢,但换来的更好的压缩率。
更有趣的是,tee方法将压缩的数据流转向到文件dump.bz2,同时将其输出到标准输出,后者有转向给了MD5摘要计算工具。

三、恢复备份操作


$ svnadmin load /svn/jarbo/ < /home/ane/svn_dump122_20170212

<<< Started new transaction, based on original revision 116
     * editing path : 01-日常文档/安能变更方案.xlsx ... done.
svnadmin: File already exists: filesystem '/jarbo/db', transaction '122-3h', path '04-Blog/django-blog-master/blog/migrations/0002_auto_20171208_1508.py'
     * adding path : 04-Blog/django-blog-master/blog/migrations/0002_auto_20171208_1508.py ...

Over~

版权协议须知!

本篇文章来源于 Uambiguous ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意

929 0 2017-02-13


分享:
icon_mrgreen.gificon_neutral.gificon_twisted.gificon_arrow.gificon_eek.gificon_smile.gificon_confused.gificon_cool.gificon_evil.gificon_biggrin.gificon_idea.gificon_redface.gificon_razz.gificon_rolleyes.gificon_wink.gificon_cry.gificon_surprised.gificon_lol.gificon_mad.gificon_sad.gificon_exclaim.gificon_question.gif
博主卡片
林里克斯 博主大人
一个致力于Linux的运维平台
运维时间
搭建这个平台,只为分享及记载自己所遇之事和难题。

现在时间 2024-05-18

今日天气
站点统计
  • 文章总数:240篇
  • 分类总数:29个
  • 评论总数:10条
  • 本站总访问量 222806 次

@奥奥

@Wong arrhenius 牛比

@MakerFace 厉害了!