直接用 svnadmin dump 即可完成完整备份,需确保路径指向版本库根目录、权限正确,并重定向输出到文件;linux 示例:svnadmin dump /var/svn/myproject > /backup/myproject_full.dump,windows 示例:svnadmin dump "e:\svn\repos\projecta" > d:\backup\projecta_full.dump。

直接用 svnadmin dump 就能完成完整备份,不需要额外工具或客户端检出,关键是路径准确、权限到位、重定向输出到文件。
确认版本库路径和权限
先确保你有读取权限,且路径指向的是 Subversion 版本库的根目录(含 db/、conf/、hooks/ 等子目录),不是工作副本或 URL。例如:
- Linux 常见路径:
/var/svn/myproject或/data/svn/repo1 - Windows 常见路径:
E:\svn\repos\projectA或C:\Repositories\Demo
执行前建议用 ls -l(Linux)或 dir(Windows)确认该目录下存在 db 文件夹。
执行全量 dump 备份
命令格式简洁:指定路径,用重定向保存为 dump 文件。不加 -r 参数即导出全部版本(从 rev 0 到最新):
- Linux 示例:
svnadmin dump /var/svn/myproject > /backup/myproject_full.dump - Windows 示例:
svnadmin dump "E:\svn\repos\projectA" > D:\backup\projectA_full.dump
注意:运行用户需对版本库目录有读权限;目标备份目录需有写权限;dump 过程中避免向该库提交新修订,否则可能产生不一致快照。
验证备份文件有效性
dump 文件是纯文本格式,开头必含类似以下内容,说明导出成功:
SVN-fs-dump-format-version: 1Revision-number: 0
还可快速检查是否包含完整版本范围:
- 用
tail -n 20 myproject_full.dump(Linux)查看末尾,应有最后一条Revision-number: N - 对比
svnlook youngest /var/svn/myproject输出的版本号,应与 dump 文件末尾一致
压缩与归档建议
dump 文件未压缩,体积较大,推荐立即 gzip 压缩并加上时间戳:
-
gzip /backup/myproject_full.dump→ 得到myproject_full.dump.gz - 更规范做法:
svnadmin dump /var/svn/myproject | gzip > /backup/myproject_$(date +%Y%m%d).dump.gz
压缩后保留原始 dump 文件非必须,但建议首次备份后验证一次 load 是否可行,再删除原文件。











