基于云计算平台的本地关系型数据库节点调度方法和装置制造方法

文档序号:6488762阅读:176来源:国知局
基于云计算平台的本地关系型数据库节点调度方法和装置制造方法
【专利摘要】本发明公开了一种基于云计算平台的本地关系型数据库节点调度方法,用以解决现有技术中在使用关系型数据库服务时,存在的可用性和可靠性较差,且容易出现单点故障的问题。该方法包括:数据库代理模块接收本地开发引擎在调试应用程序时发送的SQL语句,并确定所述SQL语句包含的数据库操作命令;根据预先设置的操作类型与本地关系型数据库节点集群包含的不同类型的数据库节点的对应关系,确定所述数据库操作命令表征的操作类型所对应的数据库节点;并将所述SQL语句包含的数据库操作命令发送给确定的数据库节点执行。本发明还公开了一种基于云计算平台的本地关系型数据库节点调度装置。
【专利说明】基于云计算平台的本地关系型数据库节点调度方法和装置
【技术领域】
[0001]本发明涉及云计算【技术领域】,尤其涉及一种基于云计算平台的本地关系型数据库节点调度方法和装置。
【背景技术】
[0002]云计算技术(cloud computing)是当前信息技术发展的一个重要方向,它是指基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且虚拟化的网络资源。云计算技术在使用过程中主要分为三个层次:基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)。其中,PaaS (Platform as a Service,平台即服务)是指将软件研发的平台作为一种服务,并把各种服务资源开放式地提供给开发者使,对使用的服务资源进行合理收费,同时对开发的应用程序进行托管和运维。
[0003]现有技术中,云计算运行引擎平台所包含的关系型数据库节点可以为开发者提供服务,该节点是建立在关系模型基础上的数据库节点,借助于集合代数等数学概念和方法来处理关系型数据库中的数据。开发者在开发调试应用程序时,可以申请使用云计算关系型数据库节点提供的服务,包括:创建数据库、数据库表并进行数据插入、修改、删除、选择等操作。
[0004]目前,开发调试应用程序时主要采用以下两种方式使用云计算关系型数据库节点提供的服务:
[0005]第一种方式是通过互联网直接使用云计算运行引擎平台提供的关系型数据库节点。如图1所示,基于开发者本地的开发引擎统一集成开发工具,将开发完的应用程序部署到云计算运行引擎平台后,通过查看云计算运行引擎平台的运行日志,来调试使用云计算关系型数据库服务的云计算应用程序。
[0006]但是这种方式要求开发者必须在能够连接互联网的状态下,才可使用申请的云计算运行引擎平台提供的关系型数据库服务,这样对应用程序的调试环境提出了相对较高的要求;此外,开发者开发的应用程序难免会存在bug,这些bug —旦随应用程序部署到云计算运行引擎平台后,很容易成为云计算运行引擎平台的安全隐患。
[0007]为了克服第一种方式存在的缺陷,在实际应用中又出现了第二种方式,即在开发者本地单机模拟云计算运行引擎平台提供的关系型数据库节点。如图2所示,在本地预安装一个能够模拟云计算运行引擎平台提供的关系型数据库节点,这样调用云计算关系型数据库节点就转变为调用本地关系型数据库节点,这样既能够使开发者在不联网的条件下也能调试自己开发的应用程序,又可以让应用程序中存在的bug暴露在本地开发引擎,避免对云计算运行引擎平台造成危害。
[0008]但是,这种方式在使用过程中没有考虑到大量应用程序集中调用关系型数据库服务的情况,而只是有限地在本地安装一个模拟的关系型数据库节点,从而会导致无法满足不同开发者的并发请求。并且,一旦模拟的该关系型数据库节点出现单点故障,将会导致数据的丢失。因此,第二种方式存在针对集群系统的可用性、可靠性较差的缺点,而且出现单点故障的风险较闻。

【发明内容】

[0009]本发明实施例提供一种基于云计算平台的本地关系型数据库节点的调度方法和装置,用以解决现有技术中在使用关系型数据库服务时,存在的可用性和可靠性较差、且容易出现单点故障的问题。
[0010]本发明实施例采用以下技术方案:
[0011]一种基于云计算平台的本地关系型数据库节点调度方法,包括:
[0012]数据库代理模块接收本地开发引擎在调试应用程序时发送的SQL语句,并确定所述SQL语句包含的数据库操作命令,所述数据库操作命令表征针对关系型数据的操作类型;根据预先设置的操作类型与本地关系型数据库节点集群包含的不同类型的数据库节点的对应关系,确定所述数据库操作命令表征的操作类型所对应的数据库节点;并将所述SQL语句包含的数据库操作命令发送给确定的数据库节点执行;其中,所述本地关系型数据库节点集群包含至少一个双子树数据库节点单元,该单元包括:两个主数据库节点和四个从数据库节点;一个主数据库节点对应两个从数据库节点,不同主数据库节点对应不同的从数据库节点,主、从数据库节点分别对应于针对数据库的不同操作类型,且从数据库节点中备份有相应的主数据库节点中存储的关系型数据。
[0013]一种基于云计算平台的本地关系型数据库节点调度装置,包括:
[0014]第一接收单元,用于接收本地开发引擎在调试应用程序时发送的SQL语句,并确定所述SQL语句包含的数据库操作命令,所述数据库操作命令表征针对关系型数据的操作类型;确定单元,用于根据预先设置的操作类型与本地关系型数据库节点集群包含的不同类型的数据库节点的对应关系,确定所述数据库操作命令表征的操作类型所对应的数据库节点;调度单元,用于将所述SQL语句包含的数据库操作命令发送给确定的数据库节点执行;其中,所述本地关系型数据库节点集群包含至少一个双子树数据库节点单元,该单元包括:两个主数据库节点和四个从数据库节点;一个主数据库节点对应两个从数据库节点,不同主数据库节点对应不同的从数据库节点,主、从数据库节点分别对应于针对数据库的不同操作类型,且从数据库节点中备份有相应的主数据库节点中存储的关系型数据。
[0015]本发明实施例的有益效果如下:
[0016]本发明实施例通过数据库代理模块接收本地开发引擎在调试应用程序时发送的SQL语句,并确定SQL语句包含的数据库操作命令,并根据预先设置的操作类型与本地关系型数据库节点集群包含的不同类型的数据库节点的对应关系,确定数据库操作命令表征的操作类型所对应的数据库节点,最后将SQL语句包含的数据库操作命令发送给确定的数据库节点执行,这样不仅能够避免开发者必须实时联网才能获得云计算运行引擎平台的关系型数据库服务的情形,而且还为本地开发引擎提供一个本地关系型数据库节点集群,能够同时处理不同开发者的并发请求,降低了关系型数据库节点单点故障的风险,实现了本地关系型数据库服务的高可用性,也提高了本地关系型数据库服务的可靠性。
【专利附图】

【附图说明】
[0017]图1为通过互联网使用云计算运行引擎平台提供的关系型数据库节点的示意图;[0018]图2为本地单机模拟云计算运行引擎平台提供的单关系型数据库节点的示意图;
[0019]图3为本发明实施例提供的一种基于云计算平台的本地关系型数据库节点的调度方法的主要流程示意图;
[0020]图4为本发明实施例提供的一种本地模拟的云计算关系型数据库服务的结构示意图;
[0021]图5为本发明实施例提供的一种基于云计算平台的本地关系型数据库节点的调度方法的具体流程图;
[0022]图6为本发明实施例提供的一个双子树数据库节点单元的结构图;
[0023]图7为本发明实施例提供的本地开发引擎中本地关系型数据库集群与云计算运行引擎平台中的关系型数据库集群交互的流程示意图;
[0024]图8为本发明实施例提供的一种基于云计算平台的本地关系型数据库节点的调度装置的结构示意图。
【具体实施方式】
[0025]针对现有技术中在使用关系型数据库服务时,存在的可用性和可靠性较差、且容易出现单点故障的问题,本发明实施例提供了一种基于云计算平台的本地关系型数据库节点调度的方案。通过数据库代理模块接收本地开发引擎在调试应用程序时发送的SQL语句,并确定SQL语句包含的数据库操作命令,并根据预先设置的操作类型与本地关系型数据库节点集群包含的不同类型的数据库节点的对应关系,确定数据库操作命令表征的操作类型所对应的数据库节点,最后将SQL语句包含的数据库操作命令发送给确定的数据库节点执行,这样不仅能够避免开发者必须实时联网才能获得云计算运行引擎平台的关系型数据库服务的情形,而且还为本地开发引擎提供一个本地关系型数据库节点集群,能够同时处理不同开发者的并发请求,降低了关系型数据库节点单点故障引发的风险,实现了本地关系型数据库服务的高可用性,也提高了本地关系型数据库服务的可靠性。
[0026]下面结合各个附图对本发明实施例技术方案的主要实现原理、【具体实施方式】及其对应能够达到的有益效果进行详细的阐述。
[0027]如图3所示,为本发明实施例提供的一种基于云计算平台的本地关系型数据库节点的调度方法的主要流程示意图,该流程可以但不限于基于如图4所示的一种本地模拟的云计算关系型数据库服务的结构示意图实现。相比于图1和图2,图4中包含一个统一的集成开发工具,即本地开发引擎,和本地关系型数据库节点集群模块,其中,云计算运行引擎平台提供的关系型数据库通过互联网与本地开发引擎相连,本地关系型数据库节点集群模块包括数据库代理模块和本地关系型数据库节点集群,该本地关系型数据库节点集群模块可以集成到本地开发引擎中。具体地,该流程主要包括下述步骤:
[0028]步骤31,数据库代理模块接收本地开发引擎在调试应用程序时发送的SQL语句,并确定该SQL语句包含的数据库操作命令,其中,该数据库操作命令表征针对关系型数据的操作类型;
[0029]可选的,在接收到本地开发引擎在调试应用程序时发送的SQL语句后,可以对该SQL语句进行安全性分析和语法检查,其中,安全性分析是指判断该SQL语句中是否包含对数据库节点的恶意攻击,比如:口令入侵、特权提升、漏洞入侵、SQL注入、窃取备份等恶意攻击,若存在上述这些恶意攻击,则将该SQL语句过滤;语法检查是指判断该SQL语句是否符合SQL语法标准,若存在语法错误,则对该SQL语句进行提示。
[0030]步骤32,根据预先设置的操作类型与本地关系型数据库节点集群包含的不同类型的数据库节点的对应关系,确定上述SQL语句包含的数据库操作命令表征的操作类型所对应的数据库节点;
[0031]其中,本地关系型数据库节点集群包含至少I个双子树数据库节点单元,该单元包括:2个主数据库节点和4个从数据库节点;I个主数据库节点对应2个从数据库节点,不同主数据库节点对应不同的从数据库节点,主、从数据库节点分别对应于针对数据库的不同操作类型,且从数据库节点中备份有相应的主数据库节点中存储的数据。
[0032]步骤33,按照向任意数据库节点发送的数据库操作命令表征的是该数据库节点所对应的操作类型的发送规则,将上述SQL语句包含的数据库操作命令发送给确定的数据库节点执行。
[0033]本发明实施例通过数据库代理模块接收本地开发引擎在调试应用程序时发送的SQL语句,并确定SQL语句包含的数据库操作命令,并根据预先设置的操作类型与本地关系型数据库节点集群包含的不同类型的数据库节点的对应关系,确定数据库操作命令表征的操作类型所对应的数据库节点,最后将SQL语句包含的数据库操作命令发送给确定的数据库节点执行,这样不仅能够避免开发者必须实时联网才能获得云计算运行引擎平台的关系型数据库服务的情形,而且还为本地开发引擎提供一个本地关系型数据库节点集群,能够同时处理不同开发者的并发请求,降低了关系型数据库节点单点故障的风险,实现了本地关系型数据库服务的高可用性,也提高了本地关系型数据库服务的可靠性。
[0034]下面将依据本发明上述发明原理,详细介绍一个实施例来对本发明方法的主要实现原理进行阐述和说明。
[0035]本发明实施例提供的一种基于云计算平台的本地关系型数据库节点的调度方法,如图5所示,为基于云计算平台的本地关系型数据库节点的调度方法的具体流程图,具体包括以下步骤:
[0036]步骤51,数据库代理模块接收本地开发引擎在调试应用程序时发送的SQL语句;
[0037]步骤52,对上述SQL语句进行安全性分析和语法检查,判断其是否包含恶意攻击内容和错误语法内容,在判断结果为是时,执行步骤53 ;在判断结果为否时,执行步骤54。
[0038]步骤53,对包含恶意攻击内容的SQL语句,执行过滤操作,对包含错误语法内容的SQL语句,执行语法错误提示操作,结束流程;
[0039]其中,安全性分析是指判断SQL语句是否包含对数据库节点的恶意攻击,比如:口令入侵、特权提升、漏洞入侵、SQL注入、窃取备份等,若存在上述这些恶意攻击,则将该SQL语句过滤;
[0040]语法检查是指判断SQL语句是否符合SQL语法标准,若存在语法错误,则对该SQL语句进行错误提示。
[0041]步骤54,确定接收的SQL语句包含的数据库操作命令,其中该数据库操作命令表征针对关系型数据的操作类型;
[0042]其中,针对关系型数据的操作类型包括:对关系型数据的写数据操作和读数据操作。[0043]步骤55,根据预先设置的操作类型与本地关系型数据库节点集群包含的不同类型的数据库节点的对应关系,确定上述SQL语句包含的数据库操作命令表征的操作类型所对应的数据库节点;
[0044]其中,本地关系型数据库节点集群包含至少I个双子树数据库节点单元,该单元包括:2个主数据库节点和4个从数据库节点;I个主数据库节点对应2个从数据库节点,不同主数据库节点对应不同的从数据库节点,主、从数据库节点分别对应于针对数据库的不同操作类型,且从数据库节点中备份有相应的主数据库节点中存储的数据。
[0045]上述对应关系可以为:写数据操作对应主数据库节点;读数据操作对应从数据库节点。
[0046]可选的,本发明实施例中,不同主数据库节点之间通过心跳连接监控彼此状态,以及主数据库节点通过其与相应的从数据库节点之间的心跳连接监控从数据库节点的状态;
[0047]当有主数据库节点通过与其他主数据库节点之间的心跳连接,监控到有主数据库节点发生故障时,会向数据库代理模块发送节点故障消息,该节点故障消息用于表示主数据库节点发生故障,此时,数据库代理模块通知与发生故障的主数据库节点之间建立有心跳连接的其他主数据库节点,根据全量更新方式将自身存储的关系型数据同步到新增的主数据库节点中;
[0048]当有主数据库节点通过与其对应的从数据库节点之间的心跳连接,监控到有从数据库节点发生故障时,会向数据库代理模块发送节点故障消息,该节点故障消息用于表示从数据库节点发生故障,此时,数据库代理模块通知发生故障的从数据库节点对应的主数据库节点,根据全量更新方式将自身存储的关系型数据同步到新增的从数据库节点中。
[0049]在本发明实施例中,为了应对单点故障以及满足不同开发者的大量并发请求,我们针对本地关系型数据库节点集群采用的拓扑模型是Dual Tree双子树模型,即上述双子树数据库节点单元中所设定的结构。如图6所示,2个主数据库节点构成环路,同时,I个主数据库节点Master对应2个从数据库节点Slave,不同主数据库节点对应不同的从数据库节点,且从数据库节点中备份有与之对应的主数据库节点中存储的关系型数据。上述这种结构中的关系型数据库节点为本发明实施例中可实现的最小的本地关系型数据库节点集群,云计算运行引擎关系型数据库集群是以这个基本单元进行扩展,本地的关系型数据库节点集群可看做是云计算关系型数据库集群的本地模拟,可选的,本地关系型数据库节点集群中的主从数据库节点的数量可以依据开发者的需求自主设定。
[0050]步骤56,根据本地关系型数据库节点集群包含的各数据库节点上报的表征其负载的性能指标数据,以及预先为不同性能指标分别分配的权值,分别确定各数据库节点的负载情况;
[0051]步骤57,比较上述确定的各数据库节点的负载情况,针对数据库操作命令表征的操作类型对应主(从)数据库节点时,若仅具有一个负载最小的主(从)数据库节点,则执行步骤58 ;若具有最小负载的主(从)数据库节点有多个,则执行步骤59。
[0052]步骤58,根据确定的主(从)数据库节点的负载情况,将相应的数据库操作命令发送给具有最小负载的主(从)数据库节点执行。流程结束。
[0053]步骤59,按照轮询机制,将相应的数据库操作命令发送给具有最小负载的主(从)数据库节点中的一个主(从)数据库节点执行。流程结束。
[0054]在本发明实施例中,当开发者同时开发调试多个应用程序,且多个应用程序存在关联时,我们本地模拟的关系型数据库还可以具有以下功能:
[0055]在本地模拟的关系型数据库中建立专门的数据表,用于存储每个应用程序与使用本数据库的对应关系;当接收到本地开发引擎发送的SQL语句时,可以在对该SQL语句包含的操作命令进行操作类型判断的同时,查询预先设置的存储着每个应用程序与使用本数据库的对应关系的数据表,如果数据库没有授权给该应用程序,则拒绝执行接收到的SQL语句并返回错误代码。
[0056]由于云计算引擎平台提供的云计算关系型数据库是我们本地模拟的目标数据库,它可以是MySQL等典型的关系型数据库,支持SQL92标准,支持关系型数据库的基本操作,所以本发明实施例中,主数据库节点和从数据库节点可以是MySQL等典型的关系型数据库,支持SQL92标准,支持关系型数据库的基本操作,完全模拟了云计算关系型数据库的特点。
[0057]在本发明实施例中,开发者可以基于本地开发引擎实现对云计算关系型数据库的数据的查询、同步以及导入导出功能,并将导出的数据进行备份存放在本地,这样使开发者在开发调试应用程序时更加灵活,离线时也可以继续开发应用程序,同时对开发数据在本地保留副本,有效的防止数据丢失。开发者还可以将第三方数据库导出的数据文件导入本地模拟的关系型数据库中;同样。本地模拟的关系型数据库中的数据文件也能导入第三方数据库中,已达到不同数据库间的数据还原。如图7所示,为基于本地开发引擎实现本地关系型数据库与云计算引擎平台中的关系型数据库交互的流程示意图,具体方式为:
[0058]1、开发者通过本地开发引擎发起连接云计算关系型数据库请求,基于WebService技术调用认证用户应用AuthUserAPP方法,并传入开发者身份信息UserlD,应用程序APPID等参数到该函数方法中。
[0059]其中,上述的开发者身份信息UserID和应用程序APPID是指,当开发者通过云计算运行引擎平台申请注册账户后为开发者分配一个UserlD,用于标识开发者身份信息,同时当申请开发新的应用程序时,云计算运行引擎平台会为该应用程序分配一个APPID,用于唯一标识这个应用程序。
[0060]上述的WebService技术可以采用Axis框架,WebService技术是基于http协议公开的服务接口,远程客户端就可以调用服务。Axis (Apache Xtensible InteractionSystem)是一种开源的WebService框架,它是SOAP协议的一个实现。
[0061]2、云计算运行引擎平台执行AuthUserAPP方法并查询云计算关系型数据库,对UserlD、APPID进行鉴权分析,如果开发者身份和应用程序合法,在数据库中有对应合法记录,则返回相应代码O给开发者;反之,返回代码I。
[0062]如果本地开发引擎接收相应代码0,可以继续进行查看、同步云计算数据或云计算数据导出的操作。
[0063]3、当本地开发引擎发起查看云计算数据请求,调用云计算运行引擎平台的WebService接口 SearchData方法,并传入查询的SQL语句字符串等参数到该函数方法中。
[0064]4、云计算运行引擎平台首先对接收的SQL语句进行语法安全性检查,如果合法,则在云计算关系型数据库中执行SQL语句,并将返回的数据结果转换为JSON格式发送给调用者;如果不合法,则云计算关系型数据库不执行SQL语句,并返回错误消息给调用者。
[0065]其中,JSON是一种文本格式,独立于语言。它采用的数据结构是(名:值)对集合,是一个有序表,通常实现为数组。
[0066]需要说明的是,云计算关系型数据库返回JSON格式的查询数据,此处还可以选择以其他格式将查询数据返回。本发明实施例中,之所以选择JSON这种轻量级的数据交换格式,主要因为JSON的优势在于格式简洁短小,生成后的数据大小改变不大,且易于处理,在网络上传输冗余数据少。
[0067]5、当本地开发引擎发起同步云计算数据请求,本地开发引擎首先读取本地模拟的关系型数据库,对需要同步的数据及云计算关系型目标数据库标识信息形成一个SQL脚本文件,调用云计算运行引擎平台的WebService接口 SyncData方法,并将同步数据的SQL脚本文件作为数据流参数发送给云计算运行引擎平台。
[0068]6、云计算运行引擎平台首先对接收的SQL脚本文件进行语法安全性检查,如果合法,则在云计算关系型数据库执行该同步数据的SQL脚本文件,并将同步云计算数据的结果返回给调用者;如果不合法,则云计算关系型数据库不执行SQL脚本文件,并返回错误消息给调用者。
[0069]7、当本地开发引擎发起导出云计算数据请求,本地开发引擎首先根据导出数据库选项形成SQL脚本文件,调用云计算运行引擎平台的WebService接口 ExportData方法,并将导出数据的SQL脚本文件作为数据流参数发送给云计算运行引擎平台。
[0070]8、云计算运行引擎平台首先对接收的SQL脚本文件进行语法安全性检查,如果合法,则在云计算关系型数据库执行该导出数据的SQL脚本文件,并将云计算RDS导出的数据形成SQL脚本文件返回给调用者;如果不合法,则云计算关系型数据库不执行该SQL脚本文件,并返回错误消息给调用者。
[0071]相应的,本发明实施例还提供一种基于云计算平台的本地关系型数据库节点的调度装置,如图8所示,为一种关系型数据库节点的调度装置的结构示意图,包括:
[0072]第一接收单元81,用于接收本地开发引擎在调试应用程序时发送的SQL语句,并确定该SQL语句包含的数据库操作命令,上述数据库操作命令表征针对关系型数据的操作类型;
[0073]确定单元82,用于根据预先设置的操作类型与本地关系型数据库节点集群包含的不同类型的数据库节点的对应关系,确定上述数据库操作命令表征的操作类型所对应的数据库节点;
[0074]调度单元83,用于将SQL语句包含的数据库操作命令发送给确定的数据库节点执行;
[0075]其中,本地关系型数据库节点集群包含至少I个双子树数据库节点单元,该单元包括:2个主数据库节点和4个从数据库节点;I个主数据库节点对应2个从数据库节点,不同主数据库节点对应不同的从数据库节点,主、从数据库节点分别对应于针对数据库的不同操作类型,且从数据库节点中备份有相应的主数据库节点中存储的关系型数据。
[0076]可选的,不同主数据库节点之间通过心跳连接监控彼此状态,主数据库节点通过其与相应的从数据库节点之间的心跳连接监控从数据库节点的状态,在该场景下,该装置还可以包括:[0077]第二接收单元,用于接收节点故障消息;
[0078]通知单元,用于当节点故障消息用于表示主数据库节点发生故障时,通知与发生故障的主数据库节点之间建立有心跳连接的其他主数据库节点,根据全量更新方式将自身存储的关系型数据同步到新增的主数据库节点中;其中,节点故障消息是:发送节点故障消息的主数据库节点通过与其他主数据库节点之间的心跳连接,监控到有主数据库节点发生故障后发送的;
[0079]通知单元,还用于当节点故障消息用于表示从数据库节点发生故障时,通知发生故障的从数据库节点对应的主数据库节点,根据全量更新方式将自身存储的关系型数据同步到新增的从数据库节点中;其中,节点故障消息是:发送节点故障消息的主数据库节点通过与其对应的从数据库节点之间的心跳连接,监控到有从数据库节点发生故障后发送的。
[0080]可选的,该装置还可以包括:
[0081]判断单元,用于判断SQL语句是否包含恶意攻击内容和错误语法内容;
[0082]其中,恶意攻击内容包括:口令入侵、特权提升、漏洞入侵、SQL注入、窃取备份中的一项或多项内容;而判断SQL语句是否包含错误语法内容具体为:判断SQL语句是否符合SQL语法标准;则
[0083]确定单元82,具体用于在判断结果为否时,根据预先设置的操作类型与本地关系型数据库节点集群包含的不同类型的数据库节点的对应关系,确定所述数据库操作命令表征的操作类型所对应的数据库节点。
[0084]可选的,该装置还可以包括:
[0085]负载单元,用于根据本地关系型数据库节点集群包含的各数据库节点上报的表征其负载的性能指标数据,以及预先为不同性能指标分别分配的权值,分别确定各数据库节点的负载情况;
[0086]当数据库操作命令表征的操作类型对应主数据库节点时,调度单元83具体用于根据主数据库节点的负载情况,将相应的数据库操作命令发送给具有最小负载的主数据库节点执行;
[0087]若具有最小负载的主数据库节点有多个,调度单元83具体用于按照轮询机制,将相应的数据库操作命令发送给具有最小负载的主数据库节点中的一个主数据库节点执行。
[0088]当数据库操作命令表征的操作类型对应从数据库节点时,调度单元83具体用于根据从数据库节点的负载情况,将相应的数据库操作命令发送给具有最小负载的从数据库节点执行;
[0089]若具有最小负载的从数据库节点有多个,调度单元83具体用于按照轮询机制,将相应的数据库操作命令发送给具有最小负载的从数据库节点中的一个从数据库节点执行。
[0090]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0091]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0092]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0093]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0094]尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0095]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种基于云计算平台的本地关系型数据库节点调度方法,其特征在于,包括: 数据库代理模块接收本地开发引擎在调试应用程序时发送的SQL语句,并确定所述SQL语句包含的数据库操作命令,所述数据库操作命令表征针对关系型数据的操作类型; 根据预先设置的操作类型与本地关系型数据库节点集群包含的不同类型的数据库节点的对应关系,确定所述数据库操作命令表征的操作类型所对应的数据库节点;并 将所述SQL语句包含的数据库操作命令发送给确定的数据库节点执行; 其中,所述本地关系型数据库节点集群包含至少一个双子树数据库节点单元,该单元包括:两个主数据库节点和四个从数据库节点;一个主数据库节点对应两个从数据库节点,不同主数据库节点对应不同的从数据库节点,主、从数据库节点分别对应于针对数据库的不同操作类型,且从数据库节点中备份有相应的主数据库节点中存储的关系型数据。
2.如权利要求1所述的方法,其特征在于,不同主数据库节点之间通过心跳连接监控彼此状态,主数据库节点通过其与相应的从数据库节点之间的心跳连接监控从数据库节点的状态;则所述方法还包括: 数据库代理模块接收节点故障消息; 当所述节点故障消息用于表示主数据库节点发生故障时,通知与发生故障的主数据库节点之间建立有心跳连接的其他主数据库节点,根据全量更新方式将自身存储的关系型数据同步到新增的主数据库节点中;其中,所述节点故障消息是:发送所述节点故障消息的主数据库节点通过与其他主数据库节点之间的心跳连接,监控到有主数据库节点发生故障后发送的; 当所述节点故障消息用于表示从数据库节点发生故障时,通知发生故障的从数据库节点对应的主数据库节点,根据全量更新方式将自身存储的关系型数据同步到新增的从数据库节点中;其中,所述节点故障消息是:发送所述节点故障消息的主数据库节点通过与其对应的从数据库节点之间的心跳连接,监控到有从数据库节点发生故障后发送的。
3.如权利要求1所述的方法,其特征在于,还包括:判断所述SQL语句是否包含恶意攻击内容和错误语法内容;则 根据预先设置的操作类型与本地关系型数据库节点集群包含的不同类型的数据库节点的对应关系,确定所述数据库操作命令表征的操作类型所对应的数据库节点,具体包括: 在判断结果为否时,根据预先设置的操作类型与本地关系型数据库节点集群包含的不同类型的数据库节点的对应关系,确定所述数据库操作命令表征的操作类型所对应的数据库节点。
4.如权利要求3所述的方法,其特征在于,所述恶意攻击内容包括:口令入侵、特权提升、漏洞入侵、SQL注入、窃取备份中的一项或多项内容; 所述判断SQL语句是否包含错误语法内容,具体包括: 判断所述SQL语句是否符合SQL语法标准。
5.如权利要求1~4任一所述的方法,其特征在于,还包括: 根据本地关系型数据库节点集群包含的各数据库节点上报的表征其负载的性能指标数据,以及预先为不同性能指标分别分配的权值,分别确定各数据库节点的负载情况;则 将所述SQL语句包含的数据库操作命令发送给确定的数据库节点执行,具体包括:当所述数据库操作命令表征的操作类型对应主数据库节点时,根据主数据库节点的负载情况,将相应的数据库操作命令发送给具有最小负载的主数据库节点执行; 当所述数据库操作命令表征的操作类型对应从数据库节点时,根据从数据库节点的负载情况,将相应的数据库操作命令发送给具有最小负载的从数据库节点执行。
6.如权利要求5所述的方法,其特征在于,若具有最小负载的主数据库节点有多个;则 根据主数据库节点的负载情况,将相应的数据库操作命令发送给具有最小负载的主数据库节点执行,具体包括: 按照轮询机制,将相应的数据库操作命令发送给具有最小负载的主数据库节点中的一个主数据库节点执行。
7.如权利要求6所述的方法,其特征在于,若具有最小负载的从数据库节点有多个;则 根据从数据库节点的负载情况,将相应的数据库操作命令发送给具有最小负载的从数据库节点执行,具体包括: 按照轮询机制,将相应的数据库操作命令发送给具有最小负载的从数据库节点中的一个从数据库节点执行。
8.一种基于云计算平台的本地关系型数据库节点调度装置,其特征在于,包括: 第一接收单元,用于接收本地开发引擎在调试应用程序时发送的SQL语句,并确定所述SQL语句包含的数据库操作命令,所述数据库操作命令表征针对关系型数据的操作类型;` 确定单元,用于根据预先设置的操作类型与本地关系型数据库节点集群包含的不同类型的数据库节点的对应关系,确定所述数据库操作命令表征的操作类型所对应的数据库节占.调度单元,用于将所述SQL语句包含的数据库操作命令发送给确定的数据库节点执行; 其中,所述本地关系型数据库节点集群包含至少一个双子树数据库节点单元,该单元包括:两个主数据库节点和四个从数据库节点;一个主数据库节点对应两个从数据库节点,不同主数据库节点对应不同的从数据库节点,主、从数据库节点分别对应于针对数据库的不同操作类型,且从数据库节点中备份有相应的主数据库节点中存储的关系型数据。
9.如权利要求8所述的装置,其特征在于,不同主数据库节点之间通过心跳连接监控彼此状态,主数据库节点通过其与相应的从数据库节点之间的心跳连接监控从数据库节点的状态;则所述装置还包括: 第二接收单元,用于接收节点故障消息; 通知单元,用于当所述节点故障消息用于表示主数据库节点发生故障时,通知与发生故障的主数据库节点之间建立有心跳连接的其他主数据库节点,根据全量更新方式将自身存储的关系型数据同步到新增的主数据库节点中;其中,所述节点故障消息是:发送所述节点故障消息的主数据库节点通过与其他主数据库节点之间的心跳连接,监控到有主数据库节点发生故障后发送的; 通知单元,还用于当所述节点故障消息用于表示从数据库节点发生故障时,通知发生故障的从数据库节点对应的主数据库节点,根据全量更新方式将自身存储的关系型数据同步到新增的从数据库节点中;其中,所述节点故障消息是:发送所述节点故障消息的主数据库节点通过与其对应的从数据库节点之间的心跳连接,监控到有从数据库节点发生故障后发送的。
10.如权利要求8所述的装置,其特征在于,还包括: 判断单元,用于判断所述SQL语句是否包含恶意攻击内容和错误语法内容;则确定单元,具体用于在判断结果为否时,根据预先设置的操作类型与本地关系型数据库节点集群包含的不同类型的数据库节点的对应关系,确定所述数据库操作命令表征的操作类型所对应的数据库节点。
11.如权利要求10所述的装置,其特征在于,所述恶意攻击内容包括:口令入侵、特权提升、漏洞入侵、SQL注入、窃取备份中的一项或多项内容; 所述判断单元,具体用于判断SQL语句是否符合SQL语法标准。
12.如权利要求8~11任一所述的装置,其特征在于,还包括: 负载单元,用于根据本地关系型数据库节点集群包含的各数据库节点上报的表征其负载的性能指标数据,以及预先为不同性能指标分别分配的权值,分别确定各数据库节点的负载情况;则 调度单元,具体用于当所述数据库操作命令表征的操作类型对应主数据库节点时,根据主数据库节点的负载情况,将相应的数据库操作命令发送给具有最小负载的主数据库节点执行;当所述数据库操作命令表征的操作类型对应从数据库节点时,根据从数据库节点的负载情况,将相应的数据库操作命令发送给具有最小负载的从数据库节点执行。
13.如权利要求12所述的装置,其特征在于,若具有最小负载的主数据库节点有多个,则 调度模块,具体用于按照轮询机制,将相应的数据库操作命令发送给具有最小负载的主数据库节点中的一个主数据库节点执行。
14.如权利要求13所述的装置,其特征在于,若具有最小负载的从数据库节点有多个;则 调度模块,具体用于按照轮询机制,将相应的数据库操作命令发送给具有最小负载的从数据库节点中的一个从 数据库节点执行。
【文档编号】G06F17/30GK103678354SQ201210335667
【公开日】2014年3月26日 申请日期:2012年9月11日 优先权日:2012年9月11日
【发明者】杨帅, 王磊建, 刘涛, 孔令军 申请人:中国移动通信集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1