linux中SVN备份有多种方式
1、svnadmin dump
是官方推荐的备份方式,优点是比较灵活,可以全量备份也可以增量备份,并提供版本恢复机制。
缺点是版本数过大,增长到数万以上,那么dump与load过程都将非常慢,耗时长不利于快速进行灾难恢复。在版本数较小的情况下可以使用这种备份方式。
2、svnadmin hotcopy
只能进行全量拷贝,不能进行增量备份。优点是备份较快,恢复也快。缺点是比较耗费硬盘。
svnadmin dump
查看svnadmin dump参数
[root@ncayu168 svn_backup]# svnadmin dump -h
dump: 用法: svnadmin dump REPOS_PATH [-r LOWER[:UPPER] [--incremental]]
将文件系统的内容,以可移植“转存”格式输出到标准输出,并将反馈输出到标准错误。
转存 LOWER 与 UPPER 版本之间的内容。如果没有指定版本,则转储所有的版本树。
如果只有指定 LOWER ,则只转储一个版本树。如果使用了 --incremental 选项,那么
第一个转存的版本只描述它改变的路径;否则它会描述此版本在版本库中涉及到的每个
路径。(在任何情况下,第二个以及后续的版本,只描述这些版本改变的路径。)
有效选项:
-r [--revision] ARG : 指定版本 ARG (或 X:Y 范围)
--incremental : 以增量方式进行转存
--deltas : 在转存输出中使用差异
-q [--quiet] : 在标准错误输出不显示进度 (仅错误)
-M [--memory-cache-size] ARG : 用来减少冗余操作的内存中的额外缓存的大小(MB)
默认值: 16。
[仅用于 FSFS 仓库
用法:
、全量备份一个仓库:
#svnadmin dump /svn/svn/ncayu > /svn/svndump/ncayu_dump20210728
在另一台机器上配置同样的SVN服务器导入dump出来的备份文件
#svnadmin load /svn/svn/ncayu < ncayu_dump20210728
将原先服务器的配置文件备份后复制到新服务器中 authz、passwd、svnserver.conf
2、增量备份
#svnadmin dump /svn/svn/ncayu -r 3200:4000 --incremental > /svn/svndump/ncayu_4000
3200是上次全量备份时的最新版本,4000是当前最新版本。
导入:svnadmin load /svn/svn/ncayu < ncayu_4000
图片示例:
svnadmin hotcopy
查看svnadmin hotcopy参数:
[root@ncayu svn_backup]# svnadmin hotcopy -h
hotcopy: 用法: svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH
产生版本库的即时副本。
有效选项:
--clean-logs : 删除源版本库中多余的BDB日志文件 [BDB]
1. 备份
svnadmin hotcopy /svn/svn/APP/ /data/svn.`date +%F:%T`.bak –clean-logs
如果传递–clean-logs选项,svnadmin会执行热拷贝操作,然后删除不用的Berkeley DB日志文件。
你可以在任何时候运行这个命令得到一个版本库的安全拷贝,不管其它进程是否使用这个版本库。
2. 还原
svnadmin hotcopy /home/svn.`date +%F:%T`.bak /home/svn.`date +%F:%T`.bak
备份命令
:
svnadmin hotcopy /path/to/repository /path/to/backup
写在最后
今天我也是第一次备份svn的仓库,内心有点忐忑不安,还好最后使用svnadmin dump
命令备份完成了。