本申请涉及计算机领域,尤其涉及一种异地容灾方法及装置。
背景技术:
随着大数据时代的来临,数据的重要性不言而喻。对于绝大部分的公司来说,核心业务数据都由数据库进行管理。避免数据库的数据丢失是数据库管理中的基本要求。目前大部分公司利用数据库提供的备份工具将其数据备份在本地,但是这样只能起到本地容灾的作用。如果发生黑客攻击或者灾难(包括电力中断,硬件故障,自然灾害等),难免会造成数据损坏或者丢失。
为了解决上述技术问题,现有技术将本地备份好的数据保存在远端,以达到异地容灾的目的。但是这种方式操作比较繁杂,而且如果本地发生灾难,还是需要将异地的备份拷贝至本地以恢复数据库。在拷贝数据以及等待本地数据库恢复的这段时间中业务处于停滞状态,数据库无法被使用,影响公司的正常运营。
技术实现要素:
为了解决现有技术存在的技术问题,本申请提供了一种异地容灾方法及装置,减少业务中断带来的业务损失,保证公司的正常运营。
本申请提供了一种异地容灾方法,所述方法包括:
获取第一存储器的地址和第二存储器的地址;所述第一存储器为第一服务器对应的存储器,所述第一服务器用于运行第一数据库,所述第一存储器用于存储所述第一数据库的数据;所述第二存储器为第二服务器对应的存储器,所述第二服务器中安装有第二数据库,第一数据库和所述第二数据库为相同的数据库;
根据所述第一存储器的地址向所述第一存储器发送第一数据同步指令,所述第一数据同步指令中携带有所述第二存储器的地址,以便所述第一存储器根据所述第二存储器的地址将所述第一存储器中存储的所述第一数据库的数据同步至所述第二存储器;
当所述第一服务器故障时,向所述第二服务器发送第一数据库运行指令,以便所述第二服务器根据所述第一数据库运行指令以及所述第二存储器中存储的数据运行所述第二数据库。
可选的,所述方法还包括:
获取第一服务器的互联网协议ip地址;
根据所述第一服务器的ip地址向所述第一服务器发送第一映射指令,所述第一映射指令中包括第一存储器的地址,所述第一映射指令用于所述第一服务器建立与所述第一存储器之间的映射关系,以便将所述第一数据库的数据存储在所述第一存储器中。
可选的,所述方法还包括:
获取第二服务器的ip地址;
根据所述第二服务器的ip地址向所述第二服务器发送第二映射指令,所述第二映射指令中包括第二存储器的地址,所述第二映射指令用于所述第二服务器建立与所述第二存储器之间的映射关系,以便将所述第二数据库的数据存储在所述第二存储器中。
可选的,所述第一数据同步指令中还包括同步周期。
可选的,所述方法还包括:
当所述第一服务器恢复时,向所述第二存储器发送第二数据同步指令,所述第二数据同步指令中携带有所述第一存储器的地址,以便所述第二存储器根据所述第一存储器的地址将所述第二存储器中存储的所述第二数据库的数据同步至所述第一存储器;
向所述第一服务器发送第二数据库运行指令,以便所述第一服务器根据所述第二数据库运行指令以及所述第一存储器中同步后的数据运行所述第一数据库。
本申请实施例还提供了一种异地容灾装置,所述装置包括:
第一获取单元,用于获取第一存储器的地址和第二存储器的地址;所述第一存储器为第一服务器对应的存储器,所述第一服务器用于运行第一数据库,所述第一存储器用于存储所述第一数据库的数据;所述第二存储器为第二服务器对应的存储器,所述第二服务器中安装有第二数据库,第一数据库和所述第二数据库为相同的数据库;
第一发送单元,用于根据所述第一存储器的地址向所述第一存储器发送第一数据同步指令,所述第一数据同步指令中携带有所述第二存储器的地址,以便所述第一存储器根据所述第二存储器的地址将所述第一存储器中存储的所述第一数据库的数据同步至所述第二存储器;
第二发送单元,用于当所述第一服务器故障时,向所述第二服务器发送第一数据库运行指令,以便所述第二服务器根据所述第一数据库运行指令以及所述第二存储器中存储的数据运行所述第二数据库。
可选的,所述装置还包括:
第二获取单元,用于获取第一服务器的互联网协议ip地址;
第三发送单元,用于根据所述第一服务器的ip地址向所述第一服务器发送第一映射指令,所述第一映射指令中包括第一存储器的地址,所述第一映射指令用于所述第一服务器建立与所述第一存储器之间的映射关系,以便将所述第一数据库的数据存储在所述第一存储器中。
可选的,所述装置还包括:
第三获取单元,用于获取第二服务器的ip地址;
第四发送单元,用于根据所述第二服务器的ip地址向所述第二服务器发送第二映射指令,所述第二映射指令中包括第二存储器的地址,所述第二映射指令用于所述第二服务器建立与所述第二存储器之间的映射关系,以便将所述第二数据库的数据存储在所述第二存储器中。
可选的,所述第一数据同步指令中还包括同步周期。
可选的,所述装置还包括:
第五发送单元,用于当所述第一服务器恢复时,向所述第二存储器发送第二数据同步指令,所述第二数据同步指令中携带有所述第一存储器的地址,以便所述第二存储器根据所述第一存储器的地址将所述第二存储器中存储的所述第二数据库的数据同步至所述第一存储器;
第六发送单元,用于向所述第一服务器发送第二数据库运行指令,以便所述第一服务器根据所述第二数据库运行指令以及所述第一存储器中同步后的数据运行所述第一数据库。
在本申请实施例中,由于第二服务器中安装有第二数据库,并且第二存储器存储有第一数据库的数据,所以当第一服务器故障时,可以立即启动第二服务器利用第二存储器中存储的数据运行第二数据库,而无需等待第一数据库的恢复,所以减少了业务中断造成的损失,保证公司的正常运营。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种异地容灾系统的结构框图;
图2为本申请实施例提供的一种异地容灾方法的流程图;
图3为本申请实施例提供的一种异地容灾装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1,该图为本申请实施例提供的一种异地容灾系统的结构框图。
本申请实施例提供的异地容灾系统100包括第一服务器101、第二服务器102、第三服务器103、第一存储器104和第二存储器105。
其中,第一服务器101和第二服务器102分别与第三服务器103连接,第一存储器104分别与第一服务器101和第三服务器103连接,第二存储器105分别与第二服务器102和第三服务器103连接,第一存储器104和第二存储器105连接。
在本申请实施例中,第一存储器104和第二存储器105可以是磁盘、硬盘、闪存等存储器。
其中,第一服务器101用于运行第一数据库,第二服务器102用于运行第二数据库。
在本申请实施例中,为了实现异地容灾的效果,第一数据库和第二数据库为相同的数据库,例如它们都为oracle数据库、mysql数据库等。
第三服务器103中可以构建容灾管理系统,用于对第一服务器101和第二服务器102在容灾情况下对数据库的使用进行管理。
具体的,第三服务器103可以获取第一服务器101的互联网协议(internetprotocol,ip)地址、第二服务器102的ip地址、第一存储器104的地址和第二存储器105的地址,然后向第一服务器101发送第一存储器104的地址,向第二服务器102发送第二存储器105的地址。
具体的,第一服务器101和第一存储器104之间的映射关系可以由用户来指定,同理,第二服务器102和第二存储器105之间的映射关系也可以由用户来指定。
第一服务器101在接收到第一存储器104的地址之后,根据第一存储器104的地址与第一存储器104建立连接,以便将第一数据库的数据存储在第一存储器104中。例如,第一数据库的数据可以是磁盘中的一个或多个卷。
在具体实现时,若第一存储器104为磁盘,那么第三服务器103还可以将第一存储器104中第一卷的地址发给第一服务器101,即第三服务器103指定第一卷为存储第一数据库的数据的存储单元。
第二服务器102在接收到第二存储器105的地址之后,根据第二存储器105的地址与第二存储器105建立连接。当第二服务器102运行第二数据库时,可以将第二数据库的数据存储在第二存储器105中。
在具体实现时,若第二存储器105为磁盘,那么第三服务器105还可以将第二存储器105中第二卷的地址发送给第二服务器102,即第三服务器103指定该第二卷为存储第二数据库的数据的存储单元。
第一服务器101还用于根据所述第一存储器104的地址向所述第一存储器104发送第一数据同步指令,所述第一数据同步指令中携带有所述第二存储器105的地址。
第一存储器104用于接收第一数据同步指令,并根据所述第二存储器105的地址将所述第一存储器104中存储的所述第一数据库的数据同步至所述第二存储器105。
也就是说,在本申请实施例中,第一数据库的数据的同步是存储器之间的同步。
以上述将第一存储器104的第一卷中第一数据库的数据同步给第二存储器105的第二卷为例,具体的,第一存储器104创建与第一卷大小相同的第三卷,该第三卷中存储当第一服务器101在接收到第一数据同步指令之后第一卷中存储的数据,也就是将第一卷中存储的数据复制到第三卷中。这样,在传输第三卷中的数据时,第一卷中的数据可以按照需要被调用或处理,即第一卷中数据的变动不会影响到第三卷数据的传输。
然后,第一存储器104可以将第三卷中存储的数据发送给第二存储器105,以便第二存储器105将数据存储在第二卷中。
此外,为了避免对第一存储器104中的数据反复的读写,第一服务器101可以在本地建立相应的缓存,以将临时读写的数据或指令存储在缓存中,并周期性的根据缓存中的数据或指令对第一存储器104中的数据进行读写。
所以,可选的,当第一存储器104接收到第一数据同步指令之后,可以先将第一服务器101中缓存中的数据同步至第一存储器104中,然后再将第一存储器104中的数据同步至第二存储器105。
另外,第一数据同步指令中还可以携带同步周期,以便第一存储器104根据该同步周期对第一存储器104中存储的第一数据库的数据进行同步。
当所述第一服务器101故障时,第三服务器103还用于向所述第二服务器102发送第一数据库运行指令。
所述第二服务器102还用于接收所述第一数据库运行指令,并根据所述第一数据库运行指令以及所述第二存储器105中存储的数据运行所述第二数据库。
当所述第一服务器101恢复时,第三服务器103可以向所述第二存储器105发送第二数据同步指令,所述第二数据同步指令中携带有所述第一存储器的地址。
所述第二存储器105根据所述第一存储器104的地址将所述第二存储器105中存储的所述第二数据库的数据同步至所述第一存储器104。
第三服务器103可以向所述第一服务器101发送第二数据库运行指令。
所述第一服务器101根据所述第二数据库运行指令以及所述第一存储器104中同步后的数据运行所述第一数据库。
在本申请实施例中,由于第二服务器102中安装有第二数据库,并且第二存储器105存储有第一数据库的数据,所以当第一服务器101故障时,第三服务器103可以立即启动第二服务器102利用第二存储器105中存储的数据运行第二数据库,而无需等待第一数据库101的恢复,所以减少了业务中断造成的损失,保证公司的正常运营。
参见图2,该图为本申请实施例提供的一种异地容灾方法的流程图。
本实施例提供的异地容灾方法可以应用于上述第三服务器103,具体包括如下步骤:
s201:获取第一存储器的地址和第二存储器的地址;所述第一存储器为第一服务器对应的存储器,所述第一服务器用于运行第一数据库,所述第一存储器用于存储所述第一数据库的数据;所述第二存储器为第二服务器对应的存储器,所述第二服务器中安装有第二数据库,第一数据库和所述第二数据库为相同的数据库。
s202:根据所述第一存储器的地址向所述第一存储器发送第一数据同步指令,所述第一数据同步指令中携带有所述第二存储器的地址,以便所述第一存储器根据所述第二存储器的地址将所述第一存储器中存储的所述第一数据库的数据同步至所述第二存储器。
s203:当所述第一服务器故障时,向所述第二服务器发送第一数据库运行指令,以便所述第二服务器根据所述第一数据库运行指令以及所述第二存储器中存储的数据运行所述第二数据库。
可选的,所述方法还包括:
获取第一服务器的互联网协议ip地址;
根据所述第一服务器的ip地址向所述第一服务器发送第一映射指令,所述第一映射指令中包括第一存储器的地址,所述第一映射指令用于所述第一服务器建立与所述第一存储器之间的映射关系,以便将所述第一数据库的数据存储在所述第一存储器中。
可选的,所述方法还包括:
获取第二服务器的ip地址;
根据所述第二服务器的ip地址向所述第二服务器发送第二映射指令,所述第二映射指令中包括第二存储器的地址,所述第二映射指令用于所述第二服务器建立与所述第二存储器之间的映射关系,以便将所述第二数据库的数据存储在所述第二存储器中。
可选的,所述第一数据同步指令中还包括同步周期。
可选的,所述方法还包括:
当所述第一服务器恢复时,向所述第二存储器发送第二数据同步指令,所述第二数据同步指令中携带有所述第一存储器的地址,以便所述第二存储器根据所述第一存储器的地址将所述第二存储器中存储的所述第二数据库的数据同步至所述第一存储器;
向所述第一服务器发送第二数据库运行指令,以便所述第一服务器根据所述第二数据库运行指令以及所述第一存储器中同步后的数据运行所述第一数据库。
参见图3,该图为本申请实施例提供的一种异地容灾装置的结构框图
本申请实施例提供的一种异地容灾装置包括:
第一获取单元301,用于获取第一存储器的地址和第二存储器的地址;所述第一存储器为第一服务器对应的存储器,所述第一服务器用于运行第一数据库,所述第一存储器用于存储所述第一数据库的数据;所述第二存储器为第二服务器对应的存储器,所述第二服务器中安装有第二数据库,第一数据库和所述第二数据库为相同的数据库;
第一发送单元302,用于根据所述第一存储器的地址向所述第一存储器发送第一数据同步指令,所述第一数据同步指令中携带有所述第二存储器的地址,以便所述第一存储器根据所述第二存储器的地址将所述第一存储器中存储的所述第一数据库的数据同步至所述第二存储器;
第二发送单元303,用于当所述第一服务器故障时,向所述第二服务器发送第一数据库运行指令,以便所述第二服务器根据所述第一数据库运行指令以及所述第二存储器中存储的数据运行所述第二数据库。
可选的,所述装置还包括:
第二获取单元,用于获取第一服务器的互联网协议ip地址;
第三发送单元,用于根据所述第一服务器的ip地址向所述第一服务器发送第一映射指令,所述第一映射指令中包括第一存储器的地址,所述第一映射指令用于所述第一服务器建立与所述第一存储器之间的映射关系,以便将所述第一数据库的数据存储在所述第一存储器中。
可选的,所述装置还包括:
第三获取单元,用于获取第二服务器的ip地址;
第四发送单元,用于根据所述第二服务器的ip地址向所述第二服务器发送第二映射指令,所述第二映射指令中包括第二存储器的地址,所述第二映射指令用于所述第二服务器建立与所述第二存储器之间的映射关系,以便将所述第二数据库的数据存储在所述第二存储器中。
可选的,所述第一数据同步指令中还包括同步周期。
可选的,所述装置还包括:
第五发送单元,用于当所述第一服务器恢复时,向所述第二存储器发送第二数据同步指令,所述第二数据同步指令中携带有所述第一存储器的地址,以便所述第二存储器根据所述第一存储器的地址将所述第二存储器中存储的所述第二数据库的数据同步至所述第一存储器;
第六发送单元,用于向所述第一服务器发送第二数据库运行指令,以便所述第一服务器根据所述第二数据库运行指令以及所述第一存储器中同步后的数据运行所述第一数据库。
当介绍本申请的各种实施例的元件时,冠词“一”、“一个”、“这个”和“所述”都意图表示有一个或多个元件。词语“包括”、“包含”和“具有”都是包括性的并意味着除了列出的元件之外,还可以有其它元件。
需要说明的是,本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元及模块可以是或者也可以不是物理上分开的。另外,还可以根据实际的需要选择其中的部分或者全部单元和模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。