SVN主从备份

SVN主从备份

两套环境:192.168.67.63(主SVN)

192.168.67.60(从SVN)

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

[[email protected] home]# svnadmin create /home/svndata_bak
[[email protected] home]# ll
总用量 0
drwx------. 3 bhd  bhd  78 4月  11 2018 bhd
drwxr-xr-x. 6 root root 86 12月  3 13:59 svndata_bak
[[email protected] home]# cd svndata_bak/
[[email protected] svndata_bak]# ll
总用量 8
drwxr-xr-x. 2 root root  54 12月  3 13:59 conf
drwxr-sr-x. 6 root root 233 12月  3 13:59 db
-r--r--r--. 1 root root   2 12月  3 13:59 format
drwxr-xr-x. 2 root root 231 12月  3 13:59 hooks
drwxr-xr-x. 2 root root  41 12月  3 13:59 locks
-rw-r--r--. 1 root root 229 12月  3 13:59 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(注意主从环境上的都要做同样的修改):

[[email protected] hooks]# vim pre-revprop-change.tmpl

#!/bin/sh

exit 0

[[email protected] hooks]# mv pre-revprop-change.tmpl pre-revprop-change

[[email protected] hooks]# chmod +x pre-revprop-change

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

svnserve -d -r /home/svndata_bak --listen-port 2396

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

[[email protected] hooks]# svnsync init svn://192.168.67.60:24396 svn://192.168.67.63:2396 --username limang --password [email protected] --no-auth-cache

复制版本 0 的属性。

[[email protected] hooks]#

6.同步数据:

[[email protected] hooks]# svnsync sync --non-interactive svn://192.168.67.60:2396 --username limang --password [email protected]

已提交版本 1。

复制版本 1 的属性。

传输文件数据......................................................................................................................................................................

已提交版本 2。

复制版本 2 的属性。

传输文件数据.

已提交版本 3。

复制版本 3 的属性。

[[email protected] hooks]#

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

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

修改post-commit如下:

[[email protected] hooks]# vim post-commit.tmpl

#!/bin/sh

svnsync sync --non-interactive svn://192.168.67.60:2396 --username limang --password [email protected]

[[email protected] hooks]# mv post-commit.tmpl post-commit

[[email protected] hooks]# chmod +x post-commit

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

7.设置SVN开机启动:

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

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

[[email protected] hooks]# vim /etc/rc.d/rc.local

#!/bin/bash

svnserve -d -r /home/svndata --listen-port 2396

[[email protected] hooks]# chmod +x /etc/rc.d/rc.local

[[email protected] hooks]#

原文地址:https://www.cnblogs.com/MasterBai2018/p/12067003.html

时间: 2024-11-14 12:37:07

SVN主从备份的相关文章

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

本文引用于http://blog.chinaunix.net/uid-25266990-id-3369172.html 之前对Subversion服务器作了迁移,关于SVN的架构也走了调整,有单一的服务器改为主从备份的方式.在"subversion迁移过程中增量备份脚本"中提到了增量备份的方式,但是运行一段时间,发现备份出错,提示导入的文件已存在,于是重新检查,修改了脚本.现在一直稳定运行着. 今天重新回顾,发现了之前文章很多错误的地方,对文章作了更新,附上Subsection 全量和

MySQL配置主从备份

MySQL主从备份配置实例 场景: 1.主服务器192.168.0.225.从服务器192.168.0.226.其中,主服务器上已有数据. 2.主从服务器上的mysql版本及安装配置相同. 一.主从备份的原理: 主服务器数据库的每次操作都会记录在二进制日志文件mysql-bin.xxx中.从服务器的I/O线程使用专用帐号登陆到主服务器中读取该二进制文件,并将文件内容写入到自己本地的中继日志relay-log文件中.然后从服务器的SQL线程会根据中继日志中的内容执行SQL语句. 这要求两台服务器有

Mysql的主主备份与主从备份--同步

Mysql的主主备份与主从备份--同步 一:实验目标 mysql主从原理 实战:mysql主从配置 实战:mysql主主配置 二:实验环境 导入测试数据库book: Mysql主xuegod63   IP:192.168.1.63 Mysql从xuegod64   IP:192.168.1.64 三:实验代码 实战:mysql主从配置  服务概述:主从复制 复制解决的基本问题是让一台服务器的数据和另外的服务器保持同步. 一台主服务器可以连接多台从服务器,并且从服务器也可以反过来作主服务器.主服务

单机部署redis主从备份

redis为了避免单点故障,也支持主从备份.个人在做主从备份的实验时,因为机器数量有限,一般非常少有多台机器做支撑. 本文就将叙述怎样在一台电脑上实现redis的主从备份. 同一台机器上部署多个redis实例,为了避免冲突,每一个实例须要使用不同的port号.非常easy.在启动redis时,指定不同的port号,或者在配置文件里指定port号.我的这个实验是在配置文件里指定的port号: 然后在启动时,指定配置文件启动: ./redis-server ./redis.conf 还能够以其它方式

主从备份的实现细节

主从备份的实现细节mysql 使用3个线程来执行复制功能(其中1个在主服务器上,另两个在从服务器上).当发出start slave时,从服务器创建一个I/O线程,以连接主服务器并让它发送记录在其二进制日志中的语句.主服务器创建一个线程将二进制日志中的内容发送到从服 务器.该线程可以即为主服务器上show processlist输出中的Binlog Dump线程.从服务器I/O线程读取主服务器Binlog Dump线程发送的内容并将该数据拷贝到从服务器数据目录中的本地文件中,即中继日志.第3个线程

SVN自动化备份、恢复脚本(下)

#!/bin/bash #本脚本是用来计算本地磁盘空间大小,并且与svn备份文件大小进行比较判断,当满足什么条件时,做出相应的响应. #第一步是检测svn服务器,svn数据文件的总量大小和本机磁盘剩余空间的大小. ##连接10.68.3.152服务器,查看最新svn文件大小,获取查看的值. datef() {         date "+%Y/%m/%d %H:%M" } password=xxxx2015 svnreport=/data/log/report_`date "

SVN完全备份svnadmin hotcopy

利用svnadmin hotcopy可以实现完全备份,但不能进行增量备份.svnadmin hotcopy是将整个库都"热"拷贝一份出来,包括库的钩子脚本.配置文件等:任何时候运行这个脚本都得到一个版本库的安全拷贝,不管是否有其他进程正在使用版本库. 优点是:备份过程较快,灾难恢复也很快:如果备份机上已经搭建了svn服务,甚至不需要恢复,只需要进行简单配置即可切换到备份库上工作. 缺点是:比较耗费硬盘,需要有较大的硬盘支持. 备份命令: svnadmin hotcopy /path/t

linux下 mysql主从备份

在使用Ubuntu作为开发环境时经常需要在全局安装一些依赖框架等,这个时候就常常需要用到root权限,但是在Ubuntu下第一次使用su命令时会提示认证失败:查找资料后发现Ubuntu下root权限默认是锁定的,可能是处于安全考虑,但是作为开发人员肯定是需要root权限的. 在命令行中可以输入下面命令设置root密码,这样就能随时使用root权限了: [email protected]:~$ su 密码: su:认证失败 [email protected]:~$ sudo passwd [sud

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

1.mysql主从备份基本原理 mysql支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.mysql复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新.删除等等).因此,要进行复制,必须在主服务器上启用二进制日志.每个从服务器从主服务器接收主服务器已经记录到的二进制日志,获取日志信息更新.通过设置在Master上的binlog,使其处于打开状态:Slave通过一个I/O线程从Master上读取binlog,然后传输到Slave的中继日志中,然后使