SVN主从备份
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主从备份的更多相关文章
- 关于Subversion主从备份方式的调整(全量、增量脚本)更新
本文引用于http://blog.chinaunix.net/uid-25266990-id-3369172.html 之前对Subversion服务器作了迁移,关于SVN的架构也走了调整,有单一的服 ...
- 单机部署redis主从备份
redis为了避免单点故障,也支持主从备份.个人在做主从备份的实验时,因为机器数量有限,一般非常少有多台机器做支撑. 本文就将叙述怎样在一台电脑上实现redis的主从备份. 同一台机器上部署多个red ...
- mysql主从备份及常见问题处理
1.mysql主从备份基本原理 mysql支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.mysql复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新 ...
- mysql主从备份+keepalived自动切换
数据库这一层需要做到避免单点故障可以是主从备份和主主备份,主主备份可能有性能损耗和数据同步的问题.这里记录下主从备份, mysql进行备份之前确保mysql的版本是一样的,我这里用的都是mysql5. ...
- mysql实现主从备份
mysql 主从备份的原理: 主服务器在做数据库操作的时候将所有的操作通过日志记录在binlog里面,有专门的文件存放.如localhost-bin.000003,这种,从服务器 和主服务配置好关系后 ...
- 检测MySQL主从备份是否运行
通过查看 slave 状态,确保 Slave_IO_Running: Yes Slave_SQL_Running: Yes #!/bin/bash#Author:Darius-Dmysql -uro ...
- MySQL主从备份配置实例
转载自:https://www.cnblogs.com/ahaii/p/6307648.html MySQL主从备份配置实例 场景: 1.主服务器192.168.0.225.从服务器192.168.0 ...
- Linux之svn数据备份、还原及迁移
前言 因管理需求现要将svn数据进行备份,作为运维小哥的我在收到指令后进行了相关操作.当然,领导告知的是要备份,但作为一个有思想的运维,我考虑到的是自己要干的不仅仅是备份操作,还要确保在备份后数据还原 ...
- mysql主从备份及原理分析
一.mysql主从备份(复制)的基本原理mysql支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.mysql复制基于主服务器在二进制日志中跟踪所有对数据库的更 ...
随机推荐
- NLP基础
1 自然语言处理三大特征抽取器(CNN/RNN/TF)比较 白衣骑士Transformer:盖世英雄站上舞台 华山论剑:三大特征抽取器比较 综合排名情况 以上介绍内容是从几个不同角度来对RNN/CN ...
- Linux命令集锦:tmux命令
tmux是一款优秀的终端复用软件,平时用到的强大功能有下面两个: 窗口管理:同时启用多个窗口: 保护现场:连接到远程主机之后,一旦断开,那么当前账户登录的任务就被取消了,但是使用 tmux 可以在断开 ...
- C语言JS引擎
基础知识 SpiderMonkey 简介 和其他的 JavaScript 引擎一样,SpiderMonkey 不直接提供像 DOM 这样的对象,而是提供解析,执行 JavaSccript 代码,垃圾回 ...
- Nginx教程[归档]
前言 其一,Nginx不是随随便便一篇博文就能讲清楚的,严谨地说,笔者连入门者都算不上:其二,此文系前段日子里,学习Nginx时的笔记归档类博文,还有诸多不完整处,仅供参考. 写这篇博文的时间点:20 ...
- python 粘包现象
一. 粘包现象 1. 粘包现象的由来(1)TCP属于长连接,当服务端与一个客户端进行了连接以后,其他客户端需要(排队)等待.若服务端想要连接另一个客户端,必须首先断开与第一个客户端的连接. (2)缓冲 ...
- Unity3D热更新之LuaFramework篇[10]--总结篇
背景 19年年初的时候,进到一家新单位,公司正准备将现有的游戏做成支持热更的版本.于是寻找热更方案的任务就落在了我头上. 经过搜索了解,能做Unity热更的方案是有好几种,但是要么不够成熟,要么不支持 ...
- 【VS开发】CListBox智能滚动设置
添加数据以后,再在下面加句, int nCount = m_myListBox.GetCount(); if (nCount > 0) m_myListBox.SetCurSel(nCount ...
- git stash save -a 遇到的坑 , 弹出匿藏错误
情景一: 用命令行的 : git stash save -u "描述" git stash save -a "描述" -u: 会把没有记录到的文件也保存下来(比 ...
- MySQL连接处理方式及最佳并发连接数设置
MySQL连接处理方式及最佳并发连接数设置 mysql是单进程,多线程的架构,通过创建多个线程来服务不同的用户连接,通常情况下,随着用户连接数的增加,mysql内部用于处理用户连接的线程也会同步的增长 ...
- 随笔--第一次使用crontab linux选择编辑器问题
第一次使用crontab 时,会出现:no crontab for root - using an empty one “Select a editor ......”下面有几个选项,就是叫你选择编辑 ...