CN109947591B - 数据库异地灾备系统及其部署方法、部署装置 - Google Patents
数据库异地灾备系统及其部署方法、部署装置 Download PDFInfo
- Publication number
- CN109947591B CN109947591B CN201711386768.7A CN201711386768A CN109947591B CN 109947591 B CN109947591 B CN 109947591B CN 201711386768 A CN201711386768 A CN 201711386768A CN 109947591 B CN109947591 B CN 109947591B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- disaster recovery
- database
- voting
- local
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
本公开涉及数据库异地灾备系统及其部署方法、部署装置、介质以及电子设备。该数据库异地灾备系统的部署方法包括响应数据库服务请求,创建本地虚拟机、异地灾备虚拟机和投票虚拟机;配置本地虚拟机、异地灾备虚拟机和投票虚拟机的网络参数;基于网络参数,对本地虚拟机、异地灾备虚拟机和投票虚拟机进行初始化;以及基于网络参数使用本地虚拟机、异地灾备虚拟机和投票虚拟机创建群集以生成数据库异地灾备系统。通过上述方法,后台程序通过云管理平台生成一整套数据库异地灾备高可用架构,无需人工干预,显著提升数据库资源交付效率,节省人力成本,同时使得物理机能够支撑的业务更多,存储等资源利用率更高。
Description
技术领域
本公开涉及计算机领域,特别涉及一种数据库异地灾备系统及其部署方法、部署装置、介质以及电子设备。
背景技术
随着网络应用的发展对数据的巨大需求,用户和应用程序对数据库提供服务时的可靠性要求越来越高。为实现数据库服务的高可靠性,通常采用高可用(Highavailability,HA)架构的数据库方案。在高可用架构中通过使用主服务器和备用服务器构成集群化或冗余设计,以保证提供服务的主服务器故障时自动转移到备用服务器继续提供服务来减少系统不能提供服务的时间。对高可用架构数据库的进一步改进是在异地进行部署。但是,在传统的数据库异地灾备方案中,数据库资源交付慢,通过人工进行异地灾备高可用部署非常复杂,服务器利用率低,例如企业IT的数据库类型的资源利用率普遍较低,其中镜像数据库处于不可读状态,无形中也造成了硬件资料的浪费。
因此,存在对数据库异地灾备高可用架构部署进行改进的需求。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开实施例的目的在于解决上述传统数据库异地灾备方案中的缺陷,提高数据库资源交付速度和效率,简化异地灾备高可用架构的部署流程。
为此,根据本公开的一方面,提出一种数据库异地灾备系统的部署方法,该方法包括:
响应数据库服务请求,创建用于运行数据库实例的本地虚拟机、异地灾备虚拟机和用于实时监控数据库故障和自动切换仲裁的投票虚拟机;
配置所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机的网络参数以用于所述数据库异地灾备系统的内部数据交换和外部数据访问;
基于所述网络参数,对所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机进行初始化;以及
基于所述网络参数使用所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机创建群集,联接所述群集中的所述本地虚拟机和所述异地灾备虚拟机上运行的数据库实例以生成所述数据库异地灾备系统。
根据本公开的实施例,配置所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机的网络参数以用于所述数据库异地灾备系统的内部数据交换和外部数据访问包括:
通过云管理平台配置所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机的私有网络IP地址以用于所述数据库异地灾备系统的内部数据交换;以及
通过云管理平台配置所述群集的公共网络VIP地址以用于所述数据库异地灾备系统的外部数据访问。
根据本公开的实施例,通过云管理平台设置所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机的私有网络IP地址以用于所述数据库异地灾备系统的内部数据交换包括:
通过云管理平台基于固定资源序列号和私有网络所在逻辑域为所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机申请并绑定对应的私有网络IP地址;以及
向所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机输出所述私有网络IP地址以进行初始化。
根据本公开的实施例,所述本地虚拟机包括主虚拟机,通过云管理平台设置所述群集的公共网络VIP地址以用于所述数据库异地灾备系统的外部数据访问包括:
通过云管理平台基于所述主虚拟机的固定资源序列号和公共网络逻辑域申请第一公共网络VIP地址和第二公共网络VIP地址;
为所述主虚拟机绑定第一公共网络VIP地址;以及
将所述第一公共网络VIP地址和所述第二公共网络VIP地址作为虚拟机元数据输出以用于创建群集。
根据本公开的实施例,响应数据库服务请求,创建用于运行数据库实例的本地虚拟机、异地灾备虚拟机和用于实时监控数据库故障和自动切换仲裁的投票虚拟机包括:
通过云管理平台创建并命名所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机;以及
通过云管理平台为所述本地虚拟机和所述异地灾备虚拟机创建并挂载对应的存储卷。
根据本公开的实施例,基于所述网络参数,对所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机进行初始化包括:
获取与所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机对应的私有网络IP地址以更改虚拟机自身的IP地址;
通过源数据地址获取并更改所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机的主机名称;
对所述本地虚拟机和所述异地灾备虚拟机进行存储卷初始化;
配置所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机的网络接口;以及
重新启动所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机并在所述本地虚拟机和所述异地灾备虚拟机上运行数据库实例。
根据本公开的实施例,通过串口监听并获取与所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机对应的私有网络IP地址。
根据本公开的实施例,基于所述网络参数使用所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机创建群集包括:
入活动目录域并重新启动所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机;以及
接收虚拟机元数据以获取第一公共网络VIP地址和第二公共网络VIP地址;
基于所述第一公共网络VIP地址配置所述群集以用于所述数据库异地灾备系统的外部数据访问;以及
基于所述第二公共网络VIP地址配置所述群集的心跳机制。
根据本公开的实施例,基于所述网络参数使用所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机创建群集还包括:
当创建群集完成时,发送结果到所述源数据地址。
根据本公开的实施例,在响应数据库服务请求,创建用于运行数据库实例的本地虚拟机、异地灾备虚拟机和用于检测数据库故障和自动切换仲裁的投票虚拟机之前,还包括:
验证数据库服务请求。
根据本公开的实施例,当所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机创建失败或初始化失败时,回滚虚拟机和对应的存储卷。
根据本公开的实施例,所述本地虚拟机和所述异地灾备虚拟机的存储卷为云存储卷。
根据本公开的实施例,所述云存储卷基于分布式云存储Ceph。
根据本公开的又一方面,提供一种用于部署数据库异地灾备系统的装置,该装置包括:
虚拟机创建模块,设置为响应数据库服务请求,创建用于运行数据库实例的本地虚拟机、异地灾备虚拟机和用于实时监控数据库故障和自动切换仲裁的投票虚拟机;
配置模块,设置为配置所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机的网络参数以用于所述数据库异地灾备系统的内部数据交换和外部数据访问;
初始化模块,设置为基于所述网络参数,对所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机进行初始化;以及
群集创建模块,设置为基于所述网络参数使用所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机创建群集以生成所述数据库异地灾备系统。
根据本公开的实施例,所述配置模块设置为通过云管理平台配置所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机的私有网络IP地址以用于所述数据库异地灾备系统的内部数据交换;以及通过云管理平台配置所述群集的公共网络VIP地址以用于所述数据库异地灾备系统的外部数据访问。
根据本公开的实施例,所述配置模块设置为通过云管理平台基于固定资源序列号和私有网络所在逻辑域为所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机申请并绑定对应的私有网络IP地址;以及向所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机输出所述私有网络IP地址以进行初始化。
根据本公开的实施例,所述配置模块设置为通过云管理平台基于所述主虚拟机的固定资源序列号和公共网络逻辑域申请第一公共网络VIP地址和第二公共网络VIP地址;为所述主虚拟机绑定第一公共网络VIP地址;以及将所述第一公共网络VIP地址和所述第二公共网络VIP地址作为虚拟机元数据输出以用于创建群集。
根据本公开的实施例,所述虚拟机创建模块设置为通过云管理平台创建并命名所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机;以及通过云管理平台为所述本地虚拟机和所述异地灾备虚拟机创建并挂载对应的存储卷。
根据本公开的实施例,所述初始化模块设置为获取与所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机对应的私有网络IP地址以更改虚拟机自身的IP地址;通过源数据地址获取并更改所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机的主机名称;对所述本地虚拟机和所述异地灾备虚拟机进行存储卷初始化;配置所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机的网络接口;以及重新启动所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机并在所述本地虚拟机和所述异地灾备虚拟机上运行数据库实例。
根据本公开的实施例,所述初始化模块设置为通过串口监听并获取与所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机对应的私有网络IP地址。
根据本公开的实施例,所述群集创建模块设置为入活动目录域并重新启动所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机;以及接收虚拟机元数据以获取第一公共网络VIP地址和第二公共网络VIP地址;基于所述第一公共网络VIP地址配置所述群集以用于所述数据库异地灾备系统的外部数据访问;以及基于所述第二公共网络VIP地址配置所述群集的心跳机制。
根据本公开的实施例,所述群集创建模块设置为当创建群集完成时,发送结果到所述源数据地址。
根据本公开的实施例,所述装置还包括:
验证模块,设置为在响应数据库服务请求,创建用于运行数据库实例的本地虚拟机、异地灾备虚拟机和用于检测数据库故障和自动切换仲裁的投票虚拟机之前,验证数据库服务请求。
根据本公开的实施例,所述装置还包括:
故障模块,设置为当所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机创建失败或初始化失败时,回滚虚拟机和对应的存储卷。
根据本公开的实施例,所述本地虚拟机和所述异地灾备虚拟机的存储卷为云存储卷。
根据本公开的实施例,所述云存储卷基于分布式云存储Ceph。
根据本公开的另一方面,提供一种数据库异地灾备系统,该数据库异地灾备系统包括虚拟机群集,该虚拟机群集包括:
本地虚拟机,设置为运行数据库实例;
异地灾备虚拟机,设置为运行数据库实例;以及
投票虚拟机,设置为实时监控数据库故障并对自动切换进行仲裁,
其中所述本地虚拟机包括主虚拟机,所述主虚拟机提供数据库服务,所述异地灾备虚拟机作为所述主虚拟机的镜像。
根据本公开的实施例,所述本地虚拟机包括所述主虚拟机和本地备用虚拟机,所述本地备用虚拟机作为所述主虚拟机的镜像。
根据本公开的实施例,所述本地虚拟机和所述异地灾备虚拟机挂载对应的存储卷。
根据本公开的实施例,所述投票虚拟机还设置为当所述主虚拟机故障时进行仲裁并且从作为所述主虚拟机的镜像的本地虚拟机和异地灾备虚拟机中选择新的主虚拟机。
根据本公开的实施例,通过云管理平台创建所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机。
根据本公开的实施例,所述存储卷为云存储卷。
根据本公开的实施例,所述云存储卷基于分布式云存储Ceph。
根据本公开的实施例,所述本地虚拟机与所述主虚拟机进行数据实时同步。
根据本公开的实施例,所述异地灾备虚拟机与所述主虚拟机进行数据异步同步。
根据本公开的又一方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序包括可执行指令,当该可执行指令被处理器执行时,实施如上所述的部署方法。
根据本公开的再一方面,提出一种电子设备,该电子设备包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器设置为执行所述可执行指令以实施如上所述的部署方法。
本公开实施例所提出的数据库异地灾备系统及其部署方法,在用户提交申请并审批通过后,后台程序通过云管理平台自动生成一整套数据库异地灾备高可用架构,无需人工干预,显著提升数据库资源交付效率,简化了异地灾备高可用架构的部署流程。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
通过参照附图详细描述其示例性实施例,本公开的上述和其它特征及优点将变得更加明显。
图1示例性示出根据本公开实施例的数据库异地灾备系统框图。
图2示例性示出根据本公开实施例的数据库异地灾备系统的部署方法的流程图;
图3示例性示出根据本公开实施例的数据库异地灾备系统的部署方法中配置网络参数的流程图;
图4示例性示出根据本公开实施例的数据库异地灾备系统的部署方法中配置私有网络IP地址的流程图;
图5示例性示出根据本公开实施例的数据库异地灾备系统的部署方法中配置公共网络VIP地址的流程图;
图6示例性示出根据本公开实施例的数据库异地灾备系统的部署方法中创建虚拟机的流程图;
图7示例性示出根据本公开实施例的数据库异地灾备系统的部署方法中对虚拟机进行初始化的流程图;
图8示例性示出根据本公开实施例的数据库异地灾备系统的部署方法中创建群集的流程图;
图9示例性示出根据本公开实施例的数据库异地灾备系统的部署方法中创建群集的流程图;
图10示例性示出根据本公开又一实施例的数据库异地灾备系统的部署方法的流程图;
图11示例性示出根据本公开另一实施例的数据库异地灾备系统的部署方法的流程图;
图12示例性示出根据本公开一个实施例的用于部署数据库异地灾备系统的装置的结构框图;
图13示例性示出根据本公开又一实施例的用于部署数据库异地灾备系统的装置的结构框图;
图14示例性示出根据本公开又一实施例的用于部署数据库异地灾备系统的装置的结构框图;
图15示例性示出根据本公开另一实施例的通过云管理平台部署的数据库异地灾备系统框图;以及
图16示例性示出用于实施根据本公开实施例的数据库异地灾备系统的部署方法的电子设备。
具体实施方式
现在将参考附图更全面地描述示例性实施例。然而,示例性实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本公开将全面和完整,并将示例性实施例的构思全面地传达给本领域的技术人员。在图中,为了清晰,可能会夸大部分元件的尺寸或加以变形。在图中相同的附图标记表示相同或类似的结构,因而将省略它们的详细描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有所述特定细节中的一个或更多,或者可以采用其它的方法、元件等。在其它情况下,不详细示出或描述公知结构、方法或者操作以避免模糊本公开的各方面。
参见图1,示出根据本公开实施例的数据库异地灾备系统。
本公开的部分实施例以具有5个虚拟的Windows Server母机的Windows Server故障转移群集(Windows Server Failover Cluster,WSFC)为例详细描述数据库异地灾备系统及其部署方法。本领域技术人员应当了解,该例子仅是示例性的,并不意味着对本公开保护范围的限制。5台虚拟机分别命名为VM-1,VM-2,VM-3,VM-4,和VM-5。在空间位置上,VM-1、VM-2和VM-5在本地,VM-3和VM-4在异地。
其中,虚拟机VM-1,VM-2,VM-3,VM-4作为4个节点分别安装有SQL Server数据库实例,安装数据库服务,可以承担实际业务负载,且其角色对等可以互换。故障转移群集实际上将SQL Server数据库实例安装并运行在VM-1至VM-4中的每一个虚拟机上,但是在同一时间只有一个虚拟机作为主(primary)节点运行以提供数据库服务。本地虚拟机包括作为主节点的主虚拟机和本地备用虚拟机。本地备用虚拟机和异地灾备虚拟机(备用节点)均作为主虚拟机的镜像。在本例中,本地虚拟机中的VM-1作为主虚拟机(主节点)。
第五个虚拟机VM-5作为投票服务器,不承担业务负载,仅用于实时故障监控及自动切换的仲裁功能。5个虚拟机之间通过网络通讯实时进行状态监控。故障转移群集通过VM-5采用心跳机制实时监控所有本地虚拟机VM-1和VM-2以及异地灾备虚拟机VM-3和VM-4的状态。当主虚拟机VM-1故障时投票虚拟机VM-5进行仲裁并且从作为镜像的本地虚拟机VM-2和异地灾备虚拟机VM-3和VM-4中选择下一节点(例如虚拟机VM-2)作为新的主虚拟机。该新的主虚拟机立即运行SQL Server实例以运行数据库服务,并且群集将连接到旧的主虚拟机上的全部请求转移到新的主虚拟机VM-2,从而保证数据库业务的连续性。
虚拟机的数量也可以有其它设置。对于数据库异地灾备群集来说,在本地需要至少一个虚拟机以提供数据库服务,还可以提供其它的虚拟机作为本地备用服务器。在异地需要至少一个虚拟机进行灾备。作为投票服务器的投票虚拟机VM-5在本例中位于本地。
Always On作为SQL Server的一个功能,提供更全面的高可用性和灾备解决方案。不同于传统的故障转移集群根据本公开的实施例的高可用性数据库异地灾备方案的主虚拟机及其所运行的数据库服务以及从虚拟机(本地虚拟机和异地灾备虚拟机及其所安装的数据库服务)可以部署到不同地理位置,同时支持一对多的镜像,生成的数据库服务和数据辅助副本不仅用于高可用性,还可以进行只读访问和数据库备份。
数据库故障转移的过程对于数据库应用来说是透明的,应用程序只需在群集的数据库连接设置中使用可用性组的可用性组侦听器(虚拟网络名称和虚拟IP地址)作为SQLServer服务器的地址。在数据库切换完成之后,这个虚拟地址将会被自动重定向到新的作为主节点的虚拟机的物理地址上。Always 0n可用性组侦听器(相当于具有虚拟网络名称和虚拟IP地址的虚拟计算机)可使用户通过对其的访问实现数据读写。虚拟机VM-1,VM-2,VM-3,VM-4分别挂载存储卷Vol-1,Vol-2,Vol-3和Vol-4,用于存放数据库数据文件。
不同于传统的故障转移集群需要共享磁盘,根据本公开实施例的高可用性数据库异地灾备系统的Always 0n可用性组不使用共享磁盘,每个节点具有自己独立的SQLServer实例(数据库服务),访问的是虚拟机的本地磁盘或者将网络磁盘作为本地独占的磁盘。
在故障转移时,传统的SQL Server群集是实例级的故障转移,备用节点需要启动SQL Server实例并读取共享磁盘,因此较慢。而根据本公开实施例的Always 0n SQLServer群集是数据库级别的故障转移,各节点的SQL Server服务在转移前已经安装并运行,其数据库数据已经进行过同步。
在运行时,作为主节点的主虚拟机VM-1与作为备用节点的本地虚拟机VM-2、异地灾备虚拟机VM-3、VM-4和作为投票服务器的投票虚拟机VM-5三者之间基于心跳机制实时监控对方的状态。在数据库的数据层面,本地的主虚拟机VM-1与本地虚拟机VM-2之间进行数据的实时同步,而主虚拟机VM-1与位于异地的异地灾备虚拟机VM-3和VM-4之间进行数据的异步同步。
在图1所示的示例性实施例中,使用数据库的类型和版本为SQL Server 2016,但是本公开可选择的范围并不限于该特定的数据类型和版本,任何可以用于数据库的异地灾备系统的数据库类型和版本都在本公开的可选范围内。例如,除了Microsoft的SQLServer,可以选择开源的My SQL Server等。而对于数据库版本,以SQL Server为例,也不仅限于2016版本,可用于构建数据库异地灾备系统的其它版本也是可以的,例如在SQLServer 2015版本上构建异地灾备系统等。
图2示出根据本公开实施例的数据库异地灾备系统的部署方法。该方法主要包括如下步骤:
S100:响应数据库服务请求,创建用于运行数据库实例的本地虚拟机、异地灾备虚拟机和用于实时监控数据库故障和自动切换仲裁的投票虚拟机;
S200:配置本地虚拟机、异地灾备虚拟机和投票虚拟机的网络参数以用于所述数据库异地灾备系统的内部数据交换和外部数据访问;
S300:基于网络参数,对本地虚拟机、投票虚拟机和异地灾备虚拟机进行初始化;以及
S400:基于所述网络参数使用本地虚拟机、异地灾备虚拟机和投票虚拟机创建群集,联接所述群集中的所述本地虚拟机和所述异地灾备虚拟机上运行的数据库实例以生成所述数据库异地灾备系统。
其中,参见附图6,步骤S100包括:
S110:通过云管理平台创建并命名本地虚拟机、异地灾备虚拟机和投票虚拟机;以及
S120:通过云管理平台为本地虚拟机和异地灾备虚拟机创建并挂载对应的存储卷。
在步骤S110中,分别创建虚拟机VM-1至VM-5。
在本地机房中,创建本地虚拟机VM-1并命名为xx-1,其中虚拟机的命名规则为:’机房’+’MSSQL’+’6位序列号-1’。在虚拟机接口上创建该本地虚拟机VM-1后,由本地虚拟机VM-1创建与VM-1对应的存储卷Vol-1并将该存储卷Vol-1的参数挂载到虚拟机接口上。然后,创建位于不同机架的本地虚拟机VM-2并以与VM-1的命名规则类似的方式命名VM-2为xx-2,即’机房’+’MSSQL’+’6位序列号-2’,其中名称的前缀(’机房’+’MSSQL’+’6位序列号’部分)和VM-1的前缀一致。在虚拟机接口上创建VM-2后,由本地虚拟机VM-2创建对应的存储卷Vol-2并将存储卷Vol-2的参数挂载到虚拟机接口上。VM-2和VM-1挂载的存储卷位于不同的存储位置。
对于投票服务器,在本地机房创建不同机架上的虚拟机VM-5并命名为xx-5,即’机房’+’MSSQL’+’6位序列号-5’。与VM-1的命名类似,VM-5和VM-2的前缀都与VM-1一致。由于虚拟机VM-5仅作为投票服务器,并不提供数据库服务,因此不需要挂载存储卷并使用最低配置。
在异地的灾备机房,创建异地灾备虚拟机VM-3并命名为xx-3,即’机房’+’MSSQL’+’6位序列号-3’。由异地灾备虚拟机VM-3创建对应的存储卷Vol-3并将存储卷Vol-3的参数挂载到虚拟机接口上。类似地,创建异地灾备虚拟机VM-4并命名为xx-4,即’机房’+’MSSQL’+’6位序列号-4’。由异地灾备虚拟机VM-4创建对应的存储卷Vol-4并将存储卷Vol4的参数挂载到虚拟机接口上。
当所有的虚拟机状态从创建中(Pending)变成创建完成运行中(Running)时,进行下一步骤S200和S300。
步骤S200和S300分别配置虚拟机的网络参数以用于所述数据库异地灾备系统的内部数据交换和外部数据访问以及基于网络参数对本地虚拟机、投票虚拟机和异地灾备虚拟机进行初始化。其中对虚拟机进行初始化可以滞后于步骤S200中的网络参数配置,也可以与其同时进行并等待网络参数配置完成后自动获取网络参数继续完成虚拟机的初始化。
在图3中,配置本地虚拟机、异地灾备虚拟机和投票虚拟机的网络参数以用于所述数据库异地灾备系统的内部数据交换和外部数据访问包括:
S210:配置本地虚拟机、异地灾备虚拟机和投票虚拟机的私有网络IP地址以用于所述数据库异地灾备系统的内部数据交换;以及
S220:配置群集的公共网络VIP地址以用于所述数据库异地灾备系统的外部数据访问。
参见图4,通过云管理平台配置所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机的私有网络IP地址以用于所述数据库异地灾备系统的内部数据交换包括:
S211:通过云管理平台基于固定资源序列号和私有网络所在逻辑域为本地虚拟机、异地灾备虚拟机和投票虚拟机申请并绑定对应的私有网络IP地址;以及
S212:向本地虚拟机、投票虚拟机和异地灾备虚拟机输出私有网络IP地址以进行初始化。
在步骤S211中,在获取到固定资源和私有网络所在逻辑域后,通过云管理平台itcloud使用基础云接口分别为虚拟机xx-1、xx-2、xx-3、xx-4和xx-5分别申请各自的私有网络IP地址并将各虚拟机与对应的私有网络IP1至IP5地址绑定,即xx-1绑定私有网络IP1,xx-2绑定私有网络IP2,xx-3绑定私有网络IP3,xx-4绑定私有网络IP4,以及xx-5绑定私有网络IP5。固定资源由固定资源序列号表征,在本例中共有5个,分别对应于虚拟机VM-1至VM-5。其中,私有网络所在的逻辑域是固定的。
在步骤S212中,将本地虚拟机、投票虚拟机和异地灾备虚拟机绑定的私有网络IP分别输出到各个对应的虚拟机,以供这些虚拟机的初始化使用。
在本地虚拟机VM-1、VM-2和异地灾备虚拟机VM-3、VM-4完成私有IP地址设置后,各个虚拟机将在虚拟机初始化后等待虚拟机上挂载的存储卷的初始化。
图5示出在完成私有网络IP配置后,继续进行数据库异地灾备系统的公共网络VIP地址的配置以用于所述数据库异地灾备系统的外部数据访问,包括:
S221:通过云管理平台基于主虚拟机的固定资源序列号和公共网络逻辑域申请第一公共网络VIP地址地第二公共网络VIP地址;
S222:为主虚拟机绑定第一公共网络VIP地址;以及
S223:将第一公共网络VIP地址和第二公共网络VIP地址作为虚拟机元数据输出以用于创建群集。
在步骤S221中,云管理平台itcloud调用基础云接口根据主虚拟机xx-1的固定资源号和公共网络逻辑域申请2个公共网络VIP地址,即第一公共网络VIP地址VIP1和第二公共网络VIP地址是VIP2。在步骤S222,一个公共网络VIP地址绑定到该主虚拟机xx-1。VIP称为虚拟IP,其在不同虚拟机上漂移。VIP属于公共网络IP,称为“虚拟”的含义在于其并不固定于某个特定的虚拟机,而是作为从外部访问和监控虚拟机群集的公共网络地址。例如,第一公共网络VIP在当前时刻与当前的主虚拟机绑定,第二公共网络VIP则作为心跳地址以便于监控群集并提供虚拟机元数据。
在数据库异地灾备系统,特别是数据库异地灾备高可用性架构系统中,VIP1一般分配给主虚拟机xx-1。与VIP1作为主虚拟机地址以便访问数据库不同,第二公共网络VIP地址VIP2作为虚拟机群集的心跳地址,向虚拟机群集提供虚拟机元数据。在本例中,VIP2向5个虚拟机xx-1至xx-5提供虚拟机元数据。
如图7所示,并列地,基于如上所配置的网络参数,对本地虚拟机、投票虚拟机和异地灾备虚拟机进行初始化,包括:
S310:获取与本地虚拟机、异地灾备虚拟机和投票虚拟机对应的私有网络IP地址以更改虚拟机自身的IP地址;
S320:通过源数据地址获取并更改本地虚拟机、投票虚拟机和异地灾备虚拟机的主机名称;
S330:对本地虚拟机和异地灾备虚拟机进行存储卷初始化;
S340:配置本地虚拟机、异地灾备虚拟机和投票虚拟机的网络接口;以及
S350:重新启动本地虚拟机、异地灾备虚拟机和投票虚拟机。
在虚拟机内部,当虚拟机的状态由Pending变为Running后,本地虚拟机、异地灾备虚拟机和投票虚拟机中的每个虚拟机自动获取与该虚拟机对应的私有网络IP地址,并基于该私有网络IP地址更改自身的IP地址。虚拟机可以通过多种方式自动获取对应的私有网络IP地址,例如通过串口监听来自步骤S212的私有网络IP地址。
每个虚拟机通过地址169.254.169.254自动获取对应的主机名并修改自身的主机名。其中,地址169.254.169.254具有虚拟机的源数据地址属性,通过该地址可以获取虚拟机对应的主机名、公共网络虚拟IP地址、以及用于虚拟机群集监控的心跳信息等。
对于本地虚拟机xx-1、xx-2和异地灾备虚拟机xx-3、xx-4,进行虚拟机的存储卷挂载初始化。在本例中,默认使用D盘符作为各虚拟机存储卷的卷标;
对于投票虚拟机xx-5,可跳过存储卷初始化程序。
接下来,配置本地虚拟机、异地灾备虚拟机和投票虚拟机的网络接口。配置网络接口包括但不限于设定每个虚拟机的网络界面卡(网卡)的参数。特别对于第二块网卡,需要等待其热插拔而不进行DNS注册,其原因在于DNS注册会导致第二块网卡出现问题,而在其他网络应用中第二网卡也需要进行DNS注册。
在上述步骤均完成后,代表对虚拟机的IP、主机名、存储卷和网络(网卡)的初始化配置完成,则可以调用InitVolume脚本分别重启各个虚拟机。
图8示出在完成本地虚拟机、投票虚拟机和异地灾备虚拟机的初始化后,基于所述网络参数使用本地虚拟机、异地灾备虚拟机和投票虚拟机创建群集的过程,包括:
S410:入活动目录(Active Directory,AD)域并重新启动本地虚拟机、投票虚拟机和异地灾备虚拟机;以及
S420:接收虚拟机元数据以获取第一公共网络VIP地址和第二公共网络VIP地址;
S430:基于第一公共网络VIP地址配置群集以用于所述数据库异地灾备系统的外部数据访问;以及
S440:基于第二公共网络VIP地址配置群集的心跳机制。
在创建群集过程中,虚拟机心跳机制必须使用一个公共网络VIP地址,而另一个VIP地址则用于用户从数据库异地灾备系统外部访问虚拟机群集中的主虚拟机。由于在上文步骤S223中将两个公共网络VIP地址VIP1和VIP2作为虚拟机元数据输出,因此通过监听元数据数据地址(169.254.169.254)的数据可以自动获取公共网络VIP地址。
在获取两个公共网络VIP地址后,进行群集(Windows Cluster)配置,由于在上文的步骤S222中将第一公共网络VIP地址绑定到主虚拟机,则在步骤S430中使用第一公共网络VIP地址配置群集作为数据库Always 0n异地灾备高可用性系统的可用性组侦听器地址,提供数据库服务。而在步骤S440中使用另一个公共网络VIP地址VIP2用于心跳机制的虚拟机群集的心跳IP地址。
创建群集的步骤还包括图9所示的步骤S450:发送结果到源数据地址。其中,在上文步骤执行完成后,发送脚本的执行结果200给源数据地址169.254.169.254。当使用云管理平台时,在集群初始化成功后,返回调用云平台接口传入脚本状态值,指示数据库异地灾备系统创建成功,交付使用者。
根据图10所示的根据本公开的实施例的数据库异地灾备系统的部署方法还包括在步骤S100之前,进行步骤S000:验证数据库服务请求。
在用户提出业务申请并获得审批后,数据库异地灾备系统的部署方法根据异地灾备的镜像名称判断是否是SQL Server以确定是否进行SQL Server数据库异地灾备系统的部署流程。当判断结果为进行SQL Server数据库的创建时,再进一步判断镜像名称中是否包含2016字样以判断是否创建SQL Server 2016数据库的异地灾备系统。如果结果为是则进行SQL Server 2016数据库的创建流程。验证数据库的类型和版本后,再判断所述业务申请请求是否为建立数据库的异地灾备系统。如果确定进行异地灾备系统的创建,则进入上文所述的步骤S100,否则进行单机数据库创建步骤。由于单机数据库创建流程并不是本公开的关注内容,在此省略其流程介绍。在上述验证步骤中,当出现验证失败时结束部署。
同样应说明的是,如上所述进行数据库服务请求的验证步骤中,数据库的类型和版本不限于SQL Server以及2016版本,任何可以用于数据库的异地灾备系统的数据库类型和版本都在本公开的可选范围内。例如,除了Microsoft的SQL Server,可以选择开源的MySQL Server等。而对于数据库版本,以SQL Server为例,也不仅限于2016版本,可用于构建数据库异地灾备系统的其它版本也是可以的,例如在SQL Server2015版本上构建异地灾备系统等。
在数据库异地灾备系统的部署过程中,还可以建立错误处理机制,参见图11所示的流程。在部署过程中,在任何过程出现异常导致创建失败,例如包括在步骤S100中当本地虚拟机、异地灾备虚拟机和投票虚拟机创建失败或在步骤S300中对虚拟机进行初始化失败时,例如虚拟机不存在主机名或没有挂载存储卷,都可使用日志记录详细的错误日志,回滚虚拟机和对应的存储卷,如步骤S500所示。
基于本公开实施例的数据库异地灾备系统,主要用于高可用性架构。但是,本领域技术人员可以理解,该部署方法同样可以应用于其它类型的数据库异地灾备系统。
图12示出根据本公开的实施例的用于部署数据库异地灾备系统的装置1000。该装置1000包括:
虚拟机创建模块1200,设置为响应数据库服务请求,创建用于运行数据库实例的本地虚拟机、异地灾备虚拟机和用于实时监控数据库故障和自动切换仲裁的投票虚拟机;
配置模块1300,设置为配置本地虚拟机、异地灾备虚拟机和投票虚拟机的网络参数以用于数据库异地灾备系统的内部数据交换和外部数据访问;
初始化模块1400,设置为基于网络参数,对本地虚拟机、异地灾备虚拟机和投票虚拟机进行初始化;以及
群集创建模块1500,设置为基于网络参数使用本地虚拟机、异地灾备虚拟机和投票虚拟机创建群集以生成数据库异地灾备系统。
在本公开的一些实施例中,配置模块1300设置为通过云管理平台配置本地虚拟机、异地灾备虚拟机和投票虚拟机的私有网络IP地址以用于数据库异地灾备系统的内部数据交换;以及通过云管理平台配置群集的公共网络VIP地址以用于数据库异地灾备系统的外部数据访问。
在本公开的一些实施例中,配置模块1300设置为通过云管理平台基于固定资源序列号和私有网络所在逻辑域为本地虚拟机、异地灾备虚拟机和投票虚拟机申请并绑定对应的私有网络IP地址;以及向本地虚拟机、异地灾备虚拟机和投票虚拟机输出私有网络IP地址以进行初始化。
在本公开的实施例中,配置模块1300设置为通过云管理平台基于主虚拟机的固定资源序列号和公共网络逻辑域申请第一公共网络VIP地址和第二公共网络VIP地址;为主虚拟机绑定第一公共网络VIP地址;以及将第一公共网络VIP地址和第二公共网络VIP地址作为虚拟机元数据输出以用于创建群集。
在本公开的一些实施例中,虚拟机创建模块1200设置为通过云管理平台创建并命名本地虚拟机、异地灾备虚拟机和投票虚拟机;以及通过云管理平台为本地虚拟机和异地灾备虚拟机创建并挂载对应的存储卷。
在本公开的一些实施例中,初始化模块1400设置为获取与本地虚拟机、异地灾备虚拟机和投票虚拟机对应的私有网络IP地址以更改虚拟机自身的IP地址;通过源数据地址获取并更改本地虚拟机、异地灾备虚拟机和投票虚拟机的主机名称;对本地虚拟机和异地灾备虚拟机进行存储卷初始化;配置本地虚拟机、异地灾备虚拟机和投票虚拟机的网络接口;以及重新启动本地虚拟机、异地灾备虚拟机和投票虚拟机并在本地虚拟机和异地灾备虚拟机上运行数据库实例。
在本公开的一些实施例中,初始化模块1400设置为通过串口监听并获取与本地虚拟机、异地灾备虚拟机和投票虚拟机对应的私有网络IP地址。
在本公开的实施例中,群集创建模块1500设置为入活动目录域并重新启动本地虚拟机、异地灾备虚拟机和投票虚拟机;以及接收虚拟机元数据以获取第一公共网络VIP地址和第二公共网络VIP地址;基于第一公共网络VIP地址配置群集以用于数据库异地灾备系统的外部数据访问;以及基于第二公共网络VIP地址配置群集的心跳机制。
在本公开的某些实施例中,群集创建模块1500设置为当创建群集完成时,发送结果到源数据地址。
参见图13所示的本公开的实施例,所述装置1000还包括:
验证模块1100,设置为在响应数据库服务请求,创建用于运行数据库实例的本地虚拟机、异地灾备虚拟机和用于检测数据库故障和自动切换仲裁的投票虚拟机之前,验证数据库服务请求。
在图14所示的实施例中,装置1000还包括:
故障模块1600,设置为当本地虚拟机、异地灾备虚拟机和投票虚拟机创建失败或初始化失败时,回滚虚拟机和对应的存储卷。
参见图15,示出根据本公开的实施例的数据库异地灾备系统的部署方法创建的基于云平台的数据库异地灾备系统。与图1中所述的数据库异地灾备系统不同的是,本实施例通过如上所述的部署方法,至少通过云管理平台itcloud调用基础云接口创建本地虚拟机、异地灾备虚拟机和投票虚拟机,以及同样通过云管理平台为本地虚拟机和异地灾备虚拟机创建并挂载对应的存储卷。因此本实施例中的虚拟机创建在云平台上(上云),并且虚拟机所挂载的存储卷也创建在云平台上,即该存储卷为云存储卷。实际上,图15所示的系统实际上是在云平台上搭建的虚拟群集。在空间上,主虚拟机VM-1,本地虚拟机VM-2和投票虚拟机位于本地云上,异地灾备虚拟机VM-3和VM-4位于异地云上。相应地,本地虚拟机VM-1和VM-2的云存储卷位于本地云上,异地灾备虚拟机的云存储卷位于异地云上。
云存储卷的底层存储技术基于分布式云存储。根据需求,本领域技术人员可以选择高可用高性能、去中心化、可弹性扩展的开源分布式云存储技术Ceph作为分布式云存储,也可以选择其它分布式云存储技术。
通过使用云管理平台,将上述数据库异地灾备系统中的一部分,例如本地虚拟机、投票虚拟机和异地灾备虚拟机中的至少一个,在云平台上进行创建并在云平台上运行。通过将虚拟机和存储卷部署在云平台,作为企业云平台的高级服务,可以显著提高部署效率并降低成本。
采用如上所述的根据本公开的实施例的数据库异地灾备系统的部署方法,用户在提交业务请求创建数据库异地灾备系统后,本公开实施例的部署方法可以自动完成数据库系统的部署工作。用户只需要等待自动流程完成后,继续对该数据库系统进行设置和使用。用户不需要到异地的灾备机房申请设备,手动配置服务器和数据库,仅需要在本地提交请求。另外,根据本公开的实施例使用云管理平台配置该数据库,更可以进一步简化部署,而且不需要再单独申请物理设备,充分利用现有的云平台的物理机的运算和存储资源,提高系统利用率。
由于数据库异地灾备系统交付用户时已经自动运行数据库实例,在用户看来,在该数据库系统上进行操作将和在本地数据库上或与现有的基于物理机的异地灾备数据库的使用体验没有实质区别。
用户可以设置数据库实例中用于存储数据的数据库数据结构,并设置数据库应用的参数。例如,用户可以使用基于对象存储(0bject-based Storage Device,OSD)的网络存储架构的数据库结构。
数据库系统中的虚拟机群集将第一公共网络VIP地址作为用户访问数据库实例的地址,用户不需要知道当前所访问的数据库实例和存储卷位于虚拟机群集中的哪个虚拟机上。实际上,第一公共网络VIP地址指向为用户提供数据库服务的主虚拟机。同时,主虚拟机与本地备用虚拟机之间进行数据实时同步,与异地灾备虚拟机之间进行数据异步同步。
在当前主虚拟机出现故障时,投票虚拟机实时监控到该故障并通过仲裁选择主虚拟机上的数据库实例自动切换到作为镜像的其它虚拟机中的哪个虚拟机上。切换完成后,第一公共网络VIP地址被指向新的主虚拟机,所有对数据库系统的访问都定向到新的主虚拟机的数据库实例和其存储卷。对于用户来说,他将感觉不到提供数据库服务的虚拟机群集中的虚拟机发生了切换,达到高可用的目的,提高了用户的使用体验。
采用本公开实施例所提出的数据库异地灾备系统的部署方法和由此部署的数据库异地灾备系统,在用户提交申请并审批通过后,后台程序自动生成一整套数据库异地灾备高可用架构,无需人工干预,显著提升数据库资源交付效率,很好解决异地高可用部署复杂、资源交付慢的问题。例如在未入云之前申请物理机要5天以上,而现在利用云平台现有的物理机资源,不再需要单独为数据库异地灾备系统申请专用的物理机,交付数据库资源提升到只需要0.5天。该部署方法还使数据库异地灾备系统的高可用部署自动化,节省人力成本。例如,在之前人工部署异地灾备高可用性架构系统需要至少两天,而现在只需要0.5天就可以自动化部署创建SQL Server 2016异地灾备的高可用架构系统。此外,使用本公开实施例的部署方法使得物理机能够支撑的业务更多,存储等资源利用率更高,特别是使SQLServer 2016入云后,利用率得到进一步提升。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序包括可执行指令,该可执行指令被例如处理器执行时可以实现上述任意一个实施例中所述用于数据库异地灾备系统的部署方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书用于数据库异地灾备系统的部署方法中描述的根据本发明各种示例性实施例的步骤。
根据本发明的实施例的用于实现上述方法的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、C++等,还包括常规的过程式程序设计语言-诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
在本公开的示例性实施例中,还提供一种电子设备,该电子设备可以包括处理器,以及用于存储所述处理器的可执行指令的存储器。其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一个实施例中的用于数据库异地灾备系统的部署方法的步骤。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图16来描述根据本发明的这种实施方式的电子设备600。图16显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图16所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630、显示单元640等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书用于数据库异地灾备系统的部署方法中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元610可以执行如图2至图11中的任一个方法所示的步骤。
所述存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
所述存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/0)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来。
Claims (15)
1.一种数据库异地灾备系统的部署方法,其特征在于,该方法包括:
响应数据库服务请求,创建用于运行数据库实例的本地虚拟机、异地灾备虚拟机和用于实时监控数据库故障和自动切换仲裁的投票虚拟机;
配置所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机的网络参数以用于所述数据库异地灾备系统的内部数据交换和外部数据访问;
基于所述网络参数,对所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机进行初始化;以及
基于所述网络参数使用所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机创建群集以生成所述数据库异地灾备系统。
2.根据权利要求1所述的部署方法,其特征在于,配置所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机的网络参数以用于所述数据库异地灾备系统的内部数据交换和外部数据访问包括:
通过云管理平台配置所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机的私有网络IP地址以用于所述数据库异地灾备系统的内部数据交换;以及
通过云管理平台配置所述群集的公共网络VIP地址以用于所述数据库异地灾备系统的外部数据访问。
3.根据权利要求2所述的部署方法,其特征在于,通过云管理平台配置所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机的私有网络IP地址以用于所述数据库异地灾备系统的内部数据交换包括:
通过云管理平台基于固定资源序列号和私有网络所在逻辑域为所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机申请并绑定对应的私有网络IP地址;以及
向所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机输出所述私有网络IP地址以进行初始化。
4.根据权利要求2所述的部署方法,其特征在于,所述本地虚拟机包括主虚拟机,通过云管理平台配置所述群集的公共网络VIP地址以用于所述数据库异地灾备系统的外部数据访问包括:
通过云管理平台基于所述主虚拟机的固定资源序列号和公共网络逻辑域申请第一公共网络VIP地址和第二公共网络VIP地址;
为所述主虚拟机绑定第一公共网络VIP地址;以及
将所述第一公共网络VIP地址和所述第二公共网络VIP地址作为虚拟机元数据输出以用于创建群集。
5.根据权利要求1所述的部署方法,其特征在于,响应数据库服务请求,创建用于运行数据库实例的本地虚拟机、异地灾备虚拟机和用于实时监控数据库故障和自动切换仲裁的投票虚拟机包括:
通过云管理平台创建并命名所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机;以及
通过云管理平台为所述本地虚拟机和所述异地灾备虚拟机创建并挂载对应的存储卷。
6.根据权利要求1所述的部署方法,其特征在于,基于所述网络参数,对所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机进行初始化包括:
获取与所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机对应的私有网络IP地址以更改虚拟机自身的IP地址;
通过源数据地址获取并更改所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机的主机名称;
对所述本地虚拟机和所述异地灾备虚拟机进行存储卷初始化;
配置所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机的网络接口;以及
重新启动所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机并在所述本地虚拟机和所述异地灾备虚拟机上运行数据库实例。
7.根据权利要求6所述的部署方法,其特征在于,通过串口监听并获取与所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机对应的私有网络IP地址。
8.根据权利要求6所述的部署方法,其特征在于,基于所述网络参数使用所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机创建群集包括:
入活动目录域并重新启动所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机;
接收虚拟机元数据以获取第一公共网络VIP地址和第二公共网络VIP地址;
基于所述第一公共网络VIP地址配置所述群集以用于所述数据库异地灾备系统的外部数据访问;以及
基于所述第二公共网络VIP地址配置所述群集的心跳机制。
9.根据权利要求8所述的部署方法,其特征在于,基于所述网络参数使用所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机创建群集还包括:
当创建群集完成时,发送结果到所述源数据地址。
10.根据权利要求1所述的部署方法,其特征在于,当所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机创建失败或初始化失败时,回滚虚拟机和对应的存储卷。
11.根据权利要求1至10中任一项所述的部署方法,其特征在于,所述本地虚拟机和所述异地灾备虚拟机的存储卷为云存储卷。
12.一种用于部署数据库异地灾备系统的装置,其特征在于,该装置包括:
虚拟机创建模块,设置为响应数据库服务请求,创建用于运行数据库实例的本地虚拟机、异地灾备虚拟机和用于实时监控数据库故障和自动切换仲裁的投票虚拟机;
配置模块,设置为配置所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机的网络参数以用于所述数据库异地灾备系统的内部数据交换和外部数据访问;
初始化模块,设置为基于所述网络参数,对所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机进行初始化;以及
群集创建模块,设置为基于所述网络参数使用所述本地虚拟机、所述异地灾备虚拟机和所述投票虚拟机创建群集以生成所述数据库异地灾备系统。
13.一种数据库异地灾备系统,其特征在于,该数据库异地灾备系统包括虚拟机群集,该虚拟机群集包括:
本地虚拟机,设置为运行数据库实例;
异地灾备虚拟机,设置为运行数据库实例;以及
投票虚拟机,设置为实时监控数据库故障并对自动切换进行仲裁,
其中所述本地虚拟机包括主虚拟机,所述主虚拟机提供数据库服务,所述异地灾备虚拟机作为所述主虚拟机的镜像。
14.一种计算机可读存储介质,其上存储有计算机程序,该计算机程序包括可执行指令,当该可执行指令被处理器执行时,实施如权利要求1至11中任一项所述的部署方法。
15.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器设置为执行所述可执行指令以实施如权利要求1至11中任一项所述的部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711386768.7A CN109947591B (zh) | 2017-12-20 | 2017-12-20 | 数据库异地灾备系统及其部署方法、部署装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711386768.7A CN109947591B (zh) | 2017-12-20 | 2017-12-20 | 数据库异地灾备系统及其部署方法、部署装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109947591A CN109947591A (zh) | 2019-06-28 |
CN109947591B true CN109947591B (zh) | 2023-03-24 |
Family
ID=67005244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711386768.7A Active CN109947591B (zh) | 2017-12-20 | 2017-12-20 | 数据库异地灾备系统及其部署方法、部署装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109947591B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110677469B (zh) * | 2019-09-23 | 2022-07-15 | 上交所技术有限责任公司 | 一种证券灾备系统及灾备实现方法 |
CN112398962A (zh) * | 2020-10-12 | 2021-02-23 | 联通智网科技有限公司 | 一种存储容灾方法、装置、计算机设备和存储介质 |
CN112667440A (zh) * | 2020-12-28 | 2021-04-16 | 紫光云技术有限公司 | 一种高可用MySQL的异地灾备方法 |
CN113608836A (zh) * | 2021-08-06 | 2021-11-05 | 上海英方软件股份有限公司 | 一种基于集群的虚拟机高可用方法及系统 |
CN114676118B (zh) * | 2022-05-30 | 2022-08-12 | 深圳市科力锐科技有限公司 | 数据库切换方法、装置、设备及存储介质 |
CN115905181A (zh) * | 2022-12-13 | 2023-04-04 | 广东科学技术职业学院 | 一种数据库高可用性架构设计方法、系统及存储介质 |
CN116302711B (zh) * | 2023-05-19 | 2023-10-03 | 山东捷瑞数字科技股份有限公司 | 基于云平台镜像的容灾方法、装置、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9075771B1 (en) * | 2013-03-15 | 2015-07-07 | Symantec Corporation | Techniques for managing disaster recovery sites |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110055299A1 (en) * | 2008-12-18 | 2011-03-03 | Virtual Computer, Inc. | Managing User Data in a Layered Virtual Workspace |
CN103647849B (zh) * | 2013-12-24 | 2017-02-08 | 华为技术有限公司 | 一种业务迁移方法、装置和一种容灾系统 |
CN104503965B (zh) * | 2014-10-16 | 2017-08-29 | 杭州斯凯网络科技有限公司 | PostgreSQL高弹性的高可用及负载均衡实现方法 |
CN104469699B (zh) * | 2014-11-27 | 2018-09-21 | 华为技术有限公司 | 集群仲裁方法和多集群配合系统 |
US20160203014A1 (en) * | 2015-01-08 | 2016-07-14 | International Business Machines Corporaiton | Managing virtual machines using globally unique persistent virtual machine identifiers |
CN105589735B (zh) * | 2015-12-16 | 2020-06-09 | 深信服科技股份有限公司 | 异地容灾方法、装置和系统 |
CN107147511A (zh) * | 2016-03-01 | 2017-09-08 | 深圳市深信服电子科技有限公司 | 数据中心控制方法及装置 |
CN106850315B (zh) * | 2017-03-16 | 2020-11-20 | 苏州浪潮智能科技有限公司 | 一种自动化容灾系统 |
CN107343044A (zh) * | 2017-07-04 | 2017-11-10 | 郑州云海信息技术有限公司 | 一种存储区域网络的控制方法及装置 |
-
2017
- 2017-12-20 CN CN201711386768.7A patent/CN109947591B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9075771B1 (en) * | 2013-03-15 | 2015-07-07 | Symantec Corporation | Techniques for managing disaster recovery sites |
Non-Patent Citations (1)
Title |
---|
从两地三中心到双活数据中心;leebing;《https://blog.51cto.com/leebing/1769519》;51CTO;20160502;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109947591A (zh) | 2019-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109947591B (zh) | 数据库异地灾备系统及其部署方法、部署装置 | |
CN106899518B (zh) | 一种基于互联网数据中心的资源处理方法以及装置 | |
AU2006297144B2 (en) | Application of virtual servers to high availability and disaster recovery solutions | |
CN102110071B (zh) | 一种虚拟机集群系统及其实现方法 | |
US9164795B1 (en) | Secure tunnel infrastructure between hosts in a hybrid network environment | |
CN105052111A (zh) | 跨群集边界的服务迁移 | |
US7499988B2 (en) | Method for SAN-based BOS install volume group | |
CN107666493B (zh) | 一种数据库配置方法及其设备 | |
CN104216793B (zh) | 应用程序备份、恢复的方法及设备 | |
US20130091376A1 (en) | Self-repairing database system | |
US11368407B2 (en) | Failover management using availability groups | |
CN102214128A (zh) | 多用途恢复环境 | |
US9378103B2 (en) | Coordination techniques for redundant array of independent disks storage controllers | |
CN111404628B (zh) | 一种时间同步方法和装置 | |
CN103077034B (zh) | 混合虚拟化平台java应用迁移方法与系统 | |
CN107665141B (zh) | 一种数据库配置方法及其设备 | |
CN105095103A (zh) | 用于云环境下的存储设备管理方法和装置 | |
CN114138754A (zh) | 基于Kubernetes平台的软件部署方法及装置 | |
CN110012111B (zh) | 一种数据服务集群系统及数据处理方法 | |
CN114371914A (zh) | 容器ip地址配置方法、装置、存储介质及电子设备 | |
US11290318B2 (en) | Disaster recovery of cloud resources | |
CN107515725B (zh) | 一种核心网虚拟化系统共享磁盘的方法、装置及网管mano系统 | |
CN108984356A (zh) | 一种it产品测试方法及装置 | |
CN114915545B (zh) | 基于dhcp网络集群的应用调度部署管理方法 | |
CN115277662B (zh) | 代理服务切换测试方法、系统、电子设备及可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230920 Address after: 101, 4th Floor, Building 9, West District, No. 10 Courtyard, Northwest Wangdong Road, Haidian District, Beijing, 100080 Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd. Address before: 518000 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 Floors Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. |
|
TR01 | Transfer of patent right |