基于批处理请求的Microsoft SQL Server数据库集群制造技术

技术编号:6878050 阅读:445 留言:0更新日期:2012-04-11 18:40
本发明专利技术实现一种基于批处理请求的Microsoft?SQL?Server数据库集群。集群有两部分组成,前端是网关及其备份,后端是两个或多个数据库服务器节点。每个节点上安装了SQL?Server实例和集群代理,无共享磁盘结构,各节点具有独立且一致的数据集,集群中有且只有一台主机。网关负责管理整个集群,对于每个客户端连接,网关会同时打开与每个节点对应的数据库连接,此后网关接收并分析、优化所有客户请求,客户请求被分成两类:只读查询和数据更新,对于只读查询,网关按设定的负载均衡算法将该请求发送到任一节点上执行,从而实现真正的数据库访问负载均衡,提高系统性能;对于更新请求,则被发送到集群的主机执行,由主机负责同步数据到其它节点,从而保持各节点数据集实时一致,消除单点故障源,实现系统容错。整个集群能显著提高系统性能、可用性和可靠性,解决数据库领域一直存在的性能、单点故障、零数据丢失等多种棘手问题,是一个综合的数据库集群方案。

【技术实现步骤摘要】

本专利技术涉及的是数据库集群领域,具体涉及的是一种基于客户端批处理请求,具有容错、负载均衡和自动优化三大功能的Microsoft SQL krver数据库集群的方法。
技术介绍
数据库系统是信息系统的核心,在数据库集群领域,当前市场上存在这么几种解决方案异步复制、故障转移集群和Oracle的应用级集群(RAC),但是这些方案无法在数据可靠性、系统性能和系统可用性等三方面取得同步进展。异步数据复制有事务复制、镜像、快照以及第三方的数据复制技术,这些技术缩短了数据更新的时间间隔,但是在可靠性方面存在一定缺陷,不具备负载均衡特征,对系统整体性能的提升没有丝毫的帮助,反而会给系统带来一定的性能开销。微软SQL krver数据库自带的故障转移集群,它是建立在Windows系统的故障转移集群基础上,功能与市场上很多第三方的数据库双机容错方案类似,只提供系统可用性,对提高系统性能和可靠性没有帮助,同时还会带来硬件资源的浪费。Oracle的应用级集群(RAC)虽然提高了系统性能,但是也存在配置、维护复杂, 单点故障源,以及1/0瓶颈等问题。那么能否实现一种真正意义上的数据库集群方案,使得在系统可靠性、性能和可用性方面同时得到提升?由于微软Windows平台和SQL krver数据库的广泛普及,因此本专利技术首先是在微软的SQL krver数据库上实现的。
技术实现思路

技术实现思路
提供一种实现基于客户端批处理请求,具有容错、负载均衡和自动优化三大功能的Microsoft SQL krver数据库集群的方法,具体实现内容是集群有两部分组成,前端是网关及其备份,后端是两个或多个数据库服务器节点,每个节点上安装了 SQL Server实例和集群代理,无共享磁盘结构,各节点具有独立且一致的数据集,集群中有且只有一台主机,网关负责管理整个集群,在主网关失效时集群会自动启动备份网关,对于每个客户端连接,网关会同时打开对应的与每个节点的数据库连接,此后网关接收并分析、优化所有来自客户端的访问,客户请求被分成两类只读查询和数据更新,对于只读查询,网关按设定的负载均衡算法将该请求发送到任一节点上执行,从而实现真正的数据库访问负载均衡,对于更新请求,则被发送到集群的主机执行,由主机上的集群代理负责同步数据到其它节点,从而保持各节点数据集实时一致,消除单点故障源,实现系统容错,具体操作步骤如下当客户端发起数据库登录请求时,网关会同时登录到集群中的每个数据库节点,针对此后每个批处理请求,网关会自动进行语法分析和优化,判断出此请求是只读查询还是更新(插入、修改和删除)请求,如果是只读查询请求,网关会根据一定的算法,挑选其中一台数据库服务器执行这个请求,如果是更新(插入、修改和删除)请求,则将此请求发送到4主机,主机在完成数据更新的同时由主机上的集群代理实时同步数据或SQL操作到各个从机,从而保持主从节点上各数据集实时一致,集群运行过程中始终有且只有一台主机,在主机失效的情况下,集群网关会在剩下的节点中挑选出另外一台机器重新作为主机。批处理请求是指来自数据库客户端的一次请求,该请求可能是普通的SQL批处理,也可能是二进制形式的,也可能是二进制形式的多个批处理请求的复合。网关是指一种独立的程序软件,是整个集群的核心部件,它负责管理整个集群,并且对每个客户端的请求进行分析并作出负载均衡或同步更新决定,同时网关还具有自动检测、分析并优化客户SQL语句的功能。各个节点具有独立且一致的数据集,是指各数据库成员的数据存放在本地存储设备上,彼此的数据是不共享的,即使在共享物理磁盘架构下也有同样的要求,并且各用户数据库的目录路径要求一致,从而真正实现了冗余。集群运行中始终有且只有一台数据库服务器作为主机,主机负责同步数据到各个从机,从而实时保持各数据库成员的数据集一致,是指主机上的代理程序,它运行在SQL Server进程空间内,分析和处理插入,修改和删除操作,将该操作或者变化了的数据实时同步到各个从机,从而保证集群节点上的每个数据集在任意时间点是完全一样的。对于每个客户端的登录请求,网关都是同时打开与各个数据库的连接并且登录数据库,为接下来的基于批处理请求的负载均衡作好连接准备。网关会自动进行语法分析和优化,是指对客户请求进行检查,并优化,以提高单个请求的执行效率,同时也通过负载均衡来提高整个系统的运行性能,负载均衡算法是指顺序轮流算法或者综合各集群节点的网络响应时间和CPU利用率等参数的动态负载算法。附图说明附图为本专利技术集群工作原理示意图。 具体实施例方式参照附图对本专利技术的方法做如下详细说明。集群中始终存在唯一的主机,每个集群节点都有自己独立但彼此一致的数据集, 代理宿主在SQL Server进程空间内,对于每个客户端连接,网关相应打开与每个节点的数据库连接,此后网关开始接收所有的客户端请求,在对请求分析优化后,请求被分成两类 一类是只读查询请求,另一类是数据更新(插入、修改、删除)请求。对于只读查询请求,网关根据一定的负载均衡算法,将该请求发送到其中一个节点上执行,对于更新请求,网关将该请求发送到主机执行,主机在执行数据更新的同时,由主机上的代理程序将把变化部分的数据同步到各个从机上,由于客户端的数据库更新事务和代理的同步事务同处一个分布式事务,借助微软分布式事务处理协调器的控制,这两个事务被绑定成为一个原子操作,从而保证每个节点的数据集在任意时刻都是一致的,从而为负载均衡奠定前提条件。具体实施步骤如下1)在包括主数据库和从数据库的所有节点上安装相同版本和相同补丁包的Windows 操作系统和SQL krver数据库,并安装本专利技术的集群代理,并且初始化每个节点。2)在独立的机器上安装集群网关(也可以安装在集群的数据库节点上,这样可以节省硬件资源,具体依实际情况而定),并且配置好集群成员的IP地址,端口号等必要信肩、ο3)配置好集群各节点的微软分布式事务处理协调器,同时把各集群节点的数据库证书导入到网关机器。4)启动网关,客户端通过网关访问集群,验证对客户端无缝、透明连接,也就是二进制兼容。5)验证数据同步和负载均衡功能。权利要求1.一种基于批处理请求的Microsoft SQL krver数据库集群,其特征在于,集群有两部分组成,前端是网关及其备份,后端是两个或多个数据库服务器节点,每个节点上安装了 SQL Server实例和集群代理,无共享磁盘结构,各节点具有独立且一致的数据集,集群中有且只有一台主机,网关负责管理整个集群,在主网关失效时集群会自动启动备份网关,对于每个客户端连接,网关会同时打开对应的与每个节点的数据库连接,此后网关接收并分析、 优化所有来自客户端的访问,客户请求被分成两类只读查询和数据更新,对于只读查询, 网关按设定的负载均衡算法将该请求发送到任一节点上执行,从而实现真正的数据库访问负载均衡,对于更新请求,则被发送到集群的主机执行,由主机上的集群代理负责同步数据到其它节点,从而保持各节点数据集实时一致,消除单点故障源,实现系统容错,具体操作步骤如下当客户端发起数据库登录请求时,网关会同时登录到集群中的每个数据库节点,针对此后每个批处理请求,网关会自动进行语法分析和优化,判断出此请求是只读查询还是更新(插入、修改和删除)请求,如果是只本文档来自技高网...

【技术保护点】
1.一种基于批处理请求的Microsoft SQL Server数据库集群,其特征在于,集群有两部分组成,前端是网关及其备份,后端是两个或多个数据库服务器节点,每个节点上安装了SQL Server实例和集群代理,无共享磁盘结构,各节点具有独立且一致的数据集,集群中有且只有一台主机,网关负责管理整个集群,在主网关失效时集群会自动启动备份网关,对于每个客户端连接,网关会同时打开对应的与每个节点的数据库连接,此后网关接收并分析、优化所有来自客户端的访问,客户请求被分成两类:只读查询和数据更新,对于只读查询,网关按设定的负载均衡算法将该请求发送到任一节点上执行,从而实现真正的数据库访问负载均衡,对于更新请求,则被发送到集群的主机执行,由主机上的集群代理负责同步数据到其它节点,从而保持各节点数据集实时一致,消除单点故障源,实现系统容错,具体操作步骤如下:当客户端发起数据库登录请求时,网关会同时登录到集群中的每个数据库节点,针对此后每个批处理请求,网关会自动进行语法分析和优化,判断出此请求是只读查询还是更新(插入、修改和删除)请求,如果是只读查询请求,网关会根据一定的算法,挑选其中一台数据库服务器执行这个请求,如果是更新(插入、修改和删除)请求,则将此请求发送到主机,主机在完成数据更新的同时由主机上的集群代理实时同步数据或SQL操作到各个从机,从而保持主从节点上各数据集实时一致,集群运行过程中始终有且只有一台主机,在主机失效的情况下,集群网关会在剩下的节点中挑选出另外一台机器重新作为主机。...

【技术特征摘要】

【专利技术属性】
技术研发人员:沈新国
申请(专利权)人:无锡浙潮科技有限公司
类型:发明
国别省市:32

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1