SQL Server群集知识介绍

时间:2023-03-08 18:59:20

集群CLUSTER种类介绍

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

SQL Server群集如何在线检测

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

一、SQL Server群集基本架构

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

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