集群CLUSTER种类介绍

基于iSCSI的SQL Server 2012群集测试(一)–SQL群集安装

 SQL Server群集如何在线检测

群集中的MS DTC分布式事务协调器

一、SQL Server群集基本架构

无论群集还是非群集SQL Server服务器,都是需要有以下基本组成部分才能提供数据服务:

SQL Server实例,也可以认为是SQL Server二进制可执行文件,它组成数据库管理系统运行的各个服务,管理数据库数据和客户端的需求,执行操作等。不管是群集还是非群集这些实例都是安装在本地磁盘上,以提供服务,因此在安装SQL Server群集不仅在活动节点安装主SQL Server群集,还要在不同节点添加群集服务。
系统和用户数据库,包含实实在在的数据,以及各个数据库单独的设置等;非群集下,数据存储在本地,被本地实例访问;群集情况下,数据库放在共享存储上,每个节点都有能力访问到(但任何时候只允许活动节点访问);SQL Server实例通过挂载数据库来完成数据库管理。
访问数据库还需要服务器网络名,或者IP地址。本地采用本地IP或者别名,群集访问虚拟名称或虚拟IP。

SQL Server群集知识介绍-冯金伟博客园

Figure 1.1 SQL Server群集基本架构

 

通过以上群集服务器的改变,SQL Server服务故障转移到另外一个节点前首先停止失败节点的SQL Server服务,共享存储挂载到备节点,虚拟IP重新绑定到备节点的公共网卡接口,再启动备节点的SQL Server服务,备节点的服务读取共享存储数据,从而业务恢复。客户端只是通过虚拟名称或虚拟IP访问SQL Server服务,从而访问数据库资源。

Windows群集方式有多种,在多种凡是的基础上,SQL Server群集实例安装也有多种方式,不同业务可选择不同方式安装,在以安全和稳定的基础上可尽量的利用服务器资源。

SQL Server群集知识介绍-冯金伟博客园

二、SQL Server群集资源与依赖关系

在dos界面输入cluster res 可查看Cluster群集资源有哪些,如下图所示为Windows群集的资源,哪些资源为SQL Server群集服务呢?

SQL Server群集知识介绍-冯金伟博客园

2.1 共享存储

存储系统和用户数据库,数据库错误日志。tempdb可不存储在共享存储上,由于重启服务时,tempdb会从新生成。然而要求不同节点都拥有tempdb的存放路径。以防止重启出现路径不存在异常。

存储一直都是计算机界的一个瓶颈,对IO读写要求高的数据库此瓶颈尤为明显,因此在访问频繁的数据库建议使用Raid10以提高磁盘性能。

2.2 群集组

群机组中有Windows群集的虚拟网络名称和Ip,用于管理Windows群集。平常情况下,不管是心跳检测还是服务检测,都是节点网络之间通信,很少涉及访问域的情况,但若是发生故障转移,需要验证各个群集节点,涉及到域服务器。

2.3 SQL Server群集虚拟IP和虚拟网络名称

SQL Server IP地址和网络名称,为客户端提供链接。网络名称名称指向虚拟IP地址,SQL Server访问网络名称。

SQL Server网络名称对于跨子网群集同样存在是否所有IP都注册上线问题,通过测试确定是不需要都注册上线。需要将RegisterAllProvidersIP 设置为0:cluster res “SQL Server群集名称” /priv RegisterAllProvidersIP=0

2.4 SQL Server服务和其他服务

SQL Server服务和其他服务提供数据库服务。

2.5 群集资源依赖关系

以上资源相互协作,通过群集服务管理器管理彼此关系,从而提供服务。这些资源的依赖关系如下图所示:

1.网络名称依赖于虚拟IP地址

对跨子网群集,添加群集节点的时候,存在跨子网访问的情况,次数虚拟网络会在域中注册两个IP地址,这两个IP的依赖关系为OR,也就是只能有一个在线。

SQL Server群集知识介绍-冯金伟博客园

2. SQL Server服务依赖于共享存储与网络名称

只有共享存储和网络名称同时在线的情况下SQL Server服务才能启动。

3. SQL Agent服务依赖于SQL Server 服务

SQL Server群集知识介绍-冯金伟博客园

三、SQL Server群集如何在线检测

四、SQL Server群集服务

数据库引擎服务(Database Engine)

SQL Server数据库的核心组件,可以做成群集。在群集中安装SQL Server数据库引擎,连带安装SQL Server复制分发,全文索引,数据质量分析。

SQL Server群集知识介绍-冯金伟博客园

分析服务(Analysis Services)

从SQL Server 2005开始支持分析服务群集;

如果单独部署分析服务群集,则非常简单,不需要考虑太多;如果要和数据库引擎服务一起部署到同一个群集上面,建议是将数据库引擎服务和分析服务单独安装到各自的资源组里面(这就需要各自资源组各自占有自己的共享磁盘、名称、IP地址资源)

如果将分析服务和数据库引擎服务安装在同一个资源组里面,分析服务系统数据库会和数据库系统数据库安装在一起,一旦放置系统数据库的磁盘出现问题,分析服务也会受到影响。同时在需要升级数据库引擎服务或者分析服务时候,二个服务也必须同时升级。

全文索引和SQL Server Broker

从SQL Server 2008开始,全文索引和SQL Server Broker服务已经集成到数据库引擎服务里面,所以在发生数据库引擎服务故障转移之后,二者亦可正常工作。

报表和SSIS 服务

报表和SSIS服务程序里面暂不支持群集API,无法向数据库引擎那样做成群集。但是也可以通过建立通用群集应用程序来将报表和SSIS做成群集。不过因为二者代码里面并不包含群集API,所以某些功能可能在切换之后不正常。

SQL Writer 服务

群集每个节点上面都会安装该服务,默认禁用。

SQL Server 浏览器服务

群集中每个节点也会安装该服务,该服务无法群集。

五、群集中的MS DTC分布式事务协调器