▋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
分享到:
相关推荐
在描述中提到的`svndiff`就是一个自定义key,用于获取SVN主从版本库的差异。我们可以在Zabbix的Web界面中,选择相应的主机或模板,添加新的监控项,并为其设置key为`svndiff`。 2. **配置Zabbix Agent**:Zabbix ...
### SVN主从搭建详解 #### 一、简介 在软件开发过程中,版本控制系统扮演着非常重要的角色。Subversion (SVN) 是一个广泛使用的集中式版本控制系统,它可以帮助团队管理和跟踪项目的变更历史。为了提高系统的可用...
它能够帮助用户实现从一个SVN仓库到另一个SVN仓库的数据复制,这对于需要在多个服务器之间共享代码或数据的团队来说非常有用。SVNsync不仅支持增量同步,还能够在不中断服务的情况下进行数据迁移。 #### 二、SVN...
SVN冲突解决方案 SVN(Subversion)是一种版本控制系统,用于管理软件开发过程中的源代码和文档。在多人协作开发项目时,SVN可以帮助团队成员之间进行协作和版本控制。但是,在使用SVN时,也会遇到冲突问题,本文将...
1. 定期备份 SVN 仓库:使用 rsync 或其他工具定期将仓库复制到安全位置。 2. 数据恢复:在发生故障时,可以从备份中恢复 SVN 仓库。 七、监控与维护 1. 日志分析:查看 Apache 或 SVN 服务器的日志文件,监控异常...
1. **手动备份**:最简单的备份方法是直接复制整个SVN仓库目录到另一位置。这可以通过Windows资源管理器完成,但需确保在执行备份时没有正在进行的SVN操作,以防止数据不一致。 2. **使用SVN命令行工具**:通过...
### SVN项目迁移过程详解 #### 一、SVN项目迁移背景与目的 随着业务发展和技术迭代,企业常常需要对原有的Subversion (SVN) 仓库进行迁移,以便于更好地管理和维护代码。本文将详细介绍如何使用`svnadmin dump`和`...
- **真实版本历史**:SVN克服了CVS的局限,支持文件的复制、重命名等操作,同时保持版本历史的完整性,即使替换已有文件也不会丢失其历史记录。 - **自动提交**:SVN的提交机制确保了提交操作的原子性,即要么全部...
EclipseSVN冲突解决方案 EclipseSVN冲突解决方案是指在使用Eclipse和SVN进行版本控制时,如何处理文件冲突的问题。文件冲突是指多个开发者同时修改同一个文件,导致文件内容不同步的情况。 在EclipseSVN中,文件...
标题中的“清理svn标记快速方案”指的是在使用Subversion(简称svn)版本控制系统时,如何高效地清理不再需要的本地工作副本中的svn标记,如版本库的旧版本、未提交的更改、临时文件等。这通常是为了释放磁盘空间、...
### SVN版本控制方案详解 #### 一、SVN版本控制系统概述 版本控制系统是软件开发过程中不可或缺的一部分,它帮助团队管理代码的变化历史,确保代码的稳定性和可追溯性。Subversion(SVN)作为一款集中式的版本控制...
在这个“svn手动配置方案大全”中,涵盖了服务器安装、Eclipse和VS2010客户端的配置,以及SVN权限管理等内容,旨在提供一套全面的SVN实践指南。 1. SVN服务器配置: SVN服务器通常使用Apache HTTP Server或...
### CVS团队升级SVN团队的解决方案 #### 一、引言与背景介绍 随着软件开发技术的不断进步和发展,版本控制系统也在不断迭代更新。CVS(Concurrent Versions System)作为早期广泛使用的开源版本控制系统之一,虽然...
Redis 是一个高性能的键值存储系统,也支持主从复制以实现数据冗余和故障转移。描述中还提到了 Redis 的主从同步配置过程: 1. **软件包安装**:在 CentOS 系统中,通常使用 `yum` 安装 Redis 的依赖包和源码包,...
svn 服务器管理方案.xmind
总之,"清理SVN、断开SVN连接,工具"是一种实用的解决方案,旨在帮助开发者快速、方便地从文件系统中移除SVN的相关信息,尤其适用于需要释放磁盘空间或不再使用SVN的情况。通过注册表脚本实现右键菜单扩展,使得操作...
【SVN项目文档管理方案】 SVN(Subversion)是一种版本控制系统,用于管理软件开发过程中的源代码和其他文档,确保团队协作中文件的一致性和可追踪性。TortoiseSVN是SVN的一个图形化客户端,方便用户在Windows环境...