对长期开发.net的Programmer来说,MSSQLServer是再熟悉不过的,对于大访问量来说,Microsoft本身一直没有提出很好的解决办法,我们通常都依赖于第三方的解决方案(该方案是付费的):Moebius( For SQL),这个东西做的还是比较专业的,可以实现数据库的负载均衡,读写分离,双机备用,灾备,集群的同步也可以有实时同步和准实时同步等。

    

Moebius概念

数据库集群技术可以有效地整合和利用现有 IT 资源,提供高效、可靠的数据服务。Moebius® for SQL Server 是格瑞趋势专门针对 Microsoft SQL Server 数据库提供的综合集群平台,利用这一平台,任何企业都能够轻松地构建出适合自身业务的数据库集群,满足用户对负载均衡、可用性、数据安全、扩展性的需要。 Moebius® for SQL Server 基于 SQL Server 的内核实现,核心程序宿主在SQL Server 的内核之中, Moebius 集群强大的 SQL 解析引擎结合多种负载均衡策略,可以实现SQL 语句一级的负载均衡;同时将自动故障监测、虚拟 IP 及失败转移技术融入其中,满足企业对高可用系统建设的要求;数据复制时,采用了同步和异步两种复制模式,可实现数据在多台服务器间实时同步,保证事务的一致性和完整性,支持远距离复制; Moebius 集群具有带宽占用少、同步效率高、数据实时性高、数据一致性保障好的特点。

Moebius集群的组成

Moebius 集群平台软件由 3 部分组成:Moebius 集群配置管理器、Moebius for SQL Server Agent, Moebius Core

Moebius的集群架构图

当VIP所在服务器出现问题后,VIP会通过仲裁文件自动进行漂移

 

 

架构原理

负载均衡集群是由一组相互独立的计算机系统构成,通过常规网络或专用网络进行连接,由路由器衔接在一起,各节点相互协作、共同负载、均衡压力,对客户端来说,整个群集可以视为一台具有超高性能的独立服务器。

1、实现原理
实现数据库的负载均衡技术,首先要有一个可以控制连接数据库的控制端。在这里,它截断了数据库和程序的直接连接,由所有的程序来访问这个中间层,然后再由中间层来访问数据库。这样,我们就可以具体控制访问某个数据库了,然后还可以根据数据库的当前负载采取有效的均衡策略,来调整每次连接到哪个数据库。

2、实现多据库数据同步
对于负载均衡,最重要的就是所有服务器的数据都是实时同步的。这是一个集群所必需的,因为,如果数不据实时、不同步,那么用户从一台服务器读出的数据,就有别于从另一台服务器读出的数据,这是不能允许的。所以必须实现数据库的数据同步。这样,在查询的时候就可以有多个资源,实现均衡。比较常用的方法是Moebius for SQL Server集群,Moebius for SQL Server集群采用将核心程序驻留在每个机器的数据库中的办法,这个核心程序称为Moebius for SQL Server 中间件,主要作用是监测数据库内数据的变化并将变化的数据同步到其他数据库中。数据同步完成后客户端才会得到响应,同步过程是并发完成的,所以同步到多个数据库和同步到一个数据库的时间基本相等;另外同步的过程是在事务的环境下完成的,保证了多份数据在任何时刻数据的一致性。正因为Moebius 中间件宿主在数据库中的创新,让中间件不但能知道数据的变化,而且知道引起数据变化的SQL语句,根据SQL语句的类型智能的采取不同的数据同步的策略以保证数据同步成本的最小化。

3、优缺点

  优点:
  (1) 扩展性强:当系统要更高数据库处理速度时,只要简单地增加数据库服务器就 可以得到扩展。
  (2) 可维护性:当某节点发生故障时,系统会自动检测故障并转移故障节点的应用,保证数据库的持续工作。
  (3) 安全性:因为数据会同步的多台服务器上,可以实现数据集的冗余,通过多份数据来保证安全性。

       另外它成功地将数据库放到了内网之中,更好地保护了数据库的安全性。
  (4) 易用性:对应用来说完全透明,集群暴露出来的就是一个IP

  缺点:

  (1) 不能够按照Web服务器的处理能力分配负载。
  (2) 负载均衡器(控制端)故障,会导致整个数据库系统瘫痪。

 

二、安装与配置

Moebius的安装非常简便,在装有SQL Server引擎的服务器上直接点击安装包进行安装,安装过程中一直下一步即可(如下图)。

 

配置环境如下图所示:

 

 

三、测试结果

通过对Moebius的简单测试来看,Moebius的确实现了对SQL Server的负载均衡、高可用以及保证数据的安全。

对于国内能够有公司实现类似Oracle RAC这样的负载均衡方案还是非常优秀的,由于环境有限,未能在复杂的环境

下进行测试,如果能够在大数据的环境以及多机的集群环境下还能够稳定运行,那应该算是不错的解决方案了。

 

附上Moebius详细文档连接,有需要的可以参考:

http://wenku.baidu.com/view/383b2f83b9d528ea81c7797d.html?re=view

 

posted on 2016-05-04 15:51  天一直很蓝  阅读(1817)  评论(0编辑  收藏  举报