`
mozhenghua
  • 浏览: 324534 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

SVN 主从复制方案

阅读更多

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)这篇博客。

 

 

▋相关的操作命令

 

  1. svn配置文件  vi /etc/httpd/conf.d/subversion.conf apache配置文件 /etc/httpd/conf/httpd.conf       
  2. svn 同步初始化  svnsync initialize file:///var/www/repos/svnrepos/slaver  http://10.9.24.161/aaa  --sync-username slaver --sync-password 123456
  3. svn的用户名密码 /etc/httpd/conf.d/.passwd
  4. 为某个用户添加执行权限  chmod +x pre-revprop-change
  5. 将本地svn服务器与主服务器同步  svnsync sync file:///var/www/repos/svnrepos/slaver                                               

 

 

 

 

分享到:
评论

相关推荐

    自动化运维之用Zabbix+mysql制作 监控SVN主从版本号是否一致的脚本.zip

    在描述中提到的`svndiff`就是一个自定义key,用于获取SVN主从版本库的差异。我们可以在Zabbix的Web界面中,选择相应的主机或模板,添加新的监控项,并为其设置key为`svndiff`。 2. **配置Zabbix Agent**:Zabbix ...

    svn主从搭建简单说明

    ### SVN主从搭建详解 #### 一、简介 在软件开发过程中,版本控制系统扮演着非常重要的角色。Subversion (SVN) 是一个广泛使用的集中式版本控制系统,它可以帮助团队管理和跟踪项目的变更历史。为了提高系统的可用...

    SVNsync配置库同步说明

    它能够帮助用户实现从一个SVN仓库到另一个SVN仓库的数据复制,这对于需要在多个服务器之间共享代码或数据的团队来说非常有用。SVNsync不仅支持增量同步,还能够在不中断服务的情况下进行数据迁移。 #### 二、SVN...

    SVN冲突解决方案.docx

    SVN冲突解决方案 SVN(Subversion)是一种版本控制系统,用于管理软件开发过程中的源代码和文档。在多人协作开发项目时,SVN可以帮助团队成员之间进行协作和版本控制。但是,在使用SVN时,也会遇到冲突问题,本文将...

    svn整体部署方案

    1. 定期备份 SVN 仓库:使用 rsync 或其他工具定期将仓库复制到安全位置。 2. 数据恢复:在发生故障时,可以从备份中恢复 SVN 仓库。 七、监控与维护 1. 日志分析:查看 Apache 或 SVN 服务器的日志文件,监控异常...

    Windows下SVN的备份方案

    1. **手动备份**:最简单的备份方法是直接复制整个SVN仓库目录到另一位置。这可以通过Windows资源管理器完成,但需确保在执行备份时没有正在进行的SVN操作,以防止数据不一致。 2. **使用SVN命令行工具**:通过...

    svn项目迁移命令

    ### SVN项目迁移过程详解 #### 一、SVN项目迁移背景与目的 随着业务发展和技术迭代,企业常常需要对原有的Subversion (SVN) 仓库进行迁移,以便于更好地管理和维护代码。本文将详细介绍如何使用`svnadmin dump`和`...

    svn整体部署方案.pdf

    - **真实版本历史**:SVN克服了CVS的局限,支持文件的复制、重命名等操作,同时保持版本历史的完整性,即使替换已有文件也不会丢失其历史记录。 - **自动提交**:SVN的提交机制确保了提交操作的原子性,即要么全部...

    EclipseSVN冲突详细解决方案.docx

    EclipseSVN冲突解决方案 EclipseSVN冲突解决方案是指在使用Eclipse和SVN进行版本控制时,如何处理文件冲突的问题。文件冲突是指多个开发者同时修改同一个文件,导致文件内容不同步的情况。 在EclipseSVN中,文件...

    清理svn标记快速方案

    标题中的“清理svn标记快速方案”指的是在使用Subversion(简称svn)版本控制系统时,如何高效地清理不再需要的本地工作副本中的svn标记,如版本库的旧版本、未提交的更改、临时文件等。这通常是为了释放磁盘空间、...

    SVN版本控制方案

    ### SVN版本控制方案详解 #### 一、SVN版本控制系统概述 版本控制系统是软件开发过程中不可或缺的一部分,它帮助团队管理代码的变化历史,确保代码的稳定性和可追溯性。Subversion(SVN)作为一款集中式的版本控制...

    svn手动配置方案大全[服务器、Eclipse客户端、VS2010客户端]

    在这个“svn手动配置方案大全”中,涵盖了服务器安装、Eclipse和VS2010客户端的配置,以及SVN权限管理等内容,旨在提供一套全面的SVN实践指南。 1. SVN服务器配置: SVN服务器通常使用Apache HTTP Server或...

    CVS团队升级SVN团队的解决方案

    ### CVS团队升级SVN团队的解决方案 #### 一、引言与背景介绍 随着软件开发技术的不断进步和发展,版本控制系统也在不断迭代更新。CVS(Concurrent Versions System)作为早期广泛使用的开源版本控制系统之一,虽然...

    SVN版本控制.doc

    Redis 是一个高性能的键值存储系统,也支持主从复制以实现数据冗余和故障转移。描述中还提到了 Redis 的主从同步配置过程: 1. **软件包安装**:在 CentOS 系统中,通常使用 `yum` 安装 Redis 的依赖包和源码包,...

    svn 服务器管理方案.xmind

    svn 服务器管理方案.xmind

    清理SVN、断开SVN连接,工具

    总之,"清理SVN、断开SVN连接,工具"是一种实用的解决方案,旨在帮助开发者快速、方便地从文件系统中移除SVN的相关信息,尤其适用于需要释放磁盘空间或不再使用SVN的情况。通过注册表脚本实现右键菜单扩展,使得操作...

    SVN项目文档管理方案1024.docx

    【SVN项目文档管理方案】 SVN(Subversion)是一种版本控制系统,用于管理软件开发过程中的源代码和其他文档,确保团队协作中文件的一致性和可追踪性。TortoiseSVN是SVN的一个图形化客户端,方便用户在Windows环境...

Global site tag (gtag.js) - Google Analytics