基于版本控制管理系统的容灾方法及装置与流程

文档序号:20917276发布日期:2020-05-29 13:41阅读:155来源:国知局
基于版本控制管理系统的容灾方法及装置与流程

本发明涉及容灾技术领域,尤指一种基于版本控制管理(subversion,svn)系统的容灾方法及装置。



背景技术:

svn是最流行的一个开放源代码的版本控制系统,在日常工作中,许多软件开发部门都是通过svn进行资料和代码的版本管理。随着svn应用日益广泛,svn用于存放资料和代码的资源库的数据也随之不断增长,数据量越来越大,数据安全性问题尤为重要。

当svn服务器因为人为因素、电源故障、病毒入侵等问题而无法正常运行时,如果数据无法恢复,必然对企业造成巨大影响。而目前svn的容灾通常使用硬盘快照备份技术对svn资源库的数据进行备份,然而该备份只能备份某一时刻的资源库数据,极大可能导致还原前后的资源库数据不一致,进而导致svn的不可用,因此,目前亟需一种svn容灾技术来解决svn遇到故障时如何继续提供服务的问题。



技术实现要素:

本发明实施例提供一种基于svn的容灾方法及装置,用以解决现有技术中svn遇到故障时如何继续提供服务的问题。

本发明实施例提供一种基于版本控制管理svn系统的容灾方法,所述方法应用于包括主服务器和从服务器的svn系统中,所述方法,包括:

按照第一预设备份配置,将运行在所述主服务器的svn资源仓库备份至所述从服务器;

按照第二预设备份配置,将运行在所述主服务器的svn管理数据备份至所述从服务器;

当所述主服务器故障,将svn服务器的地址切换至所述从服务器以提供svn服务;

当所述主服务器故障排除后,复制所述从服务器备份的svn管理数据和svn资源仓库至主服务器以恢复所述主服务器的svn服务。

优选地,所述按照第一预设备份配置,将运行在所述主服务器的svn资源仓库备份至所述从服务器,包括:

通过分别在所述主服务器和所述从服务器各自的svn资源仓库目录下文件中插入脚本指令配置主从服务器之间svn资源仓库的实时备份。

优选地,所述按照第二预设备份配置,将运行在所述主服务器的svn管理数据备份至所述从服务器,包括:

在所述从服务器中插入数据库备份脚本指令;

将所述数据库备份脚本指令加入定时任务;

按照所述定时任务的定时周期,将主服务器的svn管理数据备份至从服务器中。

优选地,所述复制所述从服务器备份的svn管理数据和svn资源仓库至主服务器以恢复svn服务,包括:

将所述从服务器备份的svn管理数据复制至所述主服务器的配置文件,将所述从服务器备份的svn资源仓库复制至所述主服务器的svn资源仓库中以恢复所述主服务器的svn服务。

其中,所述svn管理数据,包括svn用户名称及对应的用户权限、还原资源库命令。

本发明实施例还提供一种基于版本控制管理svn系统的容灾装置,所述装置应用于包括主服务器和从服务器的svn系统中,所述装置,包括:第一备份单元、第二备份单元以及恢复单元;其中,

所述第一备份单元,用于按照第一预设备份配置,将运行在所述主服务器的svn资源仓库备份至所述从服务器;

所述第二备份单元,用于按照第二预设备份配置,将运行在所述主服务器的svn管理数据备份至所述从服务器;

所述恢复单元,用于当所述主服务器故障,将svn服务器的地址切换至所述从服务器以提供svn服务;当所述主服务器故障排除后,复制所述从服务器备份的svn管理数据和svn资源仓库至主服务器以恢复所述主服务器的svn服务。

优选地,所述第一备份单元,用于按照第一预设备份配置,将运行在所述主服务器的svn资源仓库备份至所述从服务器,具体用于:

通过分别在所述主服务器和所述从服务器各自的svn资源仓库目录下文件中插入脚本指令配置主从服务器之间svn资源仓库的实时备份。

优选地,所述第二备份单元,用于按照第二预设备份配置,将运行在所述主服务器的svn管理数据备份至所述从服务器,具体用于:

在所述从服务器中插入数据库备份脚本指令;

将所述数据库备份脚本指令加入定时任务;

按照所述定时任务的定时周期,将主服务器的svn管理数据备份至从服务器中。

优选地,所述恢复单元,用于复制所述从服务器备份的svn管理数据和svn资源仓库至主服务器以恢复svn服务,具体用于:

将所述从服务器备份的svn管理数据复制至所述主服务器的配置文件,将所述从服务器备份的svn资源仓库复制至所述主服务器的svn资源仓库中以恢复所述主服务器的svn服务。

其中,所述svn管理数据,包括svn用户名称及对应的用户权限、还原资源库命令。

本发明有益效果如下:

本发明实施例提供的基于版本控制管理svn系统的容灾方法及装置,按照第一预设备份配置,将运行在所述主服务器的svn资源仓库备份至所述从服务器;按照第二预设备份配置,将运行在所述主服务器的svn管理数据备份至所述从服务器;当所述主服务器故障,将svn服务器的地址切换至所述从服务器以提供svn服务;当所述主服务器故障排除后,复制所述从服务器备份的svn管理数据和svn资源仓库至主服务器以恢复所述主服务器的svn服务。本发明提出了基于svn系统的容灾方法,在svn系统主服务器发生故障时,可以分别将svn管理数据和svn资源仓库从主服务器备份到从服务器,其中svn资源仓库的备份可以采用实时备份机制,如此保证了svn资源仓库不会丢失,保证了svn资源仓库可用性不受影响;分别采用不同的方式备份svn管理数据和svn资源仓库既能提高备份性能,还能进一步保证数据的安全性;并在主服务器故障时,采用从服务器提供svn服务,当主服务器恢复正常后,将从服务器中的svn管理数据和svn资源库从从服务器还原到主服务器,保证了svn服务的连续性。

附图说明

图1为本发明实施例中基于版本控制管理svn系统的容灾方法的流程图;

图2为本发明实施例中基于版本控制管理svn系统的容灾装置的结构示意图。

具体实施方式

针对现有技术中存在的svn遇到故障时如何继续提供服务的问题,本发明实施例提供的基于版本控制管理svn系统的容灾方法,所述方法应用于包括主服务器和从服务器的svn系统中,本发明方法的流程如图1所示,执行步骤如下:

步骤101,按照第一预设备份配置,将运行在所述主服务器的svn资源仓库备份至所述从服务器;

步骤102,按照第二预设备份配置,将运行在所述主服务器的svn管理数据备份至所述从服务器;

步骤103,当所述主服务器故障,将svn服务器的地址切换至所述从服务器以提供svn服务;

这里,具体包括:1、根据已备份的从服务器的svn管理数据的得到svn用户和权限数据;2、将用户和权限数据分别写入到svn服务的用户和权限配置文件中;3、执行指令脚本,启动从服务器的svn资源仓库;4、客户端将访问的服务地址切换成从服务器提供的svn服务地址。

步骤104,当所述主服务器故障排除后,复制所述从服务器备份的svn管理数据和svn资源仓库至主服务器以恢复所述主服务器的svn服务。

优选地,所述按照第一预设备份配置,将运行在所述主服务器的svn资源仓库备份至所述从服务器,包括:

通过分别在所述主服务器和所述从服务器各自的svn资源仓库目录下文件中插入脚本指令配置主从服务器之间svn资源仓库的实时备份。

具体地,首先在从服务器上创建备份的svn资源仓库,在备份的svn资源仓库仓库目录下的配置hooks/start-commit文件,写入如下脚本命令:

#!/bin/bash

user="$2"

if["$user"="test"];thenexit0;fi

echo"onlythetestusermaycommitnewrevisions">&2

exit1

配置hooks/pre-revprop-change文件,写入如下脚本命令:

#!/bin/bash

user="$3"

if["$user"="test"];thenexit0;fi

echo"onlythetestusermaycommitnewrevisions">&2

exit1

其次,在主服务器的svn资源仓库目录下的hooks/post-commit文件中写入如下脚本命令:

#!/bin/sh

repos="$1"

rev="$2"

exportlc_ctype=zh_cn.utf-8

/bin/svnsyncsynchronize--non-interactivehttp://192.168.15.177/svn/repos--usernametest--passwordtest

执行初始化备份服务器的svn资源仓库的命令,如下:

svnsyncinit--non-interactive--usernametest--password123456http://172.19.1.148/svn/reposfile:///home/svn/repos/repos

svnsyncsynchttp://172.19.1.148/svn/repos--usernametest--password123456

启用实时备份命令,如下:

/bin/svnsyncsynchronize--non-interactivehttp://172.19.1.148/svn/test--usernametest--password123456。

优选地,所述按照第二预设备份配置,将运行在所述主服务器的svn管理数据备份至所述从服务器,包括:

在所述从服务器中插入数据库备份脚本指令;

将所述数据库备份脚本指令加入定时任务;

按照所述定时任务的定时周期,将主服务器的svn管理数据备份至从服务器中。

具体地,备份脚本指令如下:

优选地,所述复制所述从服务器备份的svn管理数据和svn资源仓库至主服务器以恢复svn服务,包括:

将所述从服务器备份的svn管理数据复制至所述主服务器的配置文件,将所述从服务器备份的svn资源仓库复制至所述主服务器的svn资源仓库中以恢复所述主服务器的svn服务。这里,具体的执行过程如下:

第一、搭建svn服务;

第二、从从服务器的数据库中分别复制权限和用户数据至权限、用户配置文件中;

第三、将从服务器的svn资源仓库复制到主服务器的svn资源仓库根目录下;

第四、运行批量设置主服务的svn资源仓库配置的脚本命令,如下:

#!/bin/bash

#仓库名称数组

repos_arr=(sharerepossharerepos2wyycktyjsskcptyjs1hhhh2test8normaltest10testaatestbbzhouhonggang)

#遍历操作

forreposin${repos_arr[*]}

do

reposfullpath=$1$repos

reposhttprootpath=$2$repos

repospostcommitpath=$reposfullpath/hooks/post-commit

echo-e\#\!/bin/bash"\n""\n"repos\=\"\$1\""\n"rev\=\"\$2\""\n"exportlc_ctype\=zh_cn.utf\-8"\n""\n"/bin/svnsyncsynchronize\-\-non\-interactive$reposhttprootpath\-\-username$3\-\-password$4>$repospostcommitpath

done

其中,所述svn管理数据,包括svn用户名称及对应的用户权限、还原资源库命令。

本发明实施例提供的基于版本控制管理svn系统的容灾方法,按照第一预设备份配置,将运行在所述主服务器的svn资源仓库备份至所述从服务器;按照第二预设备份配置,将运行在所述主服务器的svn管理数据备份至所述从服务器;当所述主服务器故障,将svn服务器的地址切换至所述从服务器以提供svn服务;当所述主服务器故障排除后,复制所述从服务器备份的svn管理数据和svn资源仓库至主服务器以恢复所述主服务器的svn服务。本发明提出了基于svn系统的容灾方法,在svn系统主服务器发生故障时,可以分别将svn管理数据和svn资源仓库从主服务器备份到从服务器,其中svn资源仓库的备份可以采用实时备份机制,如此保证了svn资源仓库不会丢失,保证了svn资源仓库可用性不受影响;分别采用不同的方式备份svn管理数据和svn资源仓库既能提高备份性能,还能进一步保证数据的安全性;并在主服务器故障时,采用从服务器提供svn服务,当主服务器恢复正常后,将从服务器中的svn管理数据和svn资源库从从服务器还原到主服务器,保证了svn服务的连续性。

基于同一发明构思,本发明实施例提供一种基于版本控制管理svn系统的容灾装置,该装置应用于包括主服务器和从服务器的svn系统中,结构如图2所示,包括:第一备份单元21、第二备份单元22以及恢复单元23;其中,

所述第一备份单元21,用于按照第一预设备份配置,将运行在所述主服务器的svn资源仓库备份至所述从服务器;

所述第二备份单元22,用于按照第二预设备份配置,将运行在所述主服务器的svn管理数据备份至所述从服务器;

所述恢复单元23,用于当所述主服务器故障,将svn服务器的地址切换至所述从服务器以提供svn服务;当所述主服务器故障排除后,复制所述从服务器备份的svn管理数据和svn资源仓库至主服务器以恢复所述主服务器的svn服务。

优选地,所述第一备份单元21,用于按照第一预设备份配置,将运行在所述主服务器的svn资源仓库备份至所述从服务器,具体用于:

通过分别在所述主服务器和所述从服务器各自的svn资源仓库目录下文件中插入脚本指令配置主从服务器之间svn资源仓库的实时备份。

优选地,所述第二备份单元22,用于按照第二预设备份配置,将运行在所述主服务器的svn管理数据备份至所述从服务器,具体用于:

在所述从服务器中插入数据库备份脚本指令;

将所述数据库备份脚本指令加入定时任务;

按照所述定时任务的定时周期,将主服务器的svn管理数据备份至从服务器中。

其中,所述恢复单元23,用于复制所述从服务器备份的svn管理数据和svn资源仓库至主服务器以恢复svn服务,具体用于:

将所述从服务器备份的svn管理数据复制至所述主服务器的配置文件,将所述从服务器备份的svn资源仓库复制至所述主服务器的svn资源仓库中以恢复所述主服务器的svn服务。

其中,所述svn管理数据,包括svn用户名称及对应的用户权限、还原资源库命令。

应当理解,本发明实施例提供的基于版本控制管理svn系统的容灾装置实现原理及过程与上述图1及所示的实施例类似,在此不再赘述。

本发明实施例提供的基于版本控制管理svn系统的容灾方法及装置,按照第一预设备份配置,将运行在所述主服务器的svn资源仓库备份至所述从服务器;按照第二预设备份配置,将运行在所述主服务器的svn管理数据备份至所述从服务器;当所述主服务器故障,将svn服务器的地址切换至所述从服务器以提供svn服务;当所述主服务器故障排除后,复制所述从服务器备份的svn管理数据和svn资源仓库至主服务器以恢复所述主服务器的svn服务。本发明提出了基于svn系统的容灾方法,在svn系统主服务器发生故障时,可以分别将svn管理数据和svn资源仓库从主服务器备份到从服务器,其中svn资源仓库的备份可以采用实时备份机制,如此保证了svn资源仓库不会丢失,保证了svn资源仓库可用性不受影响;分别采用不同的方式备份svn管理数据和svn资源仓库既能提高备份性能,还能进一步保证数据的安全性;并在主服务器故障时,采用从服务器提供svn服务,当主服务器恢复正常后,将从服务器中的svn管理数据和svn资源库从从服务器还原到主服务器,保证了svn服务的连续性。

本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如201、202、203等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的可选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括可选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1