CN109753292B - 一种在多单实例数据库服务中部署多个应用的方法及装置 - Google Patents
一种在多单实例数据库服务中部署多个应用的方法及装置 Download PDFInfo
- Publication number
- CN109753292B CN109753292B CN201811580432.9A CN201811580432A CN109753292B CN 109753292 B CN109753292 B CN 109753292B CN 201811580432 A CN201811580432 A CN 201811580432A CN 109753292 B CN109753292 B CN 109753292B
- Authority
- CN
- China
- Prior art keywords
- database
- application
- hot standby
- main
- connection
- 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
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明实施例提供了一种在多单实例数据库服务中部署多个应用的方法及装置,该方法包括:当任一应用访问主服务器中所述应用的第一主数据库发生异常时,断开所述应用与所述第一主数据库的连接,并断开所述第一主数据库与热备服务器中所述应用的第一热备数据库的连接;生成所述应用的数据库访问的切换指令,根据所述切换指令建立所述应用与所述第一热备数据库的连接;当所述应用结束访问所述第一热备数据库时,重新建立所述第一主数据库与所述第一热备数据库的连接,并重新建立所述应用与所述第一主数据库的连接。通过本发明,实现了在多个单实例数据库服务中部署多个应用时,最大地利用系统资源实现数据的高可用性、一致性和完整性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种在多单实例数据库服务中部署多个应用的方法及装置。
背景技术
随着计算机技术的发展,各种应用程序的业务也越来越复杂,从而需要多个数据库服务来支持应用。由于需要考虑到软硬件资源的高可用性和避免资源竞争,大多数企业被迫采用如下两种方式:1、单实例数据库服务独占系统资源;2、通过虚拟机等软件技术来实现将物理资源做隔离后分配给不同数据库实例,来避免系统资源的竞争;但是,在实际应用的场景中,若业务量级不大,第一种方法将经常发生系统资源利用率低的情况;方法二中虽然将系统资源做了隔离,但是,因为一台物理机运行多个实例,需要消耗更多系统资源支持数据库本身运行,所以方法二将导致系统资源浪费。
因此,亟需一种分配数据库系统资源的方法,使得在保证服务高可用性的同时,还能够降低系统资源的浪费。
发明内容
本发明实施例提供一种在多单实例数据库服务中部署多个应用的方法及装置,实现了在多个单实例数据库服务中部署多个应用时,最大地利用系统资源实现数据的高可用性、一致性和完整性。
一方面,本发明实施例提供了一种在多单实例数据库服务中部署多个应用的方法,包括:
当任一应用访问主服务器中所述应用的第一主数据库发生异常时,断开所述应用与所述第一主数据库的连接,并断开所述第一主数据库与热备服务器中所述应用的第一热备数据库的连接;
生成所述应用的数据库访问的切换指令,根据所述切换指令建立所述应用与所述第一热备数据库的连接;
当所述应用结束访问所述第一热备数据库时,重新建立所述第一主数据库与所述第一热备数据库的连接,并重新建立所述应用与所述第一主数据库的连接。
另一方面,本发明实施例提供了一种在多单实例数据库服务中部署多个应用的装置,包括:
断开模块,用于当任一应用访问主服务器中所述应用的第一主数据库发生异常时,断开所述应用与所述第一主数据库的连接,并断开所述第一主数据库与热备服务器中所述应用的第一热备数据库的连接;
生成模块,用于生成所述应用的数据库访问的切换指令,根据所述切换指令建立所述应用与所述第一热备数据库的连接;
建立连接模块,用于当所述应用结束访问所述第一热备数据库时,重新建立所述第一主数据库与所述第一热备数据库的连接,并重新建立所述应用与所述第一主数据库的连接。
上述技术方案具有如下有益效果:通过本实施例,能够及时监控到在主服务器中各个应用的数据访问情况,当发现异常情况时能够及时地根据监控到的异常情况断开对应应用的数据访问,极大地保证了主数据库上其他应用的高可用性;通过将发生数据访问异常的应用的数据访问地址切换至热备服务器中对应应用的热备数据库,并在该应用结束访问该第一热备数据库的数据交互后将最新数据同步至主数据库,实现了在多个单实例数据库服务中部署多个应用时,最大地利用数据库服务器系统资源实现了数据的高可用性、一致性和完整性,极大地降低了系统资源的浪费,进一步地,节约了数据库系统的部署成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种在多单实例数据库服务中部署多个应用的方法流程图;
图2为本发明一实施例中一种在多单实例数据库服务中部署多个应用的装置结构示意图;
图3为本发明一优选实施例中一种在多单实例数据库服务中部署多个应用的数据库系统结构示意图;
图4为本发明一优选实施例中一种在多单实例数据库服务中部署多个应用的数据库系统故障迁移数据访问流程示意图;
图5为本发明一优选实施例中一种在多单实例数据库服务中部署多个应用的数据库系统故障恢复过程中的数据访问流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明实施例中一种在多单实例数据库服务中部署多个应用的方法流程图,包括:
101、当任一应用访问主服务器中所述应用的第一主数据库发生异常时,断开所述应用与所述第一主数据库的连接,并断开所述第一主数据库与热备服务器中所述应用的第一热备数据库的连接;
102、生成所述应用的数据库访问的切换指令,根据所述切换指令建立所述应用与所述第一热备数据库的连接;
103、当所述应用结束访问所述第一热备数据库时,重新建立所述第一主数据库与所述第一热备数据库的连接,并重新建立所述应用与所述第一主数据库的连接。
进一步地,包括:
预创建用于运行各个应用的第一主数据库的主服务器;
预创建至少一个用于运行各个应用的第一热备数据库的热备服务器;
预配置各个应用的第一热备数据库。
进一步地,在所述当任一应用访问主服务器中所述应用的第一主数据库发生异常时,断开所述应用与所述第一主数据库的连接,并断开所述第一主数据库与热备服务器中所述应用的第一热备数据库的连接的步骤之前,包括:
在任一应用与所述应用的第一主数据库的数据交互过程中,监控所述第一主数据库的各个监控参数;
当监控到所述第一主数据库的结构化查询语言SQL语句发生异常时,确定所述应用在访问所述第一主数据库时发生异常;
其中,所述监控参数包括SQL语句、中央处理器使用率、磁盘性能指标、当前活跃线程数量、当前数据库连接数量和数据复制延迟时间中的至少一项;
其中,所述SQL语句发生异常的情况包括SQL语句的执行时间超过预定执行时间阈值、SQL语句执行错误和执行SQL语句得到异常值中的至少一种。
进一步地,所述在任一应用与所述应用的第一主数据库的数据交互过程中,监控所述第一主数据库的各个监控参数,包括:
当监控到至少一个监控参数的数值超过所述至少一个监控参数各自的预定阈值时,确定所述至少一个监控参数中是否包含结构化查询语言SQL语句;
若不包含,根据预定处置策略,生成通知消息。
进一步地,所述当所述应用结束访问所述第一热备数据库时,重新建立所述第一主数据库与所述第一热备数据库的连接,并重新建立所述应用与所述第一主数据库的连接,包括:
监控所述应用与所述第一热备数据库的数据交互;
在预定时间内,监控所述第一热备数据库的任一监控参数是否超出所述任一监控参数的预定阈值;
若未超出,重新建立所述第一主数据库与所述应用的第一热备数据库的第一连接;
基于所述第一连接,将所述第一热备数据库中的数据同步至所述第一主数据库,并通过所述第一主数据库,将所述第一主数据库的数据同步至除所述第一热备数据库外的各个热备数据库;
当完成同步所述第一主数据库的数据后,重新建立所述应用与所述第一主数据库的连接。
可选地,还包括:
监控所述第一主数据库的性能相关参数和所述至少一个热备数据库的性能相关参数;
当监控到任一性能相关参数大于所述性能相关参数的预定参数阈值时,基于预定调整策略,创建与预定调整策略相匹配数量个数的所述应用的第二热备数据库;
其中,所述性能相关参数包括中央处理器CPU中数据库的占用率、数据库连接应用的个数和数据库中各个连接应用发生异常的概率中的至少一项。
可选地,还包括:
在所述应用的各个热备数据库中确定一个主热备数据库;
当监控到所述第一主数据库停止运行时,通过所述主热备数据库接收所述应用的数据访问请求;
当所述应用与所述主热备数据库数据交互时,建立所述主热备数据库与除所述主热备数据库外的各个热备数据库的第二连接;
通过所述第二连接,将所述主热备数据库的数据同步至除所述主热备数据库外的各个热备数据库。
可选地,还包括:
当监控到所述第一主数据库恢复运行时,将所述主热备数据库数据同步至所述第一主数据库;
将所述应用的数据访问请求重新发送至所述第一主数据库,并断开所述第二连接,重新建立所述第一主数据库与各个热备数据库的连接。
如图2所示,为一种在多单实例数据库服务中部署多个应用的装置结构示意图,包括:
断开模块21,用于当任一应用访问主服务器中所述应用的第一主数据库发生异常时,断开所述应用与所述第一主数据库的连接,并断开所述第一主数据库与热备服务器中所述应用的第一热备数据库的连接;
生成模块22,用于生成所述应用的数据库访问的切换指令,根据所述切换指令建立所述应用与所述第一热备数据库的连接;
建立连接模块23,用于当所述应用结束访问所述第一热备数据库时,重新建立所述第一主数据库与所述第一热备数据库的连接,并重新建立所述应用与所述第一主数据库的连接。
进一步地,包括:
第一预创建模块,用于预创建用于运行各个应用的第一主数据库的主服务器;
第二预创建模块,用于预创建至少一个用于运行各个应用的第一热备数据库的热备服务器;
预配置模块,用于预配置各个应用的第一热备数据库。
进一步地,包括:
第一监控模块,用于在任一应用与所述应用的第一主数据库的数据交互过程中,监控所述第一主数据库的各个监控参数;
第一确定模块,用于当监控到所述第一主数据库的结构化查询语言SQL语句发生异常时,确定所述应用在访问所述第一主数据库时发生异常;
其中,所述监控参数包括SQL语句、中央处理器使用率、磁盘性能指标、当前活跃线程数量、当前数据库连接数量和数据复制延迟时间中的至少一项;
其中,所述SQL语句发生异常的情况包括SQL语句的执行时间超过预定执行时间阈值、SQL语句执行错误和执行SQL语句得到异常值中的至少一种。
进一步地,所述第一监控模块,包括:
确定单元,用于当监控到至少一个监控参数的数值超过所述至少一个监控参数各自的预定阈值时,确定所述至少一个监控参数中是否包含结构化查询语言SQL语句;
生成单元,用于若不包含,根据预定处置策略,生成通知消息。
进一步地,所述建立连接模块,包括:
第一监控单元,用于监控所述应用与所述第一热备数据库的数据交互;
第二监控单元,用于在预定时间内,监控所述第一热备数据库的任一监控参数是否超出所述任一监控参数的预定阈值;
第一建立连接单元,用于若未超出,重新建立所述第一主数据库与所述应用的第一热备数据库的第一连接;
同步单元,用于基于所述第一连接,将所述第一热备数据库中的数据同步至所述第一主数据库,并通过所述第一主数据库,将所述第一主数据库的数据同步至除所述第一热备数据库外的各个热备数据库;
第二建立连接单元,用于当完成同步所述第一主数据库的数据后,重新建立所述应用与所述第一主数据库的连接。
可选地,还包括:
第二监控模块,用于监控所述第一主数据库的性能相关参数和所述至少一个热备数据库的性能相关参数;
创建模块,用于当监控到任一性能相关参数大于所述性能相关参数的预定参数阈值时,基于预定调整策略,创建与预定调整策略相匹配数量个数的所述应用的第二热备数据库;
其中,所述性能相关参数包括中央处理器CPU中数据库的占用率、数据库连接应用的个数和数据库中各个连接应用发生异常的概率中的至少一项。
可选地,还包括:
第二确定模块,用于在所述应用的各个热备数据库中确定一个主热备数据库;
接收模块,用于当监控到所述第一主数据库停止运行时,通过所述主热备数据库接收所述应用的数据访问请求;
建立模块,用于当所述应用与所述主热备数据库数据交互时,建立所述主热备数据库与除所述主热备数据库外的各个热备数据库的第二连接;
第一数据同步模块,用于通过所述第二连接,将所述主热备数据库的数据同步至除所述主热备数据库外的各个热备数据库。
可选地,还包括:
第二数据同步模块,用于当监控到所述第一主数据库恢复运行时,将所述主热备数据库数据同步至所述第一主数据库;
发送模块,用于将所述应用的数据访问请求重新发送至所述第一主数据库,并断开所述第二连接,重新建立所述第一主数据库与各个热备数据库的连接。
本发明实施例上述技术方案具有如下有益效果:通过本实施例,能够及时监控到在主服务器中各个应用的数据访问情况,当发现异常情况时能够及时地根据监控到的异常情况断开对应应用的数据访问,极大地保证了主数据库上其他应用的高可用性;通过将发生数据访问异常的应用的数据访问地址切换至热备服务器中对应应用的热备数据库,并在该应用结束访问该第一热备数据库的数据交互后将最新数据同步至主数据库,实现了在多个单实例数据库服务中部署多个应用时,最大地利用数据库服务器系统资源实现了数据的高可用性、一致性和完整性,极大地降低了系统资源的浪费,进一步地,节约了数据库系统的部署成本。
以下结合应用实例对本发明实施例上述技术方案进行详细说明:
本发明应用实例旨在实现了在多个单实例数据库服务中部署多个应用时,最大地利用数据库服务器系统资源实现了数据的高可用性、一致性和完整性。
如图1所示,例如,在数据库系统A中,应用APP1的第一主数据库为DB1_a,应用APP1的第一热备数据库为DB1_b;应用APP2的第一主数据库为DB2_a,应用APP2的第一热备数据库为DB2_b;其中,DB1_a与DB2_a运行在主服务器中的同一数据库实例中,如数据库实例M中,DB1_b和DB2_b运行在热备服务器中的同一数据库实例中,如数据库实例N中;当应用APP1访问应用APP1的第一主数据库DB1_a发生异常时,断开应用APP1与DB1_a的连接,并断开应用APP1的第一主数据库DB1_a与应用APP1的第一热备数据库DB1_b的连接;随后,生成应用APP1的数据库访问的切换指令,根据该切换指令,建立应用APP1与第一热备数据库DB1_b的连接,当应用APP1结束访问第一热备数据库DB1_b时,重新建立DB1_a与DB1_b的连接,并重新建立应用APP1与DB1_a的连接。
需要说明的是,本领域技术人员可以了解到,在数据库访问的切换指令中,通过携带数据库实例地址中的数据库名称,即可访问相应的数据库,因此,本发明中的各个数据库实例中主数据的名称与各个热备数据库的名称可以均相同,也可以不相同,本发明实施例中虽会以特定方式为例说明,但在此不做限定。
在一种可能的实现方式中,该方法包括:预创建用于运行各个应用的第一主数据库的主服务器;预创建至少一个用于运行各个应用的第一热备数据库的热备服务器;预配置各个应用的第一热备数据库。
例如,在数据库系统A中,预创建用于运行各个应用的第一主数据库的主服务器,如Server1,Server1中运行多个单实例数据库服务,各个应用各自对应的第一主数据库可以运行在同一数据库实例中,也可以运行在不同数据库实例中;预创建至少一个用于运行各个应用的第一热备数据库的热备服务器,如Server2,Server2中运行各个应用的第一热备数据库,并预配置各个应用的第一热备数据库,如配置应用APP1的第一热备数据库为Server2中的数据库DB1_b,应用APP2的第一热备数据库为Server2中的DB2_b。
需要说明的是,预创建主服务器和热备服务器的过程中,本领域技术人员可以根据服务器的硬件配置,合理分配设定各自运行的数据库实例个数,本发明中虽会以特定数量为例说明,但在此不做限定。
在一种可能的实现方式中,在步骤101所述当任一应用访问主服务器中所述应用的第一主数据库发生异常时,断开所述应用与所述第一主数据库的连接,并断开所述第一主数据库与热备服务器中所述应用的第一热备数据库的连接的步骤之前,包括:在任一应用与所述应用的第一主数据库的数据交互过程中,监控所述第一主数据库的各个监控参数;当监控到所述第一主数据库的结构化查询语言SQL语句发生异常时,确定所述应用在访问所述第一主数据库时发生异常。
其中,所述监控参数包括SQL语句、中央处理器使用率、磁盘性能指标、当前活跃线程数量、当前数据库连接数量和数据复制延迟时间中的至少一项。
其中,所述SQL语句发生异常的情况包括SQL语句的执行时间超过预定执行时间阈值、SQL语句执行错误和执行SQL语句得到异常值中的至少一种。
例如,在数据库系统A中,应用APP1的第一主数据库为DB1_a,应用APP1的第一热备数据库为DB1_b;在任一应用,如应用APP1,与应用APP1的第一主数据库DB1_a的数据交互过程中,监控第一主数据库DB1_a的各个监控参数;当监控到第一主数据库DB1_a的结构化查询语言SQL语句发生异常时,确定应用APP1访问第一主数据库DB1_a时发生异常,随后断开应用APP1与第一主数据库DB1_a的连接,并断开应用APP1的第一主数据库DB1_a与应用APP1的第一热备数据库DB1_b的连接。
通过本实施例,能够及时监控到发生数据访问异常的应用,并及时断开访问异常的应用的数据库连接,及时制止异常行为,避免过度占用服务器资源,保证了其他应用能够正常进行数据访问。
在一种可能的实现方式中,所述在任一应用与所述应用的第一主数据库的数据交互过程中,监控所述第一主数据库的各个监控参数,包括:当监控到至少一个监控参数的数值超过所述至少一个监控参数各自的预定阈值时,确定所述至少一个监控参数中是否包含结构化查询语言SQL语句;若不包含,根据预定处置策略,生成通知消息。
例如,在数据库系统A中,应用APP1的第一主数据库为DB1_a,应用APP1的第一热备数据库为DB1_b;预定处置策略为,监控参数均不为SQL语句,并根据不同的监控参数生成不同等级的通知消息,如,若监控参数1的数值超过该监控参数的预定阈值时,生成常规通知消息;若各个监控参数中存在监控参数2,且监控参数2的数值超过该监控参数的预定阈值时,生成一级预警通知消息;若各个监控参数中存在监控参数3,且监控参数3的数值超过该监控参数的预定阈值时,生成二级预警通知消息。在任一应用,如应用APP1,与应用APP1的第一主数据库DB1_a的数据交互过程中,监控第一主数据库DB1_a的各个监控参数;若监控到监控参数1和监控参数2的数值超过各自的预定阈值时,确定监控参数1和监控参数2中不包含结构化查询语言SQL语句,随后,根据预定处置策略,生成一级预警通知消息。
需要说明的是,预定处置策略有多种,如对主数据库和各个热备数据库的磁盘容量、网络带宽、IOPS(Input/Output Operations Per Second,每秒进行读写操作的次数)监控等参数进行监控,可以是不以异常访问切换为目的的资源监控,如磁盘容量使用率达到阈值,因业务量上涨应用访问增加导致的主库网络带宽资源、磁盘IPOS资源或SQL查询量等超过阈值的情况,可以发送报警通知相关技术人员进行相关资源扩容,这种异常参数不会触发应用访问连接切换,目的在于确保参与整个系统的数据库实例都处于正常工作状态;另外,当监控到数据库路由、CPU资源、磁盘空间、内存等服务资源出现异常时,将发送报警通知相关人员进行检查修复,以提高整个系统高可用性。
在一种可能的实现方式中,步骤103中所述当所述应用结束访问所述第一热备数据库时,重新建立所述第一主数据库与所述第一热备数据库的连接,并重新建立所述应用与所述第一主数据库的连接,包括:监控所述应用与所述第一热备数据库的数据交互;在预定时间内,监控所述第一热备数据库的任一监控参数是否超出所述任一监控参数的预定阈值;若未超出,重新建立所述第一主数据库与所述应用的第一热备数据库的第一连接;基于所述第一连接,将所述第一热备数据库中的数据同步至所述第一主数据库,并通过所述第一主数据库,将所述第一主数据库的数据同步至除所述第一热备数据库外的各个热备数据库;当完成同步所述第一主数据库的数据后,重新建立所述应用与所述第一主数据库的连接。
例如,在数据库系统A中,在应用APP2与第一主数据库DB2_a的数据交互过程中,监控第一主数据库DB2_a的各个监控参数;当确定应用APP2访问第一主数据库DB2_a时发生异常,建立应用APP2与第一热备数据库DB2_b的连接后,监控应用APP2与第一热备数据库DB2_b的数据交互;在预定时间内,如30分钟,监控得到第一热备数据库DB2_b的任一监控参数未超出该任一监控参数的预定阈值,则重新建立第一主数据库DB2_a与第一热备数据库DB2_b的第一连接;基于该第一连接,将第一热备数据库DB2_b中的数据同步至第一主数据库DB2_a,并通过第一主数据库DB2_a将第一主数据库DB2_a的数据同步至热备数据库DB2_c;当完成同步第一热备数据库DB2_b的数据后,重新建立应用APP2与第一主数据库DB2_a的连接。
需要说明的是,本领域技术人员可以了解到,实现数据同步,可以通过数据库自带复制功能实现,也可以通过第三方的软硬件来实现,如块复制设备、日志读取软件、或根据自身需求研发的中间件等能实现数据同步目的软硬件,本发明中虽会以特点方式为例说明,但在此不做限定。
通过本实施例,能够在确定数据访问正常后再进行数据同步的操作,避免了因数据访问还存在异常的情况执行数据同步,导致数据错误的情况发生,进一步地保证了数据的可靠性和一致性。
在一种可能的实现方式中,该方法还包括:监控所述第一主数据库的性能相关参数和所述至少一个热备数据库的性能相关参数;当监控到任一性能相关参数大于所述性能相关参数的预定参数阈值时,基于预定调整策略,创建与预定调整策略相匹配数量个数的所述应用的第二热备数据库。
其中,所述性能相关参数包括中央处理器CPU中数据库的占用率、磁盘IOPS中数据库的占用率、数据库连接应用的个数和数据库中各个连接应用发生异常的概率中的至少一项。
例如,在数据库系统A中,在应用APP1与第一主数据库DB1_a的数据交互过程中,监控CPU中第一主数据库DB1_a的占用率、DB1_a中连接应用的个数,以及监控热备数据库DB1_b和DB1_c各自在CPU中的占用率、DB1_b和DB1_c各自连接应用的个数;当监控到CPU的使用率大于CPU使用率的预定参数阈值时,基于预定调整策略,创建与预定调整策略相匹配数量个数,如1个,的应用APP1的第二热备数据库。
需要说明的是,本发明实施例中,一个主数据库可以配置一个或多个热备数据库,具体数量可根据应用的数量、各个应用异常发生概率、对服务可用性要求等基于预定调整策略,酌情动态增减,例如:一个主数据库配置一个热备数据库,主数据库连接5个应用,若其中一个应用发生异常,热备数据库发挥作用,此时为了防止其他应用发生异常影响主数据库,可以动态配置增加预定数量的热备数据库,实现了在成本与服务可靠性上达到更好平衡。本发明实施例中,虽会以特定预定调整策略为例说明,但在此不做限定。
在一种可能的实现方式中,该方法还包括:在所述应用的各个热备数据库中确定一个主热备数据库;当监控到所述第一主数据库停止运行时,通过所述主热备数据库接收所述应用的数据访问请求;当所述应用与所述主热备数据的数据交互时,建立所述主热备数据库与除所述主热备数据库外的各个热备数据库的第二连接;通过所述第二连接,将所述主热备数据库的数据同步至除所述主热备数据库外的各个热备数据库。
其中,该方法还包括:当监控到所述第一主数据库恢复运行时,将所述主热备数据库数据同步至所述第一主数据库;将所述应用的数据访问请求重新发送至所述第一主数据库,并断开所述第二连接,重新建立所述第一主数据库与各个热备数据库的连接。
例如,在数据库系统A中,在应用APP2的各个热备数据库中确定一个主热备数据库,如为DB2_b;当监控到第一主数据库DB2_a停止运行时,通过主热备数据库DB2_b接收应用APP2的数据访问请求;当应用APP2与主热备数据库DB2_b数据交互时,建立主热备数据库DB2_b与热备数据库DB2_c的第二连接;通过该第二连接,将主热备数据库DB2_b的数据同步至热备数据库DB2_c;当监控到第一主数据库DB2_a恢复运行时,主热备数据库DB2_b将数据同步至第一主数据库DB2_a,将应用APP2的数据访问请求重新发送至第一主数据库DB2_a,并断开第二连接,重新建立第一主数据库DB2_a与各个热备数据库的连接。
通过本实施例,能够以较低的成本实现来应对数据访问异常的情况,从而极大地保证了各个应用各自进行正常的数据访问,同时,保证了数据的可靠性和一致性。
在一具体应用场景中,数据库系统B中,如图3所示,数据库系统B中的数据库以关系型数据库管理系统MySQL数据库为例,包括监控模块、路由模块和数据库模块;由两台数据库服务器,地址为192.168.0.1的Master1服务器里运行主数据库和地址为192.168.0.2的Master2服务器里运行热备数据库,搭建标准双主的主从复制结构的数据库系统;在路由模块中,由一台地址为192.168.0.3的服务器搭建MyCat(是代替昂贵的Oracle的MySQL集群中间件)应用作为SQL路由服务器;由一台地址为192.168.0.4的服务器Monitor搭建zabbix(是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案)应用作为监控服务器,并配置Monitor监控MySQL服务器Master和Master2。图3为数据库系统正常服务的流程示意图,应用Ser1通过SQL Router路由模块,访问Master1服务器上自身对应的主数据库db1,应用Ser2通过SQL Router路由模块,访问Master1服务器上自身对应的主数据库db2;当应用Ser2因为业务激增或发生访问异常,出现大量慢查询时,监控模块监控到Master1服务器资源异常,且检测到执行的SQL语句异常是因Ser2异常访问导致,Monitor持续监控Master资源情况,当Master资源使用率达到设定阈值后,如图4所示,Monitor向SQL Router路由发送变更Ser2访问地址的变更指令,SQL Router路由接收到Monitor发送的变更指令后,根据该变更指令,将Ser2访问地址由Master的db2变更为Master2上的db2,同时关闭Master到Master2的主从复制连接;当Monitor监控Master2资源达到预定阈值后,确定此时Ser2访问已恢复正常,如图5所示,Monitor向Master2、Master发送数据同步指令,完成Master的db2与Master2的db2的数据同步;Master的db2与Master2的db2的数据完全同步后,SQL Router路由切换Ser2的数据访问地址,由从Master2的db2切换至Master的db2,同时Master、Master2重新建立主从复制连接,所有数据库的状态恢复到Ser2发生异常访问前的状态,如图3的状态。
本发明实施例提供了一种在多单实例数据库服务中部署多个应用的装置,可以实现上述提供的方法实施例,具体功能实现请参见方法实施例中的说明,在此不再赘述。
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本申请公开的原理和新颖性特征的最广范围相一致。
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。
本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种在多单实例数据库服务中部署多个应用的方法,其特征在于,包括:
当任一应用访问主服务器中所述应用的第一主数据库发生异常时,断开所述应用与所述第一主数据库的连接,并断开所述第一主数据库与热备服务器中所述应用的第一热备数据库的连接;
在所述当任一应用访问主服务器中所述应用的第一主数据库发生异常时,断开所述应用与所述第一主数据库的连接,并断开所述第一主数据库与热备服务器中所述应用的第一热备数据库的连接的步骤之前,包括:
在任一应用与所述应用的第一主数据库的数据交互过程中,监控所述第一主数据库的各个监控参数;
当监控到所述第一主数据库的结构化查询语言SQL语句发生异常时,确定所述应用在访问所述第一主数据库时发生异常;
其中,所述监控参数包括SQL语句、中央处理器使用率、磁盘性能指标、当前活跃线程数量、当前数据库连接数量和数据复制延迟时间中的至少一项;
其中,所述SQL语句发生异常的情况包括SQL语句的执行时间超过预定执行时间阈值、SQL语句执行错误和执行SQL语句得到异常值中的至少一种;
生成所述应用的数据库访问的切换指令,根据所述切换指令建立所述应用与所述第一热备数据库的连接;
当所述应用结束访问所述第一热备数据库时,重新建立所述第一主数据库与所述第一热备数据库的连接,并重新建立所述应用与所述第一主数据库的连接;
所述当所述应用结束访问所述第一热备数据库时,重新建立所述第一主数据库与所述第一热备数据库的连接,并重新建立所述应用与所述第一主数据库的连接,包括:
监控所述应用与所述第一热备数据库的数据交互;
在预定时间内,监控所述第一热备数据库的任一监控参数是否超出所述任一监控参数的预定阈值;
若未超出,重新建立所述第一主数据库与所述应用的第一热备数据库的第一连接;
基于所述第一连接,将所述第一热备数据库中的数据同步至所述第一主数据库,并通过所述第一主数据库,将所述第一主数据库的数据同步至除所述第一热备数据库外的各个热备数据库;
当完成同步所述第一主数据库的数据后,重新建立所述应用与所述第一主数据库的连接;
监控所述第一主数据库的性能相关参数和至少一个热备数据库的性能相关参数;
当监控到任一性能相关参数大于所述性能相关参数的预定参数阈值时,基于预定调整策略,创建与预定调整策略相匹配数量个数的所述应用的第二热备数据库;
其中,所述性能相关参数包括中央处理器CPU中数据库的占用率、数据库连接应用的个数和数据库中各个连接应用发生异常的概率中的至少一项。
2.根据权利要求1所述的方法,其特征在于,包括:
预创建用于运行各个应用的第一主数据库的主服务器;
预创建至少一个用于运行各个应用的第一热备数据库的热备服务器;
预配置各个应用的第一热备数据库。
3.根据权利要求1所述的方法,其特征在于,所述在任一应用与所述应用的第一主数据库的数据交互过程中,监控所述第一主数据库的各个监控参数,包括:
当监控到至少一个监控参数的数值超过所述至少一个监控参数各自的预定阈值时,确定所述至少一个监控参数中是否包含结构化查询语言SQL语句;
若不包含,根据预定处置策略,生成通知消息。
4.根据权利要求1所述的方法,其特征在于,还包括:
在所述应用的各个热备数据库中确定一个主热备数据库;
当监控到所述第一主数据库停止运行时,通过所述主热备数据库接收所述应用的数据访问请求;
当所述应用结束与所述主热备数据库的数据交互时,建立所述主热备数据库与除所述主热备数据库外的各个热备数据库的第二连接;
通过所述第二连接,将所述主热备数据库的数据同步至除所述主热备数据库外的各个热备数据库。
5.根据权利要求4所述的方法,其特征在于,还包括:
当监控到所述第一主数据库恢复运行时,将所述主热备数据库数据同步至所述第一主数据库;
将所述应用的数据访问请求重新发送至所述第一主数据库,并断开所述第二连接,重新建立所述第一主数据库与各个热备数据库的连接。
6.一种在多单实例数据库服务中部署多个应用的装置,其特征在于,包括:
断开模块,用于当任一应用访问主服务器中所述应用的第一主数据库发生异常时,断开所述应用与所述第一主数据库的连接,并断开所述第一主数据库与热备服务器中所述应用的第一热备数据库的连接;
生成模块,用于生成所述应用的数据库访问的切换指令,根据所述切换指令建立所述应用与所述第一热备数据库的连接;
建立连接模块,用于当所述应用结束访问所述第一热备数据库时,重新建立所述第一主数据库与所述第一热备数据库的连接,并重新建立所述应用与所述第一主数据库的连接;
第一监控模块,用于在任一应用与所述应用的第一主数据库的数据交互过程中,监控所述第一主数据库的各个监控参数;
第一确定模块,用于当监控到所述第一主数据库的结构化查询语言SQL语句发生异常时,确定所述应用在访问所述第一主数据库时发生异常;
其中,所述监控参数包括SQL语句、中央处理器使用率、磁盘性能指标、当前活跃线程数量、当前数据库连接数量和数据复制延迟时间中的至少一项;
其中,所述SQL语句发生异常的情况包括SQL语句的执行时间超过预定执行时间阈值、SQL语句执行错误和执行SQL语句得到异常值中的至少一种;
所述建立连接模块,包括:
第一监控单元,用于监控所述应用与所述第一热备数据库的数据交互;
第二监控单元,用于在预定时间内,监控所述第一热备数据库的任一监控参数是否超出所述任一监控参数的预定阈值;
第一建立连接单元,用于若未超出,重新建立所述第一主数据库与所述应用的第一热备数据库的第一连接;
同步单元,用于基于所述第一连接,将所述第一热备数据库中的数据同步至所述第一主数据库,并通过所述第一主数据库,将所述第一主数据库的数据同步至除所述第一热备数据库外的各个热备数据库;
第二建立连接单元,用于当完成同步所述第一主数据库的数据后,重新建立所述应用与所述第一主数据库的连接;
第二监控模块,用于监控所述第一主数据库的性能相关参数和至少一个热备数据库的性能相关参数;
创建模块,用于当监控到任一性能相关参数大于所述性能相关参数的预定参数阈值时,基于预定调整策略,创建与预定调整策略相匹配数量个数的所述应用的第二热备数据库;
其中,所述性能相关参数包括中央处理器CPU中数据库的占用率、数据库连接应用的个数和数据库中各个连接应用发生异常的概率中的至少一项。
7.根据权利要求6所述的装置,其特征在于,包括:
第一预创建模块,用于预创建用于运行各个应用的第一主数据库的主服务器;
第二预创建模块,用于预创建至少一个用于运行各个应用的第一热备数据库的热备服务器;
预配置模块,用于预配置各个应用的第一热备数据库。
8.根据权利要求6所述的装置,其特征在于,所述第一监控模块,包括:
确定单元,用于当监控到至少一个监控参数的数值超过所述至少一个监控参数各自的预定阈值时,确定所述至少一个监控参数中是否包含结构化查询语言SQL语句;
生成单元,用于若不包含,根据预定处置策略,生成通知消息。
9.根据权利要求6所述的装置,其特征在于,还包括:
第二确定模块,用于在所述应用的各个热备数据库中确定一个主热备数据库;
接收模块,用于当监控到所述第一主数据库停止运行时,通过所述主热备数据库接收所述应用的数据访问请求;
建立模块,用于当所述应用与所述主热备数据库数据交互时,建立所述主热备数据库与除所述主热备数据库外的各个热备数据库的第二连接;
第一数据同步模块,用于通过所述第二连接,将所述主热备数据库的数据同步至除所述主热备数据库外的各个热备数据库。
10.根据权利要求9所述的装置,其特征在于,还包括:
第二数据同步模块,用于当监控到所述第一主数据库恢复运行时,将所述主热备数据库数据同步至所述第一主数据库;
发送模块,用于将所述应用的数据访问请求重新发送至所述第一主数据库,并断开所述第二连接,重新建立所述第一主数据库与各个热备数据库的连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811580432.9A CN109753292B (zh) | 2018-12-24 | 2018-12-24 | 一种在多单实例数据库服务中部署多个应用的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811580432.9A CN109753292B (zh) | 2018-12-24 | 2018-12-24 | 一种在多单实例数据库服务中部署多个应用的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109753292A CN109753292A (zh) | 2019-05-14 |
CN109753292B true CN109753292B (zh) | 2023-07-07 |
Family
ID=66402937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811580432.9A Active CN109753292B (zh) | 2018-12-24 | 2018-12-24 | 一种在多单实例数据库服务中部署多个应用的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109753292B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111597192B (zh) * | 2020-04-10 | 2023-10-03 | 北京百度网讯科技有限公司 | 数据库的切换控制方法、装置及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6199069B1 (en) * | 1997-08-25 | 2001-03-06 | International Business Machines Corporation | System and method for switching between databases without disruption to applications |
CN101989283A (zh) * | 2009-08-04 | 2011-03-23 | 中兴通讯股份有限公司 | 一种数据库性能的监控方法和装置 |
CN102111281A (zh) * | 2009-12-24 | 2011-06-29 | 上海粱江通信系统股份有限公司 | 一种实现双机热备系统的热备方法 |
CN103870351A (zh) * | 2012-12-17 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | 处理程序异常的系统及方法 |
CN103914354A (zh) * | 2012-12-31 | 2014-07-09 | 北京新媒传信科技有限公司 | 数据库故障修复的方法和系统 |
CN106452871A (zh) * | 2016-10-13 | 2017-02-22 | 安徽鼎集信息科技有限公司 | 一种高可用性容灾系统 |
CN107729515A (zh) * | 2017-10-26 | 2018-02-23 | 咪咕文化科技有限公司 | 一种数据同步的方法、装置及存储介质 |
-
2018
- 2018-12-24 CN CN201811580432.9A patent/CN109753292B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6199069B1 (en) * | 1997-08-25 | 2001-03-06 | International Business Machines Corporation | System and method for switching between databases without disruption to applications |
CN101989283A (zh) * | 2009-08-04 | 2011-03-23 | 中兴通讯股份有限公司 | 一种数据库性能的监控方法和装置 |
CN102111281A (zh) * | 2009-12-24 | 2011-06-29 | 上海粱江通信系统股份有限公司 | 一种实现双机热备系统的热备方法 |
CN103870351A (zh) * | 2012-12-17 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | 处理程序异常的系统及方法 |
CN103914354A (zh) * | 2012-12-31 | 2014-07-09 | 北京新媒传信科技有限公司 | 数据库故障修复的方法和系统 |
CN106452871A (zh) * | 2016-10-13 | 2017-02-22 | 安徽鼎集信息科技有限公司 | 一种高可用性容灾系统 |
CN107729515A (zh) * | 2017-10-26 | 2018-02-23 | 咪咕文化科技有限公司 | 一种数据同步的方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109753292A (zh) | 2019-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11360854B2 (en) | Storage cluster configuration change method, storage cluster, and computer system | |
US10255148B2 (en) | Primary role reporting service for resource groups | |
KR101871383B1 (ko) | 계층적 데이터 구조의 노드 상에서 재귀적 이벤트 리스너를 사용하기 위한 방법 및 시스템 | |
CN106487486B (zh) | 业务处理方法和数据中心系统 | |
US9262323B1 (en) | Replication in distributed caching cluster | |
US9367261B2 (en) | Computer system, data management method and data management program | |
CN107508694B (zh) | 一种集群内的节点管理方法及节点设备 | |
CN112671928B (zh) | 设备集中管理架构、负载均衡方法、电子设备及存储介质 | |
CN105069152B (zh) | 数据处理方法及装置 | |
CN110830283A (zh) | 故障检测方法、装置、设备和系统 | |
CN112217847A (zh) | 微服务平台及其实现方法、电子设备及存储介质 | |
CN111865632A (zh) | 分布式数据存储集群的切换方法及切换指令发送方法和装置 | |
CN111147274B (zh) | 为集群解决方案创建高度可用的仲裁集的系统和方法 | |
CN113254275A (zh) | 一种基于分布式块设备的MySQL高可用架构方法 | |
CN110442601B (zh) | 一种Openstack镜像数据并行加速的方法和装置 | |
CN109753292B (zh) | 一种在多单实例数据库服务中部署多个应用的方法及装置 | |
EP3570169B1 (en) | Method and system for processing device failure | |
CN107508700B (zh) | 容灾方法、装置、设备及存储介质 | |
CN112631756A (zh) | 一种应用于航天测控软件的分布式调控方法及装置 | |
CN109992447B (zh) | 数据复制方法、装置及存储介质 | |
CN116346834A (zh) | 一种会话同步方法、装置、计算设备及计算机存储介质 | |
CN116302716A (zh) | 一种集群部署方法、装置、电子设备及计算机可读介质 | |
WO2023029485A1 (zh) | 数据处理方法、装置、计算机设备及计算机可读存储介质 | |
CN111309515A (zh) | 一种容灾控制方法、装置及系统 | |
CN113032477B (zh) | 基于gtid的长距离数据同步方法、装置及计算设备 |
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 | ||
CB02 | Change of applicant information |
Address after: 075000 ten building, phase 1, airport economic and Technological Development Zone, Zhangjiakou, Hebei Applicant after: Smart intercommunication Technology Co.,Ltd. Address before: 075000 ten building, phase 1, airport economic and Technological Development Zone, Zhangjiakou, Hebei Applicant before: INTELLIGENT INTER CONNECTION TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |