博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
svnsync实现版本库的同步备份
阅读量:5855 次
发布时间:2019-06-19

本文共 1750 字,大约阅读时间需要 5 分钟。

 
实验环境:
A,172.17.201.243(主)
B,172.17.201.88(备)
 
项目需求,生产环境要求svn服务器实现热备机制,于是就想到了svn自带的svnsync机制,操作流程如下:
1、在要备份的机器上(172.17.201.88)建立版本库
mkdir -p /home/svn/SH2014/SVNdatasvnadmin create /home/svn/SH2014/SVNdata

2、进入备份机器(172.17.201.88)版本库SVNdata下的hooks目录。

cd /home/svn/SH2014/SVNdata/hooks/

3、创建pre-revprop-change文件

cp pre-revprop-change.tmpl pre-revprop-change

4、修改pre-revprop-change权限,更改为755

chmod 755 pre-revprop-change

5、修改pre-revprop-change内容

为 echo “Changing revision properties other than svn:log is prohibited” >&2exit 0(1修改为0)

说明如下:

原脚本的意思是如果修改的是svn:log属性,将允许修改,返回0;否则,不允许,返回1
我们要将它改为允许修改所有的属性,在脚本中直接返回0
 
6、在备份机器上执行同步初始化操作
svnsync init file:///home/svn/SH2014/SVNdata http://172.17.201.243/SHSVN/SVNdata --username "svnadmin" --password "adminpassword"

会出现以下信息:

Copied properties for revision 0.

7、在备份机器上执行同步操作

svnsync sync file:///home/svn/SH2014/SVNdata

会出现以下信息:

Transmitting file data .Committed revision 1.Copied properties for revision 1.Transmitting file data .Committed revision 2.Copied properties for revision 2.Transmitting file data .Committed revision 3.Copied properties for revision 3.

出现以上信息就说明同步成功了。

 
8、设置备份库的uuid,uuid是respository创建时自动生成的一个随机数,SVN Client利用uuid判断是否为同一个库。
进入主机,查看主机库的uuid
svnlook uuid /home/svn/repos
会显示主机库的uuid
78312468-8f6a-4e0c-9dc4-2b397672ca84

进入备份机,查看备份机新建库的uuid

svnlook uuid /home/svn/SH2014/SVNdata

会显示新建库的uuid

c7717876-c1c0-4c6c-9b12-70b43bd7116b

将新建库的uuid改成与主机库的uuid相同

svnadmin setuuid /home/svn/SH2014/SVNdata 78312468-8f6a-4e0c-9dc4-2b397672ca84

再次查看新建库的uuid

svnlook uuid /home/svn/SH2014/SVNdata

会显示新库的uuid与主机库的uuid相同了

78312468-8f6a-4e0c-9dc4-2b397672ca84

9、配置Apache和权限

 

当出现主机宕机需要备份机马上顶上去时,修改一下IP即可。
客户端如果已经有checkout的项目,则需要relocate,relocate 前提条件就是uuid是相同的。

转载于:https://www.cnblogs.com/bajie22/p/5435127.html

你可能感兴趣的文章
oracle参数列表
查看>>
Wordpress3.2去除url中的category(不用插件实现)
查看>>
The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine-Excel2003
查看>>
《Java 2 图形设计卷Ⅱ- SWING》第12章 轻量容器
查看>>
macOS Sierra 代码显示未来 Mac 将搭载 ARM 芯片
查看>>
《Arduino家居安全系统构建实战》——1.3 部署安全系统的先决条件
查看>>
Linux 中如何通过命令行访问 Dropbox
查看>>
《jQuery移动开发》—— 1.3 小结
查看>>
使用 Flutter 反序列化 JSON 的一些选项
查看>>
开发进度——4
查看>>
代码优化
查看>>
使用原理视角看 Git
查看>>
Node.js 的module 系统
查看>>
经典c程序100 例
查看>>
Fast enumerate
查看>>
页面中富文本的使用
查看>>
etymology-F
查看>>
FastD 最佳实践一: 构建 API
查看>>
Mycat安装以及使用测试
查看>>
react、react-router、redux 也许是最佳小实践1
查看>>