CN103678354B - 基于云计算平台的本地关系型数据库节点调度方法和装置 - Google Patents
基于云计算平台的本地关系型数据库节点调度方法和装置 Download PDFInfo
- Publication number
- CN103678354B CN103678354B CN201210335667.8A CN201210335667A CN103678354B CN 103678354 B CN103678354 B CN 103678354B CN 201210335667 A CN201210335667 A CN 201210335667A CN 103678354 B CN103678354 B CN 103678354B
- Authority
- CN
- China
- Prior art keywords
- database
- database node
- node
- main
- manipulation order
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于云计算平台的本地关系型数据库节点调度方法,用以解决现有技术中在使用关系型数据库服务时,存在的可用性和可靠性较差,且容易出现单点故障的问题。该方法包括:数据库代理模块接收本地开发引擎在调试应用程序时发送的SQL语句,并确定所述SQL语句包含的数据库操作命令;根据预先设置的操作类型与本地关系型数据库节点集群包含的不同类型的数据库节点的对应关系,确定所述数据库操作命令表征的操作类型所对应的数据库节点;并将所述SQL语句包含的数据库操作命令发送给确定的数据库节点执行。本发明还公开了一种基于云计算平台的本地关系型数据库节点调度装置。
Description
技术领域
本发明涉及云计算技术领域,尤其涉及一种基于云计算平台的本地关系型数据库节点调度方法和装置。
背景技术
云计算技术(cloud computing)是当前信息技术发展的一个重要方向,它是指基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且虚拟化的网络资源。云计算技术在使用过程中主要分为三个层次:基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)。其中,PaaS(Platform as a Service,平台即服务)是指将软件研发的平台作为一种服务,并把各种服务资源开放式地提供给开发者使,对使用的服务资源进行合理收费,同时对开发的应用程序进行托管和运维。
现有技术中,云计算运行引擎平台所包含的关系型数据库节点可以为开发者提供服务,该节点是建立在关系模型基础上的数据库节点,借助于集合代数等数学概念和方法来处理关系型数据库中的数据。开发者在开发调试应用程序时,可以申请使用云计算关系型数据库节点提供的服务,包括:创建数据库、数据库表并进行数据插入、修改、删除、选择等操作。
目前,开发调试应用程序时主要采用以下两种方式使用云计算关系型数据库节点提供的服务:
第一种方式是通过互联网直接使用云计算运行引擎平台提供的关系型数据库节点。如图1所示,基于开发者本地的开发引擎统一集成开发工具,将开发完的应用程序部署到云计算运行引擎平台后,通过查看云计算运行引擎平台的运行日志,来调试使用云计算关系型数据库服务的云计算应用程序。
但是这种方式要求开发者必须在能够连接互联网的状态下,才可使用申请的云计算运行引擎平台提供的关系型数据库服务,这样对应用程序的调试环境提出了相对较高的要求;此外,开发者开发的应用程序难免会存在bug,这些bug一旦随应用程序部署到云计算运行引擎平台后,很容易成为云计算运行引擎平台的安全隐患。
为了克服第一种方式存在的缺陷,在实际应用中又出现了第二种方式,即在开发者本地单机模拟云计算运行引擎平台提供的关系型数据库节点。如图2所示,在本地预安装一个能够模拟云计算运行引擎平台提供的关系型数据库节点,这样调用云计算关系型数据库节点就转变为调用本地关系型数据库节点,这样既能够使开发者在不联网的条件下也能调试自己开发的应用程序,又可以让应用程序中存在的bug暴露在本地开发引擎,避免对云计算运行引擎平台造成危害。
但是,这种方式在使用过程中没有考虑到大量应用程序集中调用关系型数据库服务的情况,而只是有限地在本地安装一个模拟的关系型数据库节点,从而会导致无法满足不同开发者的并发请求。并且,一旦模拟的该关系型数据库节点出现单点故障,将会导致数据的丢失。因此,第二种方式存在针对集群系统的可用性、可靠性较差的缺点,而且出现单点故障的风险较高。
发明内容
本发明实施例提供一种基于云计算平台的本地关系型数据库节点的调度方法和装置,用以解决现有技术中在使用关系型数据库服务时,存在的可用性和可靠性较差、且容易出现单点故障的问题。
本发明实施例采用以下技术方案:
一种基于云计算平台的本地关系型数据库节点调度方法,包括:
数据库代理模块接收本地开发引擎在调试应用程序时发送的SQL语句,并确定所述SQL语句包含的数据库操作命令,所述数据库操作命令表征针对关系型数据的操作类型;根据预先设置的操作类型与本地关系型数据库节点集群包含的不同类型的数据库节点的对应关系,确定所述数据库操作命令表征的操作类型所对应的数据库节点;并将所述SQL语句包含的数据库操作命令发送给确定的数据库节点执行;其中,所述本地关系型数据库节点集群包含至少一个双子树数据库节点单元,该单元包括:两个主数据库节点和四个从数据库节点;一个主数据库节点对应两个从数据库节点,不同主数据库节点对应不同的从数据库节点,主、从数据库节点分别对应于针对数据库的不同操作类型,且从数据库节点中备份有相应的主数据库节点中存储的关系型数据。
一种基于云计算平台的本地关系型数据库节点调度装置,包括:
第一接收单元,用于接收本地开发引擎在调试应用程序时发送的SQL语句,并确定所述SQL语句包含的数据库操作命令,所述数据库操作命令表征针对关系型数据的操作类型;确定单元,用于根据预先设置的操作类型与本地关系型数据库节点集群包含的不同类型的数据库节点的对应关系,确定所述数据库操作命令表征的操作类型所对应的数据库节点;调度单元,用于将所述SQL语句包含的数据库操作命令发送给确定的数据库节点执行;其中,所述本地关系型数据库节点集群包含至少一个双子树数据库节点单元,该单元包括:两个主数据库节点和四个从数据库节点;一个主数据库节点对应两个从数据库节点,不同主数据库节点对应不同的从数据库节点,主、从数据库节点分别对应于针对数据库的不同操作类型,且从数据库节点中备份有相应的主数据库节点中存储的关系型数据。
本发明实施例的有益效果如下:
本发明实施例通过数据库代理模块接收本地开发引擎在调试应用程序时发送的SQL语句,并确定SQL语句包含的数据库操作命令,并根据预先设置的操作类型与本地关系型数据库节点集群包含的不同类型的数据库节点的对应关系,确定数据库操作命令表征的操作类型所对应的数据库节点,最后将SQL语句包含的数据库操作命令发送给确定的数据库节点执行,这样不仅能够避免开发者必须实时联网才能获得云计算运行引擎平台的关系型数据库服务的情形,而且还为本地开发引擎提供一个本地关系型数据库节点集群,能够同时处理不同开发者的并发请求,降低了关系型数据库节点单点故障的风险,实现了本地关系型数据库服务的高可用性,也提高了本地关系型数据库服务的可靠性。
附图说明
图1为通过互联网使用云计算运行引擎平台提供的关系型数据库节点的示意图;
图2为本地单机模拟云计算运行引擎平台提供的单关系型数据库节点的示意图;
图3为本发明实施例提供的一种基于云计算平台的本地关系型数据库节点的调度方法的主要流程示意图;
图4为本发明实施例提供的一种本地模拟的云计算关系型数据库服务的结构示意图;
图5为本发明实施例提供的一种基于云计算平台的本地关系型数据库节点的调度方法的具体流程图;
图6为本发明实施例提供的一个双子树数据库节点单元的结构图;
图7为本发明实施例提供的本地开发引擎中本地关系型数据库集群与云计算运行引擎平台中的关系型数据库集群交互的流程示意图;
图8为本发明实施例提供的一种基于云计算平台的本地关系型数据库节点的调度装置的结构示意图。
具体实施方式
针对现有技术中在使用关系型数据库服务时,存在的可用性和可靠性较差、且容易出现单点故障的问题,本发明实施例提供了一种基于云计算平台的本地关系型数据库节点调度的方案。通过数据库代理模块接收本地开发引擎在调试应用程序时发送的SQL语句,并确定SQL语句包含的数据库操作命令,并根据预先设置的操作类型与本地关系型数据库节点集群包含的不同类型的数据库节点的对应关系,确定数据库操作命令表征的操作类型所对应的数据库节点,最后将SQL语句包含的数据库操作命令发送给确定的数据库节点执行,这样不仅能够避免开发者必须实时联网才能获得云计算运行引擎平台的关系型数据库服务的情形,而且还为本地开发引擎提供一个本地关系型数据库节点集群,能够同时处理不同开发者的并发请求,降低了关系型数据库节点单点故障引发的风险,实现了本地关系型数据库服务的高可用性,也提高了本地关系型数据库服务的可靠性。
下面结合各个附图对本发明实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细的阐述。
如图3所示,为本发明实施例提供的一种基于云计算平台的本地关系型数据库节点的调度方法的主要流程示意图,该流程可以但不限于基于如图4所示的一种本地模拟的云计算关系型数据库服务的结构示意图实现。相比于图1和图2,图4中包含一个统一的集成开发工具,即本地开发引擎,和本地关系型数据库节点集群模块,其中,云计算运行引擎平台提供的关系型数据库通过互联网与本地开发引擎相连,本地关系型数据库节点集群模块包括数据库代理模块和本地关系型数据库节点集群,该本地关系型数据库节点集群模块可以集成到本地开发引擎中。具体地,该流程主要包括下述步骤:
步骤31,数据库代理模块接收本地开发引擎在调试应用程序时发送的SQL语句,并确定该SQL语句包含的数据库操作命令,其中,该数据库操作命令表征针对关系型数据的操作类型;
可选的,在接收到本地开发引擎在调试应用程序时发送的SQL语句后,可以对该SQL语句进行安全性分析和语法检查,其中,安全性分析是指判断该SQL语句中是否包含对数据库节点的恶意攻击,比如:口令入侵、特权提升、漏洞入侵、SQL注入、窃取备份等恶意攻击,若存在上述这些恶意攻击,则将该SQL语句过滤;语法检查是指判断该SQL语句是否符合SQL语法标准,若存在语法错误,则对该SQL语句进行提示。
步骤32,根据预先设置的操作类型与本地关系型数据库节点集群包含的不同类型的数据库节点的对应关系,确定上述SQL语句包含的数据库操作命令表征的操作类型所对应的数据库节点;
其中,本地关系型数据库节点集群包含至少1个双子树数据库节点单元,该单元包括:2个主数据库节点和4个从数据库节点;1个主数据库节点对应2个从数据库节点,不同主数据库节点对应不同的从数据库节点,主、从数据库节点分别对应于针对数据库的不同操作类型,且从数据库节点中备份有相应的主数据库节点中存储的数据。
步骤33,按照向任意数据库节点发送的数据库操作命令表征的是该数据库节点所对应的操作类型的发送规则,将上述SQL语句包含的数据库操作命令发送给确定的数据库节点执行。
本发明实施例通过数据库代理模块接收本地开发引擎在调试应用程序时发送的SQL语句,并确定SQL语句包含的数据库操作命令,并根据预先设置的操作类型与本地关系型数据库节点集群包含的不同类型的数据库节点的对应关系,确定数据库操作命令表征的操作类型所对应的数据库节点,最后将SQL语句包含的数据库操作命令发送给确定的数据库节点执行,这样不仅能够避免开发者必须实时联网才能获得云计算运行引擎平台的关系型数据库服务的情形,而且还为本地开发引擎提供一个本地关系型数据库节点集群,能够同时处理不同开发者的并发请求,降低了关系型数据库节点单点故障的风险,实现了本地关系型数据库服务的高可用性,也提高了本地关系型数据库服务的可靠性。
下面将依据本发明上述发明原理,详细介绍一个实施例来对本发明方法的主要实现原理进行阐述和说明。
本发明实施例提供的一种基于云计算平台的本地关系型数据库节点的调度方法,如图5所示,为基于云计算平台的本地关系型数据库节点的调度方法的具体流程图,具体包括以下步骤:
步骤51,数据库代理模块接收本地开发引擎在调试应用程序时发送的SQL语句;
步骤52,对上述SQL语句进行安全性分析和语法检查,判断其是否包含恶意攻击内容和错误语法内容,在判断结果为是时,执行步骤53;在判断结果为否时,执行步骤54。
步骤53,对包含恶意攻击内容的SQL语句,执行过滤操作,对包含错误语法内容的SQL语句,执行语法错误提示操作,结束流程;
其中,安全性分析是指判断SQL语句是否包含对数据库节点的恶意攻击,比如:口令入侵、特权提升、漏洞入侵、SQL注入、窃取备份等,若存在上述这些恶意攻击,则将该SQL语句过滤;
语法检查是指判断SQL语句是否符合SQL语法标准,若存在语法错误,则对该SQL语句进行错误提示。
步骤54,确定接收的SQL语句包含的数据库操作命令,其中该数据库操作命令表征针对关系型数据的操作类型;
其中,针对关系型数据的操作类型包括:对关系型数据的写数据操作和读数据操作。
步骤55,根据预先设置的操作类型与本地关系型数据库节点集群包含的不同类型的数据库节点的对应关系,确定上述SQL语句包含的数据库操作命令表征的操作类型所对应的数据库节点;
其中,本地关系型数据库节点集群包含至少1个双子树数据库节点单元,该单元包括:2个主数据库节点和4个从数据库节点;1个主数据库节点对应2个从数据库节点,不同主数据库节点对应不同的从数据库节点,主、从数据库节点分别对应于针对数据库的不同操作类型,且从数据库节点中备份有相应的主数据库节点中存储的数据。
上述对应关系可以为:写数据操作对应主数据库节点;读数据操作对应从数据库节点。
可选的,本发明实施例中,不同主数据库节点之间通过心跳连接监控彼此状态,以及主数据库节点通过其与相应的从数据库节点之间的心跳连接监控从数据库节点的状态;
当有主数据库节点通过与其他主数据库节点之间的心跳连接,监控到有主数据库节点发生故障时,会向数据库代理模块发送节点故障消息,该节点故障消息用于表示主数据库节点发生故障,此时,数据库代理模块通知与发生故障的主数据库节点之间建立有心跳连接的其他主数据库节点,根据全量更新方式将自身存储的关系型数据同步到新增的主数据库节点中;
当有主数据库节点通过与其对应的从数据库节点之间的心跳连接,监控到有从数据库节点发生故障时,会向数据库代理模块发送节点故障消息,该节点故障消息用于表示从数据库节点发生故障,此时,数据库代理模块通知发生故障的从数据库节点对应的主数据库节点,根据全量更新方式将自身存储的关系型数据同步到新增的从数据库节点中。
在本发明实施例中,为了应对单点故障以及满足不同开发者的大量并发请求,我们针对本地关系型数据库节点集群采用的拓扑模型是Dual Tree双子树模型,即上述双子树数据库节点单元中所设定的结构。如图6所示,2个主数据库节点构成环路,同时,1个主数据库节点Master对应2个从数据库节点Slave,不同主数据库节点对应不同的从数据库节点,且从数据库节点中备份有与之对应的主数据库节点中存储的关系型数据。上述这种结构中的关系型数据库节点为本发明实施例中可实现的最小的本地关系型数据库节点集群,云计算运行引擎关系型数据库集群是以这个基本单元进行扩展,本地的关系型数据库节点集群可看做是云计算关系型数据库集群的本地模拟,可选的,本地关系型数据库节点集群中的主从数据库节点的数量可以依据开发者的需求自主设定。
步骤56,根据本地关系型数据库节点集群包含的各数据库节点上报的表征其负载的性能指标数据,以及预先为不同性能指标分别分配的权值,分别确定各数据库节点的负载情况;
步骤57,比较上述确定的各数据库节点的负载情况,针对数据库操作命令表征的操作类型对应主(从)数据库节点时,若仅具有一个负载最小的主(从)数据库节点,则执行步骤58;若具有最小负载的主(从)数据库节点有多个,则执行步骤59。
步骤58,根据确定的主(从)数据库节点的负载情况,将相应的数据库操作命令发送给具有最小负载的主(从)数据库节点执行。流程结束。
步骤59,按照轮询机制,将相应的数据库操作命令发送给具有最小负载的主(从)数据库节点中的一个主(从)数据库节点执行。流程结束。
在本发明实施例中,当开发者同时开发调试多个应用程序,且多个应用程序存在关联时,我们本地模拟的关系型数据库还可以具有以下功能:
在本地模拟的关系型数据库中建立专门的数据表,用于存储每个应用程序与使用本数据库的对应关系;当接收到本地开发引擎发送的SQL语句时,可以在对该SQL语句包含的操作命令进行操作类型判断的同时,查询预先设置的存储着每个应用程序与使用本数据库的对应关系的数据表,如果数据库没有授权给该应用程序,则拒绝执行接收到的SQL语句并返回错误代码。
由于云计算引擎平台提供的云计算关系型数据库是我们本地模拟的目标数据库,它可以是MySQL等典型的关系型数据库,支持SQL92标准,支持关系型数据库的基本操作,所以本发明实施例中,主数据库节点和从数据库节点可以是MySQL等典型的关系型数据库,支持SQL92标准,支持关系型数据库的基本操作,完全模拟了云计算关系型数据库的特点。
在本发明实施例中,开发者可以基于本地开发引擎实现对云计算关系型数据库的数据的查询、同步以及导入导出功能,并将导出的数据进行备份存放在本地,这样使开发者在开发调试应用程序时更加灵活,离线时也可以继续开发应用程序,同时对开发数据在本地保留副本,有效的防止数据丢失。开发者还可以将第三方数据库导出的数据文件导入本地模拟的关系型数据库中;同样。本地模拟的关系型数据库中的数据文件也能导入第三方数据库中,已达到不同数据库间的数据还原。如图7所示,为基于本地开发引擎实现本地关系型数据库与云计算引擎平台中的关系型数据库交互的流程示意图,具体方式为:
1、开发者通过本地开发引擎发起连接云计算关系型数据库请求,基于WebService技术调用认证用户应用AuthUserAPP方法,并传入开发者身份信息UserID,应用程序APPID等参数到该函数方法中。
其中,上述的开发者身份信息UserID和应用程序APPID是指,当开发者通过云计算运行引擎平台申请注册账户后为开发者分配一个UserID,用于标识开发者身份信息,同时当申请开发新的应用程序时,云计算运行引擎平台会为该应用程序分配一个APPID,用于唯一标识这个应用程序。
上述的WebService技术可以采用Axis框架,WebService技术是基于http协议公开的服务接口,远程客户端就可以调用服务。Axis(Apache Xtensible Interaction System)是一种开源的WebService框架,它是SOAP协议的一个实现。
2、云计算运行引擎平台执行AuthUserAPP方法并查询云计算关系型数据库,对UserID、APPID进行鉴权分析,如果开发者身份和应用程序合法,在数据库中有对应合法记录,则返回相应代码0给开发者;反之,返回代码1。
如果本地开发引擎接收相应代码0,可以继续进行查看、同步云计算数据或云计算数据导出的操作。
3、当本地开发引擎发起查看云计算数据请求,调用云计算运行引擎平台的WebService接口SearchData方法,并传入查询的SQL语句字符串等参数到该函数方法中。
4、云计算运行引擎平台首先对接收的SQL语句进行语法安全性检查,如果合法,则在云计算关系型数据库中执行SQL语句,并将返回的数据结果转换为JSON格式发送给调用者;如果不合法,则云计算关系型数据库不执行SQL语句,并返回错误消息给调用者。
其中,JSON是一种文本格式,独立于语言。它采用的数据结构是(名:值)对集合,是一个有序表,通常实现为数组。
需要说明的是,云计算关系型数据库返回JSON格式的查询数据,此处还可以选择以其他格式将查询数据返回。本发明实施例中,之所以选择JSON这种轻量级的数据交换格式,主要因为JSON的优势在于格式简洁短小,生成后的数据大小改变不大,且易于处理,在网络上传输冗余数据少。
5、当本地开发引擎发起同步云计算数据请求,本地开发引擎首先读取本地模拟的关系型数据库,对需要同步的数据及云计算关系型目标数据库标识信息形成一个SQL脚本文件,调用云计算运行引擎平台的WebService接口SyncData方法,并将同步数据的SQL脚本文件作为数据流参数发送给云计算运行引擎平台。
6、云计算运行引擎平台首先对接收的SQL脚本文件进行语法安全性检查,如果合法,则在云计算关系型数据库执行该同步数据的SQL脚本文件,并将同步云计算数据的结果返回给调用者;如果不合法,则云计算关系型数据库不执行SQL脚本文件,并返回错误消息给调用者。
7、当本地开发引擎发起导出云计算数据请求,本地开发引擎首先根据导出数据库选项形成SQL脚本文件,调用云计算运行引擎平台的WebService接口ExportData方法,并将导出数据的SQL脚本文件作为数据流参数发送给云计算运行引擎平台。
8、云计算运行引擎平台首先对接收的SQL脚本文件进行语法安全性检查,如果合法,则在云计算关系型数据库执行该导出数据的SQL脚本文件,并将云计算RDS导出的数据形成SQL脚本文件返回给调用者;如果不合法,则云计算关系型数据库不执行该SQL脚本文件,并返回错误消息给调用者。
相应的,本发明实施例还提供一种基于云计算平台的本地关系型数据库节点的调度装置,如图8所示,为一种关系型数据库节点的调度装置的结构示意图,包括:
第一接收单元81,用于接收本地开发引擎在调试应用程序时发送的SQL语句,并确定该SQL语句包含的数据库操作命令,上述数据库操作命令表征针对关系型数据的操作类型;
确定单元82,用于根据预先设置的操作类型与本地关系型数据库节点集群包含的不同类型的数据库节点的对应关系,确定上述数据库操作命令表征的操作类型所对应的数据库节点;
调度单元83,用于将SQL语句包含的数据库操作命令发送给确定的数据库节点执行;
其中,本地关系型数据库节点集群包含至少1个双子树数据库节点单元,该单元包括:2个主数据库节点和4个从数据库节点;1个主数据库节点对应2个从数据库节点,不同主数据库节点对应不同的从数据库节点,主、从数据库节点分别对应于针对数据库的不同操作类型,且从数据库节点中备份有相应的主数据库节点中存储的关系型数据。
可选的,不同主数据库节点之间通过心跳连接监控彼此状态,主数据库节点通过其与相应的从数据库节点之间的心跳连接监控从数据库节点的状态,在该场景下,该装置还可以包括:
第二接收单元,用于接收节点故障消息;
通知单元,用于当节点故障消息用于表示主数据库节点发生故障时,通知与发生故障的主数据库节点之间建立有心跳连接的其他主数据库节点,根据全量更新方式将自身存储的关系型数据同步到新增的主数据库节点中;其中,节点故障消息是:发送节点故障消息的主数据库节点通过与其他主数据库节点之间的心跳连接,监控到有主数据库节点发生故障后发送的;
通知单元,还用于当节点故障消息用于表示从数据库节点发生故障时,通知发生故障的从数据库节点对应的主数据库节点,根据全量更新方式将自身存储的关系型数据同步到新增的从数据库节点中;其中,节点故障消息是:发送节点故障消息的主数据库节点通过与其对应的从数据库节点之间的心跳连接,监控到有从数据库节点发生故障后发送的。
可选的,该装置还可以包括:
判断单元,用于判断SQL语句是否包含恶意攻击内容和错误语法内容;
其中,恶意攻击内容包括:口令入侵、特权提升、漏洞入侵、SQL注入、窃取备份中的一项或多项内容;而判断SQL语句是否包含错误语法内容具体为:判断SQL语句是否符合SQL语法标准;则
确定单元82,具体用于在判断结果为否时,根据预先设置的操作类型与本地关系型数据库节点集群包含的不同类型的数据库节点的对应关系,确定所述数据库操作命令表征的操作类型所对应的数据库节点。
可选的,该装置还可以包括:
负载单元,用于根据本地关系型数据库节点集群包含的各数据库节点上报的表征其负载的性能指标数据,以及预先为不同性能指标分别分配的权值,分别确定各数据库节点的负载情况;
当数据库操作命令表征的操作类型对应主数据库节点时,调度单元83具体用于根据主数据库节点的负载情况,将相应的数据库操作命令发送给具有最小负载的主数据库节点执行;
若具有最小负载的主数据库节点有多个,调度单元83具体用于按照轮询机制,将相应的数据库操作命令发送给具有最小负载的主数据库节点中的一个主数据库节点执行。
当数据库操作命令表征的操作类型对应从数据库节点时,调度单元83具体用于根据从数据库节点的负载情况,将相应的数据库操作命令发送给具有最小负载的从数据库节点执行;
若具有最小负载的从数据库节点有多个,调度单元83具体用于按照轮询机制,将相应的数据库操作命令发送给具有最小负载的从数据库节点中的一个从数据库节点执行。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (14)
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所述的装置,其特征在于,若具有最小负载的从数据库节点有多个;则
调度模块,具体用于按照轮询机制,将相应的数据库操作命令发送给具有最小负载的从数据库节点中的一个从数据库节点执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210335667.8A CN103678354B (zh) | 2012-09-11 | 2012-09-11 | 基于云计算平台的本地关系型数据库节点调度方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210335667.8A CN103678354B (zh) | 2012-09-11 | 2012-09-11 | 基于云计算平台的本地关系型数据库节点调度方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103678354A CN103678354A (zh) | 2014-03-26 |
CN103678354B true CN103678354B (zh) | 2017-05-03 |
Family
ID=50315947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210335667.8A Active CN103678354B (zh) | 2012-09-11 | 2012-09-11 | 基于云计算平台的本地关系型数据库节点调度方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103678354B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106326226B (zh) * | 2015-06-16 | 2019-05-07 | 苏宁易购集团股份有限公司 | 一种公有云上启动数据库服务的方法及系统 |
CN105005736A (zh) * | 2015-07-20 | 2015-10-28 | 福建工程学院 | 一种体域网的sql注入攻击的检测方法及系统 |
CN105989270B (zh) * | 2015-09-25 | 2018-11-30 | 武汉安天信息技术有限责任公司 | 一种基于云计算的安卓平台下的数据库的安全防护方法及系统 |
CN105824866A (zh) * | 2015-12-14 | 2016-08-03 | 广东亿迅科技有限公司 | 一种基于nio实现分布式的关系数据库共享型连接池 |
CN105631028B (zh) * | 2015-12-30 | 2020-09-18 | 中国农业银行股份有限公司 | 一种数据库集群功能实现方法和系统 |
CN107122362A (zh) * | 2016-02-24 | 2017-09-01 | 南京中兴新软件有限责任公司 | 云数据库资源扩展和服务扩展的方法和系统 |
CN106372115A (zh) * | 2016-08-23 | 2017-02-01 | 成都乾威科技有限公司 | 一种数据读写方法、系统及数据库系统 |
CN107704555B (zh) * | 2017-09-28 | 2019-04-30 | 山东九州信泰信息科技股份有限公司 | 云计算环境下对导航数据使用嵌入式数据库存储的方法 |
CN110019346A (zh) * | 2017-12-29 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 一种基于双主数据库的数据处理方法和装置 |
CN109189611A (zh) * | 2018-08-23 | 2019-01-11 | 四川精容数安科技有限公司 | 一种数据备份和恢复的方法、装置及系统 |
CN109858817A (zh) * | 2019-02-03 | 2019-06-07 | 北京奇艺世纪科技有限公司 | 一种工作流管理系统及方法 |
CN109992695B (zh) * | 2019-04-10 | 2021-08-27 | 北京奇艺世纪科技有限公司 | 一种视频信息查询方法及装置 |
CN111862966A (zh) * | 2019-08-22 | 2020-10-30 | 马上消费金融股份有限公司 | 智能语音交互方法以及相关装置 |
CN111651758B (zh) * | 2020-06-08 | 2022-11-22 | 成都安恒信息技术有限公司 | 一种运维审计系统关系型数据库结果集审计的方法 |
CN111897872A (zh) * | 2020-07-03 | 2020-11-06 | 杭州浮云网络科技有限公司 | 基于服务中心的大规模mssql管理方法、系统和计算机设备 |
CN112506888A (zh) * | 2020-12-29 | 2021-03-16 | 浪潮云信息技术股份公司 | 基于hdfs不同数据源的数据处理方法 |
CN113419484B (zh) * | 2021-08-06 | 2024-04-26 | 戴云 | 一种云可编程控制器的操作方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101453416A (zh) * | 2007-11-30 | 2009-06-10 | 国际商业机器公司 | 用于远程程序安装的包预取的服务节点、网络及其方法 |
CN101980213B (zh) * | 2010-11-23 | 2012-09-19 | 中国科学院软件研究所 | 一种基于j2ee的数据持久化方法及系统 |
CN102158540A (zh) * | 2011-02-18 | 2011-08-17 | 广州从兴电子开发有限公司 | 分布式数据库实现系统及方法 |
CN102385628B (zh) * | 2011-11-14 | 2015-05-13 | 北京锐安科技有限公司 | 一种基于jdbc的数据分布式处理方法 |
-
2012
- 2012-09-11 CN CN201210335667.8A patent/CN103678354B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN103678354A (zh) | 2014-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103678354B (zh) | 基于云计算平台的本地关系型数据库节点调度方法和装置 | |
US10761913B2 (en) | System and method for real-time asynchronous multitenant gateway security | |
CN113805867B (zh) | 一种基于可视化静态脚本引擎的物联网平台 | |
CN105610987B (zh) | 管理服务器集群的方法、应用及系统 | |
CN106127036B (zh) | 持续性和弹性的工作者进程 | |
CN109559583B (zh) | 故障模拟方法及其装置 | |
CN104821954B (zh) | 一种跨平台远程过程调用方法 | |
CN105589697B (zh) | 一种云平台的升级方法及装置 | |
US10169203B2 (en) | Test simulation for software defined networking environments | |
CN102880546A (zh) | 一种基于xml数据库的软件集成测试方法及系统 | |
US7984332B2 (en) | Distributed system checker | |
CN110442041B (zh) | 一种基于异构云计算框架的仿真平台构建方法及仿真系统 | |
CN110995511A (zh) | 基于微服务架构的云计算运维管理方法、装置和终端设备 | |
CN103458020B (zh) | 一种基于xcp的云平台的监控方法及系统 | |
CN109460223A (zh) | 一种api网关管理系统及其方法 | |
CN111191226A (zh) | 利用提权漏洞的程序的确定方法、装置、设备及存储介质 | |
CN106406975A (zh) | 桌面云系统的测试方法及装置 | |
CN113961245A (zh) | 一种基于微服务应用的安全防护系统、方法及介质 | |
CN103677983B (zh) | 应用的调度方法及装置 | |
CN115328752B (zh) | 一种用于Kubernetes控制面测试的集群模拟方法及系统 | |
CN110221949A (zh) | 自动化运维管理方法、装置、设备及可读存储介质 | |
CN112948063A (zh) | 云平台的创建方法、装置、云平台以及云平台实现系统 | |
CN107168844B (zh) | 一种性能监控的方法及装置 | |
CN110673993A (zh) | 一种故障注入方法、平台及系统 | |
CN111651121A (zh) | 数据逻辑计算方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |