今天把项目用svn服务器进行了备份设置,关于svn服务器的备份方案主要有三种svnadmin dump、svnadmin hotcopy和svnsync,这次我选择svnsync这种方式,这样当主svn服务器发生故障时,可以立刻切换到备份服务器继续工作,实现实时双机备份和无缝切换。接下来就把svnsync的配置方法记录如下:
1、在备份主机上,创建备份用svn库
1 |
svnadmin create svnrepo |
2、修改备份SVN库里的钩子脚本pre-revprop-change
1 2 3 |
cd svnrepo/hooks cp pre-revprop-change.tmpl pre-revprop-change vi pre-revprop-change |
将最后一行改为exit 0,或者直接把该文件清空
3、初始化同步设定
1 |
svnsync init file:///home/svn/svnrepo http://10.1.123.45:3333/svnrepo |
语法是:svnsync init {你刚创建的库url} {源库url}
注意本地url是三个斜杠的:///
4、开始同步
1 |
svnsync sync file:///home/svn/svnrepo |
5、将第四步的命令创建为定时任务,例如每小时同步一次即可。至于最后这一步,有些教程说的是可以修改主svn服务器的hook中的post-commit脚本进行实时同步。但是这样的话,代码更新检查的工作其实落在了主svn服务器上,不知道会不会有所影响。反而我觉得在备份服务中创建定时任务,让备份服务器定时去主服务器拉取更新,更好一些。
文章评论
请问一下哦,权限文件能不能也自动备份到备份机上呢?
同问,采用svnsync方式进行备份,权限文件及用户信息怎么备份?