掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及数据库技术领域,特别涉及一种数据库灾备切换方法及装置、存储介质及电子设备。

背景技术

金融业监管部门对商业银行信息系统业务连续性管理的要求越来越高,并且要求大型商业银行要定期开展灾备切换演练。随着业务系统架构多样性及复杂性的不断提高,生产数据中心与灾备数据中心的切换流程越发复杂。

目前数据库在灾备切换时,需要依靠人工对数据库的角色进行切换,这种切换方式效率低下、步骤多、耗时长。

发明内容

有鉴于此,本发明实施例提供一种数据库灾备切换方法及装置、存储介质及电子设备,应用本发明提供的方案,在确定灾备切换模式后,执行与灾备切换模式对应的灾备切换脚本,从而实现业务系统的数据库灾备的自动化切换,整个切换过程减少人工参与,缩短切换时间,有效提高切换效率。

为实现上述目的,本发明实施例提供如下技术方案:

一种数据库灾备切换方法,包括:

接收业务系统的灾备切换指令;

基于所述灾备切换指令确定灾备切换模式,所述灾备切换模式为灾难切换模拟演练模式、计划内实战演练模式以及计划外切换模式中的其中一种;

获取与所述灾备切换模式对应的灾备切换脚本,并执行所述灾备切换脚本,实现所述业务系统的数据库灾备切换。

上述的方法,可选的,所述基于所述灾备切换指令确定灾备切换模式,包括:

对所述灾备切换指令进行解析,获取模式标签;

基于所述模式标签,确定灾备切换模式。

上述的方法,可选的,当所述灾备切换模式为灾难切换模拟演练模式时,所述执行所述灾备切换脚本,完成所述业务系统的数据库的灾备切换,包括:

执行所述灾备切换脚本中的检查脚本,对所述业务系统的状态进行检查,获取所述业务系统的检查结果;

当所述检查结果表征所述业务系统的状态正常时,执行所述灾备切换脚本中的禁用脚本,以将所述业务系统的主库的删除归档功能禁用;

执行所述灾备切换脚本中的暂停脚本,以暂停对所述业务系统的主库与备库之间的日志传输;

执行所述灾备切换脚本中的切换脚本,以将所述业务系统的主库从生产数据库切换为灾备数据库,以及将所述业务系统的备库从所述灾备数据库切换为生产数据库,以使所述灾备数据库支持所述业务系统进行业务演练;

在所述业务系统结束业务演练后,执行所述灾备切换脚本中的恢复脚本,将所述业务系统的主库从所述灾备数据库恢复为生产数据库,将所述业务系统的备库从所述生产数据库恢复为所述灾备数据库,以及恢复所述备库和所述主库之间的日志传输,以及将所述主库的删除归档功能的启用。

上述的方法,可选的,当所述灾备切换模式为计划内实战演练模式时,所述执行所述灾备切换脚本,完成所述业务系统的数据库的灾备切换,包括:

执行所述灾备切换脚本中的检查脚本,对所述业务系统的状态进行检查,获取所述业务系统的检查结果;

当所述检查结果表征所述业务系统的状态正常时,执行所述灾备切换脚本中的切换脚本,以将所述业务系统的主库从生产数据库切换为灾备数据库,以及将所述业务系统的备库从所述灾备数据库切换为生产数据库;

执行所述灾备切换脚本中的启动脚本,以将切换为所述业务系统的主库的灾备数据库启动为只读状态;

执行所述灾备切换脚本中的激活日志反向传输脚本,以将切换为所述业务系统的主库的灾备数据库的数据反向传输至切换为所述业务系统的备库的生产数据库。

上述的方法,可选的,当所述灾备切换模式为计划外切换模式时,所述执行所述灾备切换脚本,完成所述业务系统的数据库的灾备切换,包括:

执行所述灾备切换脚本,将所述业务系统的主库从生产数据库切换为灾备数据库,并将所述生产数据库禁用,以使所述灾备数据库支持所述业务系统的业务运营。

一种数据库灾备切换装置,包括:

接收单元,用于接收业务系统的灾备切换指令;

确定单元,用于基于所述灾备切换指令确定灾备切换模式,所述灾备切换模式为灾难切换模拟演练模式、计划内实战演练模式以及计划外切换模式中的其中一种;

获取单元,用于获取与所述灾备切换模式对应的灾备切换脚本,并执行所述灾备切换脚本,实现所述业务系统的数据库灾备切换。

上述的装置,可选的,所述确定单元执行基于所述灾备切换指令确定灾备切换模式的过程,包括:

对所述灾备切换指令进行解析,获取模式标签;

基于所述模式标签,确定灾备切换模式。

上述的装置,可选的,当所述灾备切换模式为灾难切换模拟演练模式时,所述获取单元执行所述灾备切换脚本,完成所述业务系统的数据库的灾备切换的过程,包括:

执行所述灾备切换脚本中的检查脚本,对所述业务系统的状态进行检查,获取所述业务系统的检查结果;

当所述检查结果表征所述业务系统的状态正常时,执行所述灾备切换脚本中的禁用脚本,以将所述业务系统的主库的删除归档功能禁用;

执行所述灾备切换脚本中的暂停脚本,以暂停对所述业务系统的主库与备库之间的日志传输;

执行所述灾备切换脚本中的切换脚本,以将所述业务系统的主库从生产数据库切换为灾备数据库,以及将所述业务系统的备库从所述灾备数据库切换为生产数据库,以使所述灾备数据库支持所述业务系统进行业务演练;

在所述业务系统结束业务演练后,执行所述灾备切换脚本中的恢复脚本,将所述业务系统的主库从所述灾备数据库恢复为生产数据库,将所述业务系统的备库从所述生产数据库恢复为所述灾备数据库,以及恢复所述备库和所述主库之间的日志传输,以及将所述主库的删除归档功能的启用。

上述的装置,可选的,当所述灾备切换模式为计划内实战演练模式时,所述获取单元执行所述灾备切换脚本,完成所述业务系统的数据库的灾备切换的过程,包括:

执行所述灾备切换脚本中的检查脚本,对所述业务系统的状态进行检查,获取所述业务系统的检查结果;

当所述检查结果表征所述业务系统的状态正常时,执行所述灾备切换脚本中的切换脚本,以将所述业务系统的主库从生产数据库切换为灾备数据库,以及将所述业务系统的备库从所述灾备数据库切换为生产数据库;

执行所述灾备切换脚本中的启动脚本,以将切换为所述业务系统的主库的灾备数据库启动为只读状态;

执行所述灾备切换脚本中的激活日志反向传输脚本,以将切换为所述业务系统的主库的灾备数据库的数据反向传输至切换为所述业务系统的备库的生产数据库。

上述的装置,可选的,当所述灾备切换模式为计划外切换模式时,所述获取单元执行所述灾备切换脚本,完成所述业务系统的数据库的灾备切换的过程,包括:

执行所述灾备切换脚本,将所述业务系统的主库从生产数据库切换为灾备数据库,并将所述生产数据库禁用,以使所述灾备数据库支持所述业务系统的业务运营。

一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如上所述的数据库灾备切换方法。

一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如上所述的数据库灾备切换方法。

与现有技术相比,本发明具有以下优点:

本发明提供的一种数据库灾备切换方法及装置、存储介质及电子设备中,接收业务系统的灾备切换指令,基于灾备切换指令确定灾备切换模式,灾备切换模式为灾难切换模拟演练模式、计划内实战演练模式以及计划外切换模式中的其中一种;获取与灾备切换模式对应的灾备切换脚本,并执行灾备切换脚本,实现业务系统的数据库灾备切换。在接收到业务系统的灾备切换指令后,可以确定灾备切换模式,然后执行与灾备切换模式对应的灾备切换脚本,从而实现业务系统的数据库灾备切换,整个过程实现自动化切换,无需人工逐步进行切换,有效缩短数据库切换所需的时间,提高数据库切换的效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的一种数据库灾备切换方法的方法流程图;

图2为本发明实施例提供的当灾备切换模式为灾难切换模拟演练模式时,执行灾备切换脚本,完成业务系统的数据库的灾备切换的流程图;

图3为本发明实施例提供的Oracle数据库切换模拟演练正切流程的示例图;

图4为本发明实施例提供的Oracle数据库切换模拟演练回切流程的示例图;

图5为本发明实施例提供的当灾备切换模式为计划内实战演练模式时,执行灾备切换脚本,完成业务系统的数据库的灾备切换的流程图;

图6为本发明实施例提供的Oracle数据库切换计划内实战演练正切、回切流程的示意图;

图7为本发明实施例提供的Oracle数据库切换计划外切换流程的示意图;

图8为本发明实施例提供的一种数据库灾备切换装置的结构示意图;

图9为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

术语解释:

Oracle数据库:Oracle数据库一款关系型数据库。它是在数据库领域一直处于领先地位的产品,系统可移植性好,使用方便,功能强,适用于各类大、中、小微机环境。它是一种高效率,可靠性好,适应高吞吐量的数据库方案。

灾备切换:生产数据中心发生故障或灾难时,启用灾备数据中心。

ADG:Active Data Guard,只读状态实时应用日志。

RPO:当灾难或紧急事件发生时,数据可以恢复到的时间点,也即最大允许业务数据丢失的时间长度。RPO允许时间越长,意味着越不需要强调数据的实时性。

RTO:恢复时间目标,是指宕机发生后多长时间要恢复运行,也即最大允许业务停顿的时间长度。RTO允许时间越长,意味着有越充足的时间来恢复业务。

目前系统的数据库在进行灾备切换时,依靠于人工进行系统的切换,整个过程繁杂且需要花费较长的时间,导致系统的数据库进行灾备切换的效率极其低下。

为解决上述的问题,本发明提供一种数据库灾备切换方案,在进行数据库灾备切换时,基于不同的灾备切换模式,执行不同的灾备切换脚本,从而可以自动的进行数据库灾备切换,整个过程有效减少人工参与度,实现自动化切换,有效缩短灾备切换所需的时间,提高灾备切换的效率。

本发明可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。

参照图1,为本发明实施例提供的一种数据库灾备切换方法的方法流程图,具体说明如下所述:

S101、接收业务系统的灾备切换指令。

优选的,灾备切换指令可以是工作人员发送的指令,也可以是业务系统自动生成的指令。

示例性的,业务系统设置有演练计划表,演练计划表中设置多个演练时间,每个演练时间设置对应的演练场景,在当前时间满足演练计划表中的任意一个演练时间时,基于该演练时间对应的演练场景,生成与该演练场景对应的灾备切换指令,优选的,演练计划表中设置的演练场景包括但不限于灾难切换模拟演练模式、计划内实战演练模式;演练计划表中内容可以实时进行更新。

进一步的,在业务系统出现故障或是异常时,也会生成灾备切换指令,不过此时生成的灾备切换指令所对应的演练场景为计划外切换模式。

S102、基于灾备切换指令确定灾备切换模式,灾备切换模式为灾难切换模拟演练模式、计划内实战演练模式以及计划外切换模式中的其中一种。

灾备切换指令中包含进行灾备切换所应用的场景或是模式的标签。

通过对灾备切换指令进行解析,获取模式标签,基于模式标签,确定灾备切换模式。需要说明的是,不同的灾备切换模式对应不同的模式标签,通过模式标签可以确定具体的灾备切换模式。

进一步的,模式标签的内容可以使用数字、字母等字符串组成,由此可以为不同的灾备切换模式设置唯一的识别码,从而确保模式标签可以被计算机设备识别,确保本方案的自动化实现。

此处的灾难切换模式可以理解为业务系统进行数据库灾备切换时所对应的场景或是模式。

S103、获取与灾备切换模式对应的灾备切换脚本,并执行灾备切换脚本,实现业务系统的数据库灾备切换。

在确定灾备切换模式后,获取灾备切换模式对应的灾备切换脚本,然后执行灾备切换脚本,进而可以实现业务系统的数据库灾备切换。需要说明的是,执行灾备切换脚本可以实现与该灾备切换模式对应的应急预案,应急预案在实现后可以保证业务系统在出现故障或是异常时,利用灾备数据库、备用场地、备用设施等恢复资源,实现业务系统的数据库灾备切换,以确保业务系统可以继续支持业务运营。

本发明实施例提供的方法中,接收业务系统的灾备切换指令,基于灾备切换指令确定灾备切换模式,灾备切换模式为灾难切换模拟演练模式、计划内实战演练模式以及计划外切换模式中的其中一种;获取与灾备切换模式对应的灾备切换脚本,并执行灾备切换脚本,实现业务系统的数据库灾备切换。在接收到业务系统的灾备切换指令后,可以确定灾备切换模式,然后执行与灾备切换模式对应的灾备切换脚本,从而实现业务系统的数据库灾备切换,整个过程实现自动化切换,无需人工逐步进行切换,有效缩短数据库切换所需的时间,提高数据库切换的效率。

优选的,本发明业务系统所使用的数据库的类型可以为ORACLE数据库;本发明对不同灾备切换模式下执行灾备切换脚本,实现业务系统的数据库灾备切换的过程进行说明,具体说明如下所述。

参照图2,为本发明实施例提供的当灾备切换模式为灾难切换模拟演练模式时,执行灾备切换脚本,完成业务系统的数据库的灾备切换的流程图,具体说明如下所述。

S201、执行灾备切换脚本中的检查脚本,对业务系统的状态进行检查,获取业务系统的检查结果。

需要说明的是,灾备切换模式为灾备切换演练模式时,业务系统进入演练状态,进入演练状态的业务系统会模拟系统切换和业务回复操作,在模拟状态的业务系统不对外提供正式的服务,通常在非营业时间进入演练状态。

检查脚本用于检查业务系统的状态是否正常,示例性的,基于预设的各个检查项,获取业务系统在各个检查项的检查结论,基于各个检查结论,生成业务系统的检查结果。

需要说明的是,当各个检查结论均表征为正常时,表示业务系统具有灾备切换条件,并生成表征业务系统状态正常的检查结果;当各个检查结论中存在表征为故障或是异常的结论时,表示业务系统不具有灾备切换条件,并生成表征业务系统状态异常的检查结果。

示例性的,各个检查项包括但不限于数据库灾备相关配置、数据库状态、主备库同步状态等检查项,以及包括但不限于standby redo member的大小、REDO GROUP大小一致性、STANDBY REDO GROUP大小一致性、当前用户与数据库实例的用户一致、ORACLE_SID对应的ora_pmon进程存在、log_file_name_convert、db_file_name_convert参数值、REDOMEMBER路径、REDO GROUP的数量一致性、REDO组的大小一致性、STANDBY REDO组的数量、STANDBY REDO组的大小一致性、Recovery Area使用量、表空间的状态、数据文件的状态、临时文件的状态、检查数据库参数LOG_MODE、controlfile_type、database_role、force_logging、switchover_status、检查归档传输的状态、检查GAP、检查MRP进程是否启动、检查MRP进程运行模式、检查归档应用的序列号、检查静态监听、检查ASM磁盘组空间、检查事务DBA_PENDING_TRANSACTIONS、检查aw_longops、检查JOB、检查JOB参数、tnsping目标端、检查补丁、检查是否有broker配置等检查项;其中,standby redo member表示灾备端重做日志成员;REDO GROUP表示重做日志组;STANDBY REDO GROUP表示灾备端重做日志组;ORACLE_SID表示数据库实例ID;ora_pmon表示数据库监控进程;log_file_name_convert表示主备数据库日志文件转换目录映射;db_file_name_convert表示主备数据库数据文件转换目录映射;REDO MEMBER表示重做日志成员;STANDBY REDO表示灾备端重做日志;REDO表示重做日志;Recovery Area表示恢复区;LOG_MODE表示日志模式;controlfile_type表示控制文件类型;database_role表示数据库角色;force_logging表示强制记录日志;switchover_status表示切换状态;GAP表示归档日志缺失;MRP表示介质恢复协调器;ASM表示Automatic Storage Management自动存储管理;DBA_PENDING_TRANSACTIONS表示待处理事务;aw_longops表示长操作进程;JOB表示任务;tnsping表示检查数据库监听服务;broker表示控制器。

通过各个检查项,可以检查业务系统的数据库状态是否正常、数据库灾备相关配置是否正确、数据库主备库同步是否正常、是否具备切换条件等内容,当业务系统的数据库状态正常、数据库灾备相关配置正确、数据库主备库同步正常、具备切换条件时,表示业务系统具有灾备切换条件,否则,表示业务系统不具有灾备切换条件。

优选的,执行检查脚本可以检查业务系统的主备数据库的配置和状态。

S202、当检查结果表征业务系统的状态正常时,执行灾备切换脚本中的禁用脚本,以将业务系统的主库的删除归档功能禁用。

优选的,通过执行禁用脚本,可以将业务系统的主库的删除归档功能禁用,即,禁用业务系统的删除归档的RMAN(备份与恢复工具)脚本。

S203、执行灾备切换脚本中的暂停脚本,以暂停对业务系统的主库与备库之间的日志传输。

暂停脚本的名称可以为flashback_step_2_defer,执行暂停脚本时,实际上是暂停业务系统的主库与备库之间的日志传输,在执行暂停脚本后,会检查日志传输状态,具体为:对比主备库应用日志最大编号是否一致,检查传输没有日志文件丢失,如果有问题,查看确认备库缺少的日志文件,并从主库尝试重新同步日志;如果没问题则断开主备库之间的日志传输,准备进行备库的角色切换;在暂停主备库之间的日志传输后,还需要检查主备库之间的日志传输状态,确认数据库实例的所有日志传输都已经被推迟。

需要说明的是,通过暂停主库向备库的日志传输,可以确定业务系统在模拟演练期间,主库的相关更改不再向备库同步,以保证主备库的数据一致性。

S204、执行灾备切换脚本中的切换脚本,以将业务系统的主库从生产数据库切换为灾备数据库,以及将业务系统的备库从灾备数据库切换为生产数据库,以使灾备数据库支持业务系统进行业务演练。

需要说明的是,业务系统进行业务演练时产生的业务记录、日志、数据等演练内容不回写,即不保存,可以减少存储资源的占用。

进一步的,步骤S201-S204为业务系统的数据库切换模拟演练的正切流程。

本发明还可以在灾备数据库切换为主库之前设置还原点,后续可以通过还原点还原备库,即将灾备数据库恢复为备库。

S205、在业务系统结束业务演练后,执行灾备切换脚本中的恢复脚本,将业务系统的主库从灾备数据库恢复为生产数据库,将业务系统的备库从生产数据库恢复为灾备数据库,以及恢复备库和主库之间的日志传输,以及将主库的删除归档功能的启用。

进一步的,步骤S205为业务系统的数据库切换模拟演练的回切流程,回切流程用于将业务系统的主备库还原。

在业务系统结束业务演练后,执行灾备切换脚本中的恢复脚本,从而将业务系统的主库恢复为生产数据库,将备库恢复为灾备数据库,并且恢复备库与主库之间的日志传输,从而保证主备库间的数据一致性。

本发明在进行数据库灾备切换的过程中,通过使用脚本来对业务系统进行切换前检查和验证,从而无需人工进行检查、验证,提高数据库灾备切换的效率。

参照图3,为本发明实施例提供的Oracle数据库切换模拟演练正切流程的示例图,参照图4,为本发明实施例提供的Oracle数据库切换模拟演练回切流程的示例图。

图3和图4所示的各个步骤均通过自动化执行的脚本实现。

参照表1,对图3和图4中的各个步骤进行说明。

表1

需要说明的是,切换前检查的脚本相当于图2中所述的检查脚本;主库禁用删除归档的脚本相当于图2中所述的禁用脚本;暂停日志传输的脚本相当于图2中所述的暂停脚本;图2所述的恢复脚本包含恢复备库到只读、恢复日志传输以及恢复清理归档日志的脚本。其中,表1中的dataguard表示主备库;RMAN表示备份恢复工具;DEFER表示延迟;job_queue_processes表示同时运行作业数;MRP表示介质恢复协调器;dest_N表示同步目标端编号;OPEN表示打开;JOB表示任务;MOUNT表示挂载;DISABLE表示关闭。

参照图5,为本发明实施例提供的当灾备切换模式为计划内实战演练模式时,执行灾备切换脚本,完成业务系统的数据库的灾备切换的流程图,具体说明如下所述。

S301、执行灾备切换脚本中的检查脚本,对业务系统的状态进行检查,获取业务系统的检查结果。

进一步的,计划内实战演练模式是指模拟突发事件场景,利用灾难备份系统、备用场地、备用设施等恢复资源,按照应急预案,实际完成系统切换,并恢复业务运营的演练,以验证系统和业务的运营情况。

优选的,当灾备切换模式为计划内实战演练模式时,业务系统可以进入演练状态。

需要说明的是,对业务系统的状态进行检查的内容可以参照对图2的S201的说明,此处不再进行赘述。

S302、当检查结果表征业务系统的状态正常时,执行灾备切换脚本中的切换脚本,以将业务系统的主库从生产数据库切换为灾备数据库,以及将业务系统的备库从灾备数据库切换为生产数据库。

S303、执行灾备切换脚本中的启动脚本,以将切换为业务系统的主库的灾备数据库启动为只读状态。

S304、执行灾备切换脚本中的激活日志反向传输脚本,以将切换为业务系统的主库的灾备数据库的数据反向传输至切换为业务系统的备库的生产数据库。

需要说明的是,图3所示的流程中包含了数据库进行正切和回切的流程。

优选的,通过激活日志反向传输脚本,可以将灾备数据库的日志向生产数据库传输,从而保证灾备数据库和生产数据库之间的数据一致性。

本发明实施例提供的方法中,在进行数据库灾备切换时,进行状态检测无需人工参与,从而减少对数据库灾备切换所花费的时间,有效提高切换效率。并且,本发明实施例提供的方法中,计划内实战演练模式时将灾备数据库以主库角色打开后进行业务演练,演练数据回写,演练完成后恢复主备库角色和数据同步。

参照图6,为本发明实施例提供的Oracle数据库切换计划内实战演练正切、回切流程的示意图。

图6中的各个步骤通过自动化执行的脚本实现,参照表2,为本发明实施例对图6中的各个步骤进行说明的内容。

表2

需要说明的是,切换前检查的脚本相当于图5中所述的检查脚本,图5中所述的切换脚本包含源端切换为备库以及目标端切换为主库的脚本,启动源端数据库为只读的脚本相当于图5中所述的启动脚本,激活日志反向传输的脚本相当于图5中所述的激活日志反向传输脚本,其中表2中的,dataguard表示主备库;dg_config表示主备关系配置;job_queue_processes表示同时运行作业数;19C表示数据库版本为19C;11g表示数据库版本为11g;OPEN表示打开;record_job_queue_processes表示记录同时运行作业数;MRP表示介质恢复协调器;dest_n表示同步目标端编号;FarSync表示主备同步中间节点。

当灾备切换模式为计划外切换模式时,执行所述灾备切换脚本,完成业务系统的数据库的灾备切换的过程如下所述:

执行灾备切换脚本,将业务系统的主库从生产数据库切换为灾备数据库,并将生产数据库禁用,以使灾备数据库支持业务系统的业务运营。

参照图7,为本发明实施例提供的Oracle数据库切换计划外切换流程的示意图。

参照表3,对图7中所示的流程进行说明。

表3

图7中的在目标库进行Failover的脚本相于上述所述的灾备切换脚本。其中,表3中的job_queue_processes表示同时运行作业数;MRP表示介质恢复协调器;dest_N表示同步目标端编号;OPEN表示打开;JOB表示任务。

进一步的,表1至表3中的编排表示执行脚本后自动化执行的内容。

本发明实施例提供的方法可以实现ORACLE数据库的自动化灾备切换,在进行灾备切换的过程将数据库状态、主备库同步状态、切换状态的检查和判断的内容流程化、可视化、自动化,提高切换效率,本发明提供的方案实现了多场景普适性的Oracle切换流程。

本发明提供的方案实现了Oracle数据库的自动化切换,检查数据库状态、判断数据库切换过程状态,进行数据库的角色切换均为自动化执行,提高数据库运维的智能化水平。本发明将切换过程流程化、自动化,结果可视化,从而提高数据库切换效率。除此之外,本发明解决数据中心级别的灾难切换涉及系统和数据库数量多的情况,且适用于多种场景下的数据库切换,形成了通用的自动化切换方法,可面向国产数据库和其他平台产品拓展和推广。

相对于传统Oracle的ADG切换采用人工方法,需要依靠人工检查数据库状态、判断数据库切换过程状态,手工进行数据库的角色切换,且依赖专家经验、人工判断、手工操作,切换效率低下、步骤多、耗时长;对于数据中心级别的灾难切换涉及系统和数据库数量庞大,人工方法对于人力投入较高、并行度差,存在人为操作的风险和对切换过程分析处理的随机性和主观性的弊端。本发明针对灾难切换模拟演练、计划内实战演练、计划外切换三种场景,分别设计对应的灾备切换脚本,通过执行灾备切换脚本可以实现在对应场景的灾备切换,从而可以自动化进行灾备切换,可以提高效率、减少人为操作的主观性的弊端,有效规避传统技术因人工参与度高存在的弊端,并且本方案还可以兼容多种系统架构、高可用架构,应用范围广、适用性强。

相对于图1所示的方法,本发明还提供一种数据库灾备切换装置,该装置用于支持图1所示的方法的具体实现,该装置可以设置于各种计算机设备中。

参照图8,为本发明实施例提供的一种数据库灾备切换装置的结构示意图,具体说明如下所述:

接收单元401,用于接收业务系统的灾备切换指令;

确定单元402,用于基于所述灾备切换指令确定灾备切换模式,所述灾备切换模式为灾难切换模拟演练模式、计划内实战演练模式以及计划外切换模式中的其中一种;

获取单元403,用于获取与所述灾备切换模式对应的灾备切换脚本,并执行所述灾备切换脚本,实现所述业务系统的数据库灾备切换。

本发明实施例提供的装置中,接收业务系统的灾备切换指令,基于灾备切换指令确定灾备切换模式,灾备切换模式为灾难切换模拟演练模式、计划内实战演练模式以及计划外切换模式中的其中一种;获取与灾备切换模式对应的灾备切换脚本,并执行灾备切换脚本,实现业务系统的数据库灾备切换。在接收到业务系统的灾备切换指令后,可以确定灾备切换模式,然后执行与灾备切换模式对应的灾备切换脚本,从而实现业务系统的数据库灾备切换,整个过程实现自动化切换,无需人工逐步进行切换,有效缩短数据库切换所需的时间,提高数据库切换的效率。

在本发明实施例提供的另一装置中,所述确定单元402执行基于所述灾备切换指令确定灾备切换模式的过程,包括:

对所述灾备切换指令进行解析,获取模式标签;

基于所述模式标签,确定灾备切换模式。

在本发明实施例提供的另一装置中,当所述灾备切换模式为灾难切换模拟演练模式时,所述获取单元403执行所述灾备切换脚本,完成所述业务系统的数据库的灾备切换的过程,包括:

执行所述灾备切换脚本中的检查脚本,对所述业务系统的状态进行检查,获取所述业务系统的检查结果;

当所述检查结果表征所述业务系统的状态正常时,执行所述灾备切换脚本中的禁用脚本,以将所述业务系统的主库的删除归档功能禁用;

执行所述灾备切换脚本中的暂停脚本,以暂停对所述业务系统的主库与备库之间的日志传输;

执行所述灾备切换脚本中的切换脚本,以将所述业务系统的主库从生产数据库切换为灾备数据库,以及将所述业务系统的备库从所述灾备数据库切换为生产数据库,以使所述灾备数据库支持所述业务系统进行业务演练;

在所述业务系统结束业务演练后,执行所述灾备切换脚本中的恢复脚本,将所述业务系统的主库从所述灾备数据库恢复为生产数据库,将所述业务系统的备库从所述生产数据库恢复为所述灾备数据库,以及恢复所述备库和所述主库之间的日志传输,以及将所述主库的删除归档功能的启用。

在本发明实施例提供的另一装置中,当所述灾备切换模式为计划内实战演练模式时,所述获取单元403执行所述灾备切换脚本,完成所述业务系统的数据库的灾备切换的过程,包括:

执行所述灾备切换脚本中的检查脚本,对所述业务系统的状态进行检查,获取所述业务系统的检查结果;

当所述检查结果表征所述业务系统的状态正常时,执行所述灾备切换脚本中的切换脚本,以将所述业务系统的主库从生产数据库切换为灾备数据库,以及将所述业务系统的备库从所述灾备数据库切换为生产数据库;

执行所述灾备切换脚本中的启动脚本,以将切换为所述业务系统的主库的灾备数据库启动为只读状态;

执行所述灾备切换脚本中的激活日志反向传输脚本,以将切换为所述业务系统的主库的灾备数据库的数据反向传输至切换为所述业务系统的备库的生产数据库。

在本发明实施例提供的另一装置中,当所述灾备切换模式为计划外切换模式时,所述获取单元403执行所述灾备切换脚本,完成所述业务系统的数据库的灾备切换的过程,包括:

执行所述灾备切换脚本,将所述业务系统的主库从生产数据库切换为灾备数据库,并将所述生产数据库禁用,以使所述灾备数据库支持所述业务系统的业务运营。

本发明实施例还提供了一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述数据库灾备切换方法。

本发明实施例还提供了一种电子设备,其结构示意图如图9所示,具体包括存储器601,以及一个或者一个以上的指令602,其中一个或者一个以上指令602存储于存储器601中,且经配置以由一个或者一个以上处理器603执行所述一个或者一个以上指令602执行上述数据库灾备切换方法。

需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。

上述各个实施例的具体实施过程及其衍生方式,均在本发明的保护范围之内。

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

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 页面切换方法以及装置、电子设备及存储介质
  • 虚拟房间切换方法、装置、电子设备及存储介质
  • 业务系统切换方法、装置、电子设备及存储介质
  • 视频增强的切换方法、装置、电子设备及存储介质
  • 接近检测模式切换方法、装置、电子设备及存储介质
  • 一种灾备切换方法、装置、存储介质及电子设备
  • 一种MYSQL数据库的主灾备切换方法、装置及电子设备
技术分类

06120116491925