svn备份一般采用三种方式:
- svnadmin dump (远程仓库可以用svnrdump dump)
- svnadmin hotcopy
- svnsync
svnadmin dump 本地备份(svnrdump dump 远程仓库备份)
优点:
- 官方推荐
- 灵活,可以全量备份,也可以增量备份
- 提供恢复机制
缺点:
- 如果版本比较大,如版本数增长到数万、数十万,那么dump的过程将非常慢
- 备份耗时,恢复更耗时
- 不利于快速进行灾难恢复
备份
这里用svnadmin本地备份为例,svnrdump操作一致,只是换了参数换成远程仓库url
# 本地备份
svnadmin dump repo > full.dump
# 远程仓库备份
svnrdump dump url > full.dump
增量备份
# --incremental 在转储版本号或版本号范围时, 对范围中的第一个版本号按照增量 格式进行转储, 而不是默认行为—转储第一个版本
号的完整内容.
svnrdump dump url -r 26 --incremental > full.dump
还原备份
这里需要注意的是,如果是使用svnrdump命令还原,需要在目标仓库中
配置pre-revprop-change钩子脚本,返回值为0
svnrdump load url < full.dump
svnadmin hotcopy 热拷贝
优点:
- 备份过程快
- 灾难恢复也很快
缺点:
- 比较费磁盘,备份出来的空间与源空间一样大
- 只能镜像全量拷贝,不能进行增量备份
svnadmin hotcopy repo repo4
svnsync仓库镜像工具
优点:
- 当制作成2个镜像库的时候起到双机实时备份的作用
缺点:
- 当作为2个镜像库使用时,没办法做到“想完全抛弃今天的修改恢复到昨晚的样子”;而当作为普通备份机制每日备份时,操作又较前2种方法麻烦
前提是目标仓库中要开启pre-revprop-change,返回值为0
初始化一个镜像仓库
svnsync initialize MIRROR_URL SOURCE_URL
# 可以缩写成
svnsync init MIRROR_URL SOURCE_URL
把源仓库中未同步过的版本号同步到镜像仓库中
svnsync synchronize MIRROR_URL [SOURCE_URL]
# 缩写
svnsync sync MIRROR_URL [SOURCE_URL]