SVN主从备份

两套环境:192.168.67.63(主SVN)

192.168.67.60(从SVN)


1.主环境上已经装好SVN并且存在数据仓库/home/svndata在从环境上,新建一/home/svndata_bak仓库:

[root@bsdi home]# svnadmin create /home/svndata_bak
[root@bsdi home]# ll
总用量
drwx------. bhd bhd 4月 bhd
drwxr-xr-x. root root 12月 : svndata_bak
[root@bsdi home]# cd svndata_bak/
[root@bsdi svndata_bak]# ll
总用量
drwxr-xr-x. root root 12月 : conf
drwxr-sr-x. root root 12月 : db
-r--r--r--. root root 12月 : format
drwxr-xr-x. root root 12月 : hooks
drwxr-xr-x. root root 12月 : locks
-rw-r--r--. root root 12月 : README.txt

2.把主环境上的conf下的authz、passwd、svnserve.conf拷贝覆盖掉从环境上的conf下的文件,覆盖之后注意修改svnserve.conf中的路径设置,并且主从环境上的svnserve.conf中的anon-access都要设置成none:

anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = /home/svndata_bak

3.修改hooks文件夹下的pre-revprop-change(注意主从环境上的都要做同样的修改):

[root@bsdi hooks]# vim pre-revprop-change.tmpl
#!/bin/sh
exit 0
[root@bsdi hooks]# mv pre-revprop-change.tmpl pre-revprop-change
[root@bsdi hooks]# chmod +x pre-revprop-change

4.设置完成之后启动svn,这样就得到一个和主环境上相同用户和权限的从SVN库:

[root@bsdi hooks]# svnserve -d -r /home/svndata_bak --listen-port 2396

5.接下来在主环境上操作,如下这一条命令是初始化版本:

[root@bsdi hooks]# svnsync init svn://192.168.67.60:2396 svn://192.168.67.63:2396 --username limang --password pwd123!@ --no-auth-cache
复制版本 的属性。
[root@bsdi hooks]#

6.同步数据:

[root@bsdi hooks]# svnsync sync --non-interactive svn://192.168.67.60:2396 --username limang --password pwd123!@
已提交版本 。
复制版本 的属性。
传输文件数据......................................................................................................................................................................
已提交版本 。
复制版本 的属性。
传输文件数据.
已提交版本 。
复制版本 的属性。
[root@vasoyn hooks]#

此时主从数据已经成功同步,在svn浏览器中访问从环境,发现已存在一个一摸一样的仓库。

7.接下来在主环境上使用hooks下的post-commit脚本进行SVN实时同步:

修改post-commit如下:

[root@bsdi hooks]# vim post-commit.tmpl
#!/bin/sh
svnsync sync --non-interactive svn://192.168.67.60:2396 --username limang --password pwd123!@
[root@bsdi hooks]# mv post-commit.tmpl post-commit
[root@bsdi hooks]# chmod +x post-commit

此时当主环境上SVN有代码提交时,会触发这个脚本并执行里面的命令实现主从同步。

8.设置SVN开机启动:

SVN主从同步的前提是,主从SVN可以互相访问,所以需要将主从SVN都设置开机启动:

修改/etc/rc.d/rc.local并设置该文件为可执行文件:

[root@bsdi hooks]# vim /etc/rc.d/rc.local
#!/bin/bash
svnserve -d -r /home/svndata --listen-port 2396
[root@bsdi hooks]# chmod +x /etc/rc.d/rc.local
[root@bsdi hooks]#

SVN主从备份的更多相关文章

  1. 关于Subversion主从备份方式的调整(全量、增量脚本)更新

    本文引用于http://blog.chinaunix.net/uid-25266990-id-3369172.html 之前对Subversion服务器作了迁移,关于SVN的架构也走了调整,有单一的服 ...

  2. 单机部署redis主从备份

    redis为了避免单点故障,也支持主从备份.个人在做主从备份的实验时,因为机器数量有限,一般非常少有多台机器做支撑. 本文就将叙述怎样在一台电脑上实现redis的主从备份. 同一台机器上部署多个red ...

  3. mysql主从备份及常见问题处理

    1.mysql主从备份基本原理 mysql支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.mysql复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新 ...

  4. mysql主从备份+keepalived自动切换

    数据库这一层需要做到避免单点故障可以是主从备份和主主备份,主主备份可能有性能损耗和数据同步的问题.这里记录下主从备份, mysql进行备份之前确保mysql的版本是一样的,我这里用的都是mysql5. ...

  5. mysql实现主从备份

    mysql 主从备份的原理: 主服务器在做数据库操作的时候将所有的操作通过日志记录在binlog里面,有专门的文件存放.如localhost-bin.000003,这种,从服务器 和主服务配置好关系后 ...

  6. 检测MySQL主从备份是否运行

    通过查看 slave  状态,确保 Slave_IO_Running: Yes Slave_SQL_Running: Yes #!/bin/bash#Author:Darius-Dmysql -uro ...

  7. MySQL主从备份配置实例

    转载自:https://www.cnblogs.com/ahaii/p/6307648.html MySQL主从备份配置实例 场景: 1.主服务器192.168.0.225.从服务器192.168.0 ...

  8. Linux之svn数据备份、还原及迁移

    前言 因管理需求现要将svn数据进行备份,作为运维小哥的我在收到指令后进行了相关操作.当然,领导告知的是要备份,但作为一个有思想的运维,我考虑到的是自己要干的不仅仅是备份操作,还要确保在备份后数据还原 ...

  9. mysql主从备份及原理分析

    一.mysql主从备份(复制)的基本原理mysql支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.mysql复制基于主服务器在二进制日志中跟踪所有对数据库的更 ...

随机推荐

  1. RabbitMQ学习之:(二)介绍 (转贴+我的评论)

    转自:http://lostechies.com/derekgreer/2012/03/05/rabbitmq-for-windows-introduction/ RabbitMQ for Windo ...

  2. C# 批处理制作静默安装程序包

    使用批处理+WinRAR制作静默安装程序包 @echo 安装完窗口会自动关闭!!! @echo off start /wait Lync.exe /Install /Silent start /wai ...

  3. 两种最常用的破解centos7忘掉密码的解决方案

    第一种方法:设置光盘为第一启动项 第一步:进入bios界面 虚拟机中:点击左上角的虚拟机-->电源-->打开电源时进入固件   第二步:使用左右键选择上方的boot 按住shift+ 加号 ...

  4. IDEA结合GIT的使用

    一.本地安装GIT 下载: https://git-scm.com/downloads 安装 略 配置环境变量 在 “我的电脑 --> 属性 --> 高级系统设置 -- > 环境变量 ...

  5. Java排序方法

    下面是用JAVA代码实现的数据结构中的7种基本排序算法,希望对你有所帮助. (1)直接插入排序 /** 直接插入排序 **/ /** 数组是引用类型,元素值将被改变 **/ public static ...

  6. Linux服务器集群性能监控之Performance Co-Pilot(PCP)部署

    转载自:https://blog.csdn.net/w84268426/article/details/78431778 在部署PCP时,我用到了两台cent os 7虚拟机. 1.官方安装文档htt ...

  7. java和delphi共用的des加密解密

    java: import antlr.StringUtils;import org.jeecgframework.core.util.StringUtil; import java.security. ...

  8. 手写web框架之实现Bean容器

    实现Bean容器    使用ClassHelper可以获取所加载的类,但无法通过类来实例化对象,因此我们需要提供一个反射工具类,让它封装java反射相关的API,对外提供更好用的工具方法.将该类命名为 ...

  9. Java和SQL取两个字符间的值

    Java String str = "abcdefg"; String result = str.substring(str.indexOf(">")+1 ...

  10. 【AMAD】django-activity-stream

    动机 简介 个人评分 动机 为你的django站点生成活动流(类似facebook feed).用户可以在个人feed页面看到订阅的人的活动流. 简介 django-activity-stream1中 ...