svn主从复制方案

上一篇 / 下一篇  2012-07-08 21:46:57 / 个人分类:配置管理

SVN 主从复制方案,主要是为了解决svn服务器大并发量访问的问题,根据svn读写的2/8原则,应该把读写分流将对SVN服务器读操作都引流到从(slave)机器上:

以下是svn 官方文档( http://svnbook.red-bean.com/en/1.5/svn.ref.svnsync.html ,http://svnbook.red-bean.com/en/1.5/svn.reposadmin.maint.html#svn.reposadmin.maint.replication)说叙述的关于svnsyn命令的使用方法

官方的文档中只说明了主从全量同步的方案,但是没有很说明增量同步的方法。 看到一篇不错的文章介绍了几种svn库备份方法一种就有一个讲到用svnsync来作备份的方案,这个方案中我觉得最精妙的是用mount的方法来做增量更新 http://www.blogjava.net/jasmine214--love/archive/2010/09/28/333223.html

mount方法的确能够解决从主服务器上通知从服务器触发同步的过程,但是mount命令经常发生问题。

其实在通过在网上找的很多资料来看,大部分的文章是通过系统的定时程序来完成主从同步的,也就是定时,比如30分钟让从服务器执行一次同步操作。这样虽然不能保证在主服务器和从服务器实时同步,但是实现方式是简单的。想想也是,svn主从服务器之间没有必要保证实时同步。

在最终的实现方案是在系统中是采用ssh命令,在post-commit hook脚本中执行下面这条命令

Python代码

   1、

/usr/bin/ssh remotehost "svnsync sync file://$1" | tee -a /usr/baisui/logs/svnsync.log 2>&1  

来让svn从服务器增量更新,使用这条命令需要实现在主服务器和从服务之间打通信任认证,这个可以参考(http://mozhenghua.iteye.com/blog/1155256)这篇博客。

相关的操作命令

2、 svn配置文件  vi /etc/httpd/conf.d/subversion.conf apache配置文件 /etc/httpd/conf/httpd.conf       

3、 svn 同步初始化  svnsync initialize file:///var/www/repos/svnrepos/slaver  http://10.9.24.161/aaa  --sync-username slaver --sync-password 123456

4、 svn的用户名密码 /etc/httpd/conf.d/.passwd

5 、为某个用户添加执行权限  chmod +x pre-revprop-change

6、 将本地svn服务器与主服务器同步  svnsync sync file:///var/www/repos/svnrepos/slaver       


TAG:

 

评分:0

我来说两句

Open Toolbar