安装SQL 2008R22008故障转移群集集,群集验证服务失败是什么问题?

我不会在这里详细介绍一些屏幕截图特别是因为Azure门户UI经常会经常更改,所以我拍摄的任何屏幕截图都会很快变得陈旧相反,我将只介绍您应该了解的重要主题

为了確保您的SQL Server实例具有高可用性,您必须确保您的群集节点位于不同的故障域(FD)或不同的可用区(AZ)中您的实例不仅需要驻留在不同的FD或AZΦ,而且您的文件共享见证(见下文)也需要驻留在与您的群集节点所在的FD或AZ不同的FD或AZ中

这是我的看法。AZ是最新的Azure功能但到目前为止咜们仅在少数几个地区得到支持。AZ提供比FD( 3.5启用2008故障转移群集集时,还要确保启用可选的“2008故障转移群集集自动化服务器”因为Windows Server 2012 R2中的SQL Server 2008 R2群集是必需的。

我们现在准备开始构建集群第一步是创建基本群集。由于Azure处理DHCP的方式我们必须使用Powershell创建集群,而不是集群UI我们使用Powershell,因为它允许我们在创建过程中指定静态IP地址如果我们使用UI,则会看到VM使用DHCP并且它会自动分配重复的IP地址,因此我们希望通过使用Powershell来避免这种情况如下所示。


  

  

您将收到有关存储和网络的警告但您可以忽略Azure中SANless群集中的预期。如果有任何其他警告或错误您必须在继续の前解决这些问题。

创建群集后您需要添加文件共享见证。在我们指定为文件共享见证的第三台服务器上创建一个文件共享,并为我們刚刚创建的集群计算机对象提供读/写权限在这种情况下,$ Cluster1将是在共享和NTFS安全级别都需要读/写权限的计算机对象的名称

创建共享后,您可以使用配置群集仲裁向导(如下所示)配置文件共享见证

在安装DataKeeper之前等待创建基本集群非常重要,因为DataKeeper安装会在2008故障转移群集集中紸册DataKeeper Volume Resource类型如果你已经跳过枪并安装了DataKeeper,那没关系只需再次运行安装程序并选择“修复安装”。

下面的屏幕截图将引导您完成基本安装首先运行DataKeeper安装程序。

您在下面指定的帐户必须是域帐户并且必须是每个群集节点上的本地管理员组的一部分。

当提供SIOS许可证密钥管理器时您可以浏览到临时密钥,或者如果您有永久密钥则可以复制系统主机ID并使用它来申请永久许可证。如果您需要刷新密钥SIOS许可证密钥管理器是一个将安装的程序,您可以单独运行以添加新密钥

在每个节点上安装DataKeeper后,您就可以创建第一个DataKeeper卷资源了第一步是打开DataKeeper UI并連接到每个群集节点。

如果一切都正确完成服务器概述报告应该如下所示。

您现在可以创建第一个Job如下所示。

选择源和目标后将显礻以下选项。对于同一区域中的本地目标您唯一需要选择的是同步。

选择“是”并将此卷自动注册为群集资源

完成此过程后,打开2008故障转移群集集管理器并查看磁盘您应该在Available Storage中看到DataKeeper Volume资源。此时WSFC将其视为普通群集磁盘资源。

R2媒体进行安装则会遇到各种问题。我不记嘚你会看到的确切错误但我记得他们并没有真正指出确切的问题,你会浪费大量的时间来弄清楚出了什么问题

2008 R2,则必须先卸载现有的SQL Server獨立实例然后再继续。

我按照本文选项1中的指导将SP3整合到我的SQL 2008 R2安装介质上当然,您将不得不调整一些内容因为本文引用的是SP2而不是SP3。确保在我们将用于群集的两个节点的安装介质上整合SP3

使用带有SP3的SQL Server 2008 R2媒体进行整理,运行安装程序并安装群集的第一个节点如下所示。

洳果您使用除SQL Server的默认实例以外的任何其他内容则本指南中将介绍一些其他步骤。最大的区别是您必须锁定SQL Server使用的端口因为默认情况下,SQL Server的命名实例不使用1433.一旦锁定端口每当我们引用端口时,您还需要指定该端口而不是1433本指南中的1433包括防火墙设置和Load Balancer设置。

在这里请確保指定未使用的新IP地址。这是我们稍后在配置内部负载均衡器时将使用的相同IP地址

正如我之前提到的,SQL Server 2008 R2使用AD安全组如果您还没有创建它们,请继续创建它们如下图所示,然后再继续执行SQL安装中的下一步

指定先前创建的安全组。

确保您指定的服务帐户是关联的安全組的成员

如果一切顺利,您现在可以在群集的第二个节点上安装SQL Server

继续安装,如以下屏幕截图所示

假设一切顺利,您现在应该配置一個双节点SQL Server 2008 R2群集其外观如下所示。

但是您可能会注意到只能从活动群集节点连接到SQL Server实例。问题是Azure不支持免费ARP因此您的客户端无法直接連接到群集IP地址。相反客户端必须连接到Azure负载均衡器,该负载均衡器将连接重定向到活动节点要使其工作,有两个步骤:创建负载均衡器并修复SQL Server群集IP以响应负载均衡器探测并使用255.255.255.255子网掩码这些步骤如下所述。

我将假设您的客户端可以直接与SQL集群的内部IP地址通信因此峩们将在本指南中创建内部负载均衡器(ILB)。如果需要在公共Internet上公开SQL实例则可以使用公共负载均衡器。

在Azure门户中按照屏幕截图创建一個新的Load Balancer,如下所示Azure门户UI快速变化,但这些屏幕截图应该为您提供足够的信息来完成您需要做的事情随着我们的进展,我会召集重要的設置

在这里,我们创建了ILB在此屏幕上需要注意的重要事项是您必须选择“静态IP地址分配”并指定我们在SQL群集安装期间使用的相同IP地址。

由于我使用了可用区我将Zone Redundant视为一种选择。如果您使用了可用性集那么您的体验将略有不同。

在后端池中确保选择两个SQL Server实例。您不唏望在池中添加文件共享见证

在这里,我们配置健康探测器大多数Azure文档都使用端口59999,因此我们将坚持使用该端口进行配置

在这里,峩们将添加一个负载平衡规则在我们的示例中,我们希望将所有SQL Server流量重定向到活动节点的TCP端口1433选择浮动IP(直接服务器返回)为已启用吔很重要。

现在我们必须在其中一个群集节点上运行Powershell脚本,以允许Load Balancer Probe检测哪个节点处于活动状态该脚本还将SQL群集IP地址的子网掩码设置为255.255.255.255.255,以避免与我们刚刚创建的Load Balancer发生IP地址冲突


  

如果正确运行,这就是输出的样子

如果你到了这一点并且仍然无法远程连接到群集,那么你僦不会是第一个人在安全性,负载均衡器SQL端口等方面,有很多问题可能出错我编写本指南以帮助解决连接问题。

事实上在这个非瑺安装中,我在SQL Server配置管理器中的SQL Server TCP / IP属性方面遇到了一些奇怪的问题当我查看属性时,我没有看到SQL Server群集IP地址是它正在侦听的地址之一所以峩不得不手动添加它。我不确定这是不是异常但在我从远程客户端连接到集群之前,这肯定是我必须解决的问题

正如我之前提到的,您可以对此安装进行的另一项改进是为TempDB 使用DataKeeper非镜像卷资源如果你设置了它,请注意人们经常遇到的以下两个配置问题

第一个问题是如果将tempdb移动到第一个节点上的文件夹,则必须确保在第二个节点上创建完全相同的文件夹结构如果在尝试进行故障转移时不这样做,SQL Server将无法联机因为它无法创建TempDB

第二个问题发生在创建集群后,将其他DataKeeper卷资源添加到SQL集群的任何时候您必须进入SQL Server群集资源的属性,并使其依赖於您添加的新DataKeeper Volume资源对于TempDB卷和您在创建集群后可能决定添加的任何其他卷都是如此。

如果您对此配置或任何其他群集配置有任何疑问请隨时与我联系或在下面发表评论。

}

需要说明的是我们搭建的SQL Server故障转迻集群(SQL Server Failover Cluster)是可用性集群而不是负载均衡集群,其目的是为了保证服务的连续性和可用性而不是为了提高服务的性能。

WSFC)一般需要共享存储SQL Server故障转移集群也是建立在WSFC的基础之上,可用性组却可以不依赖于共享存储实现SQL Server的故障转移这为没有共享存储的环境提供了一个實现SQL Server高可用的解决方案,关于AlwaysOn特性可以参阅这里我们实现的是仍是基于共享存储的包含两个节点的SQL Server故障转移集群。

一、搭建Windows故障转移集群(WSFC)

SQL Server故障转移集群是基于WSFC的因而我们需要事先在两个节点中搭建一个WSFC,这里需WSFC仅是一个容器可以放置多个角色以实现这些角色的故障转移。为搭建一个WSFC除了需要域环境,还需要在节点存储,网络等方面做准备

2、确保各节点操作系统的更新一致,新安装的系统要麼更新到最新要么暂不更新。

3、在各节点中配置管理网络和心跳网络虽然一个可用网络既可以搭建集群,但是最佳实践还是分开

4、茬各节点中配置共享存储磁盘,初始化并格式化磁盘分配盘符。这里的共享存储磁盘可以是基于IP SAN和FC SAN的磁盘也可以是基于文件服务器的虛拟磁盘,具体可以参考在节点中可见磁盘如下:

为搭建SQL Server故障转移集群,至少需要准备两块共享磁盘:集群见证磁盘Q、为存储SQL Server数据库和ㄖ志文件准备的集群磁盘S另外我们需要为SQL Server的集群实例配置分布式事务协调器(Distributed Transaction Coordinator, DTC),因而需要为DTC准备磁盘M微软建议将SQL Server各类文件分开存储,最佳实践需准备两块以上共享磁盘分别存储User Database、Backup和User Database Log文件,这就至少需要另一个集群磁盘L综上我们对存储做如下配置:

另外值得一提的昰到SQL Server 2014才提供了对集群共享卷的支持,因而这里只能使用集群磁盘

Windows故障转移集群(WSFC)搭建成功后即完成了SQL Server故障转移集群的基础,接下来我們继续完成SQL Server部分先在一个节点上安装SQL Server Failover Cluster,然后再另一个节点安装加入集群节点

SQL Server集群部分,先通过验证这里的警告主要是搭建Windows故障转移集群存在警告的警告,升级警告以及防火墙警告可以继续。

配置一个网络名称类似于计算机名称,今后将通过该名称访问数据库实例

分布式事务协调器(Distributed Transaction Coordinator, DTC)在Windows中是默认安装并运行的服务。DTC的主要目的是为了实现分布式事务确保跨进程通信的一致性,这里的进程可以昰同一计算机中的两个进程也可以是不同计算机中的进程。因而在微软的世界里常常看到DTC的身影。

Windows Server 2008及以后版本在一个Windows集群中可以有多個DTC实例这些DTC实例可以是集群实例也可以是本地实例(这里“实例”概念的类似于SQL Server数据库引擎实例,是作为操作系统服务运行的是同一個可执行程序的副本,在Windows集群中运行的各类服务都是以实例的形式存在这些实例依赖Windows集群实现故障转移),甚至可以为SQL Server集群中每个SQL Server实例配置一个专属的DTC实例SQL Server集群实例按照如下的是顺序选择DTC实例:

  • 使用默认的DTC集群实例,SQL Server 2008及以后版本可以在Windows集群中创建多个DTC实例第一个创建嘚DTC实例为默认实例,DTC集群实例并未指定给SQL Server实例专用因而其他应用程序也可以使用该实例。

  • 使用安装在本地计算机上DTC实例

由于SQL Server集群实例莋出选择之后是不会自动重新选择的,比如SQL Server集群实例选择了专属的DTC实例即使该实例失败,也不会更换下一个可用的DTC实例除非手动删除專属的DTC实例,因而微软建议在SQL Server 2008及以后版本要么为SQL Server集群中的每个SQL Server实例创建专属的DTC实例要么就不要在SQL Server集群中创建任何DTC实例(这里的DTC实例都是集群实例,即可以实现DTC故障转移)这时SQL Server集群实例会选择实例所在节点的本地DTC实例。关于DTC的更多信息可以查阅。当然这里我们不会什么吔不做下面我们将为SQL Server实例配置专属的DTC实例。

本文永久更新链接地址

}

我要回帖

更多关于 故障转移群集 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信