Molet

两类数据库负载均衡的介绍

Molet 运维技术 2022-11-16 429浏览 0

负载均衡可以用来控制网络流量,分配IP,管理域名,还可以进行服务器规划和数据库负载均衡处理。那么我们就来对数据库负载均衡问题进行一个简单的介绍。对数据库熟悉的朋友们应该都知道Oracle和SQL Server,这两个软件也是我们重点介绍的对象。

对于应用系统的负载均衡的硬件和软件比比皆是,因为应用服务器上的程序基本上认为是不变化的,而且一般的各个应用服务器上的程序是不交互的。因此应用服务器的负载均衡非常好做,只需要能够进行分流的软件或者硬件把多个客户端的连接分配到多个应用服务器上去即可。

因为数据库内的数据是频繁变化的,为了数据的一致性以及锁资源的分配协调等,所以像应用服务器那样只有分流是不够的,各个节点需要频繁的交互。这也是数据库集群软件难做的原因,当然也是卖的贵的原因了。

Oracle Real Application Clusters

对于数据库负载均衡,大家最为耳熟能详的就是Oracle RAC了。RAC是双机并行服务器(8i及以前版本称作Oracle Parallel Server,OPS),用来在集群环境下实现多机共享数据库,以保证应用的高可用性,同时可以自动实现并行处理及均分负载,还能实现数据库在故障时的排错和无断点恢复。它可以自动进行数据库负载均衡、故障修复和规划停机时间,以支持高可用性应用程序。若并行服务器中某节点失效,透明的应用程序容错能够把用户自动转接到另一节点上继续运行,应用程序在用户没有察觉的情况下继续执行。这使周期性和非周期性发生故障的系统增大了连续可用性。进程的失效可以完全透明地转移到另一节点上去,通过适当地配置,可以指定所有查询都在客户端进行缓存,这样它们便可以在转移后的节点上重新设置。

两类数据库负载均衡的介绍

Moebius for SQL Server

截至到SQL Server 2008,微软还是没有推出数据库负载均衡组件,只能靠第三方软件来实现,好在这个软件是几个从微软出来的人写的,也算是个小小的巧合。说他们是微软出来的并不是说他们的技术多厉害,而是他们利用SQL Server的一些内部接口把集群做的非常透明, 无论是应用程序的调用还是开发/管理人员的使用都和面对一个数据库一样。

他们的实现原理是这样的:和SQL Server镜像一样,每个数据库节点都有自己的数据,也就是无共享磁盘架构。他们称之为“中间件"的程序宿主在数据库的内部,每个节点数据库上写入数据导致数据变化时,SQL Server会激活“中间件",“中间件"把变化的数据同步到其他的节点上。其他节点发生变化也是一样。因为“中间件"宿主在数据库内, 所以它能够把每个同步的Session和SQL Server的Session绑定到一起,也就是使用户的执行和数据的同步成为一个原子操作,从而保证数据在每时每刻都是一致的。因此查询可以随便到每个机器上去查,从而做到了真正的数据库负载均衡。

两类数据库负载均衡的介绍

继续浏览有关 网络 的文章
发表评论