热拷贝备份
将整个库都热拷贝一份出来,包括库的钩子脚本、配置文件等,不包括事务文件(所以可能出现热拷贝后库占用空间变小的情况,是不影响正常使用的);任何时候运行这个脚本都得到一个版本库的安全拷贝,不管是否有其他进程正在使用版本库。热拷贝出来的库可以直接被 SVN 服务器使用,不需要转换。
可以全量备份也可以增量备份。
svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH
# --incremental 增量备份选项,只能用于 FSFS 格式的库
svnadmin hotcopy --incremental C:\Repositories\test C:\Backup\test
dump 备份
可以全量备份也可以增量备份,可以指定备份的起止版本。
缺点是版本数过大时备份和恢复的时间比较长。
svnadmin dump REPOS_PATH [-r LOWER[:UPPER] [--incremental]]
svnadmin dump C:\Repositories\test > backup.dump
svnadmin dump C:\Repositories\test -r 100:200 --incremental > backup_100_200.dump
svnadmin create new_repository
svnadmin load new_repository < backup.dump
事务(txns [transactions])
SVN 客户端进程异常中止、网络异常等,可能导致文件提交的事务失败,生成的事务文件会继续占用磁盘,可以删除这些意外中止的事务以节省磁盘空间。
列出所有的事务:
svnadmin lstxns REPOS_PATH
删除指定的事务:
svnadmin rmtxns REPOS_PATH TXN_NAME1 TXN_NAME2 ...
|