▋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方法的确能够解决从主服务器上通知从服务器触发同步的过程,但是从公司sa的同学了解到,他们非常不建议使用mount的方式来做这个同步操作,原因是mount命令经常发生问题。
其实在通过在网上找的很多资料来看,大部分的文章是通过系统的定时程序来完成主从同步的,也就是定时,比如30分钟让从服务器执行一次同步操作。这样虽然不能保证在主服务器和从服务器实时同步,但是实现方式是简单的。想想也是,svn主从服务器之间没有必要保证实时同步。
在最终的实现方案是在系统中是采用ssh命令,在post-commit 的hook脚本中执行下面这条命令
/usr/bin/ssh remotehost "svnsync sync file://$1" | tee -a /usr/baisui/logs/svnsync.log 2>&1
来让svn从服务器增量更新,使用这条命令需要实现在主服务器和从服务之间打通信任认证,这个可以参考(http://mozhenghua.iteye.com/blog/1155256)这篇博客。
▋相关的操作命令
- svn配置文件
vi /etc/httpd/conf.d/subversion.conf
apache配置文件
/etc/httpd/conf/httpd.conf
- svn 同步初始化
svnsync initialize
file:///var/www/repos/svnrepos/slaver
http://10.9.24.161/aaa
--sync-username slaver --sync-password 123456
- svn的用户名密码
/etc/httpd/conf.d/.passwd
- 为某个用户添加执行权限
chmod +x pre-revprop-change
- 将本地svn服务器与主服务器同步
svnsync sync
file:///var/www/repos/svnrepos/slaver
分享到:
相关推荐
面对这种情况,我们可以采取手动操作的方式进行模拟,以下是一种可行的解决方案。 首先,我们需要在两个不同的地点分别设置两个独立的SVN服务器,分别称为repository-1和repository-2。每个开发团队成员都将使用...
### Subversion (SVN) 同步流程...以上步骤详细介绍了如何从头开始搭建SVN同步环境,包括主从仓库的配置、初始化以及数据同步的过程。这些知识点有助于读者更好地理解和掌握SVN同步机制,从而高效地管理和维护SVN仓库。
5. **数据库管理**:他对MySQL和Oracle数据库有深入理解,能进行存储、库和表设计,使用SQL,还了解性能优化策略,如mysqldump+binlog和lvm+binlog备份,以及主从复制和读写分离。 6. **监控工具**:他熟练使用...
1. **数据库**:至少两台服务器,主从模式,用于存储namespace、文件存储位置、domain、class等信息。建议配置至少32GB内存和8个CPU核心。 2. **Tracker服务器**:至少两台,用于管理复制、删除、查询、重试写入和...
解决方案: 不同的数据库都有自己的数据库的主从复制功能 使用反向代理与CDN加速网站响应 反向代理产品 ngix 使用分布式文件系统和分布式数据库系统 使用no-sql和搜索引擎 站内搜索 lucene ...
为了确保数据的高可用性和安全性,还实现了主从复制策略进行备份。 #### Web框架与Web服务器 - **Quixote**: 作为一种简单的Python Web框架,Quixote因其轻量级特性而被采用。它支持实现RESTful URL,并且易于集成...
- **高可用性**:MySQL支持主从复制、分区等功能,可以实现高可用和高性能。 - **跨平台**:MySQL可以在多种操作系统上运行,包括Windows、Linux等。 综上所述,这些知识点涵盖了从Web框架到数据库管理系统的各个...
副本集则是一种高可用性的解决方案,通过复制数据来提供容错能力。 #### 标签解析 - **Mongodb sharding Cluster** - 分片集群(Sharding Cluster)是MongoDB的一种扩展机制,它将数据分成多个片段,并将这些片段...