Date: 1月 22, 2018
在本系列的第1部分中,我向您展示了如何准备多站点群集,包括设置节点和文件共享多数法定人数。在第2部分中,我们看到了一个视频示例,介绍如何集成SteelEye DataKeeper(可用的群集复制解决方案之一)和故障转移群集来配置多站点Hyper-V故障转移群集。在第3部分中,我们将研究如何在具有Windows Server 2008故障转移群集和SteelEye DataKeeper群集版的多站点群集中配置Microsoft SQL Server 2008。
首先,为什么要部署一个多站点SQL服务器群集?SQL Server附带了各种高可用性选项,包括日志传送,复制(事务性,合并,快照),数据库镜像和故障转移群集。有一篇很好的文章谈到了SQL Server 2008中的高可用性选项,所以我不会在这里重新发明轮子。如果您想了解更多有关所有选项的信息,请参阅Ross Mistry的SQL Server 2008中的高可用性选项。如果你阅读这篇文章,罗斯的总结如下:
“显然,故障转移群集是减少系统停机时间并为站点内整个SQL Server实例提供更高应用程序可用性的最佳选择;但是,故障转移群集不能防止磁盘故障,并需要SAN。“
如果你能拥有罗斯概述的所有好处,并且可以防止磁盘故障,并消除对SAN的需求呢?那么好消息是,在Windows Server 2008上实现Microsoft SQL Server 2008多站点群集就可以做到这一点。SQL Server 2008多站点群集可能有点用词不当。不一定需要跨地理位置分散部署。这些服务器可以位于同一个机架,同一个房间,同一座建筑物或各大洲;这真的没关系。重要的是,您将存储作为一个单一的故障点,如果您选择将您的群集节点定位在不同的物理位置,那么您也具有内置的恢复能力。有关SQL Server 2008和Windows Server 2008故障转移群集的最常见问题和混淆之处之一是支持跨子网故障。是的,Windows Server 2008故障转移群集确实支持大多数应用程序的子网之间的故障,但是,SQL Server 2008不是这些应用程序之一。据我所知,SQL Server 2008 R2在发布时也不支持在子网之间失败。我的理解是,SQL团队正在为跨子网故障转移提供支持,但在SQL Server 2008 R2发布后的某个时间将会得到支持。所以,目前,如果你想在地理上分离你的节点,你将不得不跨越你的子网。现在您已经决定部署一个多节点SQL服务器集群,下面是您需要遵循的步骤。
配置基本的群集
按照本系列第1部分中的步骤配置具有节点和文件共享多数法定人数的基本双节点群集。
配置您的复制
部署多站点群集将需要您在配置的这一部分期间与复制供应商密切合作。每个供应商都将对如何设置复制以及如何创建要在群集中使用的存储资源有非常具体的说明。为了演示的目的,我将使用SteelEye DataKeeper Cluster Edition将E驱动器从名为PRIMARY的服务器复制到名为SECONDARY的服务器。PRIMARY和SECONDARY上的E驱动器只是本地连接的卷,不是任何SAN的一部分。只要E驱动器显示为本地连接磁盘,DataKeeper就可以将其从一台服务器复制到另一台服务器。您可以混合使用SAS,iSCSI,SAN,VHD或任何其他存储类型,因为DataKeeper与存储无关。按照我的系列的第1部分中所述配置完基本集群之后,运行DataKeeper setup.exe以在集群的两个节点上安装SteelEye DataKeeper Cluster Edition。系统会提示您在安装结束时输入您的许可证密钥。输入您的许可证,并在系统提示时重启服务 你现在准备创建你的镜子。启动DataKeeper GUI并按照以下说明创建镜像。点击“连接到服务器”。
输入第一台服务器的名称。点击连接。
输入第二台服务器的名称,点击连接
现在点击创建作业。这将启动“创建作业”向导。
给你的工作一个名字和描述。这些可以是你喜欢的任何东西。
选择以下内容:
- 源服务器 – 数据将从哪里复制
- 网络适配器 – 复制流量将传输的网络
- 音量 – 您要复制的音量
单击下一步继续。
选择以下内容:
- 目标服务器 – 数据将被复制到的位置
- 网络适配器 – 复制流量将传输的网络
- 音量 – 您要复制的音量
单击下一步继续。
选择以下内容:
- 压缩级别 – 如果您有100 Mbps或更快的复制网络,请将其设置为无。如果您的WAN的速率低于100 Mbps,则可以从启用压缩功能中受益。在中间某个地方的设置往往会给你最好的压缩性能vs. 与启用压缩相关的CPU开销。
- 异步与主动 同步 – 异步复制在大多数环境中通常是可以接受的,并且在高延迟的广域网环境中是绝对需要的。我写了一个关于这个主题的完整的博客文章,所以如果你有任何问题,看看我的文章在异步vs. 同步复制。
- 最大的带宽 – 你可以把这看作是一个“穷人的”QOS。如果要确保复制永远不会超过WAN容量的某个阈值,那么可以将限制器放在可以消耗的带宽量上。除非你有足够的理由来设置它,否则最好将其设置为0。
点击完成创建镜像。
现在,如果你看看你的DataKeeper GUI,它将看起来如下所示。
一旦创建了镜像,就需要在Microsoft群集“可用存储”中提供镜像。有几种方法可以做到这一点,但最直接的方法是使用Windows PowerShell CLI。下面是一个例子,展示了如何把我们刚刚在E驱动器上创建的现有镜像添加到集群“可用存储”中,将其移动到PRIMARY节点并使其处于服务状态
导入模块故障转移群集
Add-ClusterResource -Name“DataKeeper Volume E”-ResourceType“DataKeeper Volume”-Group“Available Storage”
Get-ClusterResource“DataKeeper卷E”| Set-ClusterParameter VolumeLetter E
Move-ClusterGroup“可用存储” – 节点主节点
启动 – ClusterResource“DataKeeper卷E”
有关PowerShell的更多信息以及与故障转移群集一起使用的可用命令,请参阅Microsoft故障转移群集小组的Symon Perriman中的这篇博文。http://blogs.msdn.com/clustering/archive/2008/12/20/9243367.aspx
您现在要重复上述步骤来添加您将在群集中使用的任何其他镜像。在我们的例子中,我们将创建一个F驱动器的镜像,并使用它来对MSDTC进行聚类。在添加了额外的镜像并将其添加到可用存储之后,DataKeeper GUI应该看起来像这样。
而您的故障转移群集管理器GUI应该如下所示。
集群MSDTC
重要说明 – 为了支持第三方磁盘资源的DTC,需要一个修补程序。请参阅以下知识库文章并将howfix应用于所有群集节点。http://support.microsoft.com/kb/978476
SQL 2008非常依赖于MSDTC,所以强烈建议您在群集SQL资源之前对MSDTC资源进行群集。以下文章提供您的MSDTC资源的配置和管理参考。http://technet.microsoft.com/en-us/library/cc770748(WS.10).aspx
http://technet.microsoft.com/en-us/library/cc771540(WS.10).aspx
首先打开故障转移群集管理器GUI,然后选择“配置服务或应用程序”。
然后,您将选择“分布式事务处理协调器”,然后单击下一步
为MSDTC资源提供一个名称和唯一的IP地址。这些对于MSDTC应该是唯一的,并且不像以后在创建SQL资源时使用的那样。
选择您将为MSDTC资源存储数据的卷。在我们的情况下,我们正在选择复制的F驱动器。
确认您的信息,然后点击下一步继续。
恭喜,您已经成功配置了DTC资源。点击完成。
我们即将开始安装SQL Server集群的第一个节点,但是,在准备工作中需要做一件事 – 将Stream Stream SQL 2008 SP1安装到SQL Server 2008 RTM安装介质上。
SLIP STREAM SQL SP1 ONTO您的SQL 2008安装媒体
我发现,如果没有首先将SQL Server 2008 SP1安装到SQL 2008安装介质上,SQL Server 2008将不会安装在Windows Server 2008 R2上。以下是一篇很好的文章,介绍了如何安装SQL Server 2008 RTM和Service Pack 1。在阅读了这篇文章并成功将SP1融入到SQL 2008 RTM之后,我发现了下面的Microsoft知识库文章,它描述了相同的过程。如果您尝试在没有首先安装SP1的情况下安装SQL,则可能会看到如下所示的错误。将私有属性“RequireKerberos”设置为值“1”时出错
我遵循了第一篇文章中的详细说明,并将我的SQL 2008 SP1安装复制到群集中两个节点的C:驱动器上。在下面的说明中,我将从每个群集节点的本地磁盘执行安装。
安装您的第一个群集节点
现在您已经准备好SQL Server 2008 SP1安装介质了,您可以安装第一个SQL节点了。在多节点集群上安装SQL时,有一个主要的问题。为了在多节点群集上安装SQL,必须先通过Windows Server 2008故障转移群集验证过程。不幸的是,多站点集群可以免于通过与存储相关的测试,因此,就SQL而言,您实际上无法真正“通过”验证。我在这方面进行了一些调查,但是我发现有一个命令行参数允许您跳过对SQL 2008安装的验证测试。这是命令行。安装程序/ SkipRules = Cluster_VerifyForErrors / Action = InstallFailoverCluster
要启动SQL设置,请打开命令窗口,浏览到SQL 2008 SP1安装目录,然后键入命令,如下所示。
如果一切按计划进行,您应该看到下面的屏幕。点击确定继续。
输入您的产品密钥并单击下一步
接受许可协议,然后单击下一步
单击安装安装安装程序支持文件
在支持文件的安装结束时,您将收到警告。点击显示详情,你会看到下面的消息。您可以单击“下一步”,忽略此消息,因为这是在多站点或非共享存储群集中预期的。
选择您想要安装的功能,然后单击下一步。将“Shared Feature”目录设置为C驱动器,因为SQL二进制文件不应安装在复制卷上。
在下一个屏幕上,您将为您的SQL Server选择一个网络名称。这将是所有客户端将连接到的名称。假设这是默认实例,请将Instance ID和Instance根目录设置为默认值。不要将实例根目录移动到复制卷。
建议您有单独的SQLServer和SQLAgent的域帐户。如果您尚未这样做,现在可以花时间创建这些帐户。这些帐户不需要特殊的权限,因为这个安装过程会给予他们所需的权限。
确认您有足够的磁盘空间,然后单击下一步继续。
选择默认设置以允许创建名为“SQL Server(MSSQLSERVER)”的新群集资源组。
选择仍然可用的复制卷,在我们的情况下是E:驱动器。单击下一步继续。
现在您将选择您希望与SQL群集资源关联的IP地址。如果您愿意,您可以将其设置为使用DHCP。
选择您的安全设置并点击下一步
添加任何SQL Server管理员并选择您的身份验证模式,然后单击下一步
选择您的错误和使用情况报告选项并点击下一步
您将再次看到与验证过程相关的一些警告。您可以忽略这些消息,因为它们是在多站点SQL Server群集中预期的。
点击安装开始安装过程
如果一切按预期安装,您应该看到以下屏幕。点击下一步然后关闭完成安装。
恭喜,您已经成功安装了多站点SQL Server群集的第一个节点。现在我们将安装集群的第二个节点。
安装第二个群集节点
安装第二个群集节点与安装第一个节点类似。我们需要再次从命令行运行SQL安装程序,以便我们可以跳过验证过程。因此,从第二个节点打开命令提示符并运行以下命令。
-
使用以下命令在第二个节点上安装SQL 2008 SP1(合并设置):
安装程序/ SkipRules = Cluster_VerifyForErrors / Action = AddNode / INSTANCENAME =“MSSQLSERVER”
*注意:这假定您在第一个节点上安装了默认实例
这将启动安装向导,如下所示。点击确定继续。
输入您的产品密钥并单击下一步。
接受许可条款,然后单击下一步
单击安装安装安装支持文件。
您可以再次忽略某些集群验证测试已被跳过的警告。这是在多站点群集和非共享存储群集中预期的。
确认您正在将节点添加到正确的实例,然后单击下一步。
将密码添加到服务帐户,然后单击下一步
选择您的错误和使用情况报告选项并点击下一步
再次忽略关于跳过的操作的警告。
点击安装开始安装过程。
如果一切顺利,你应该看到下面的屏幕。
既然你有一个功能齐全的双节点集群,你可能应该通过做一些手动切换来测试。右键单击资源并选择“移动到节点SECONDARY”。
如果一切配置正确,那么故障转移群集GUI应如下所示。
结论
我相信具有复制存储的SQL集群很有意义。存储一直是传统集群的单点故障。通过从SteelEye或任何其他Microsoft多站点群集复制合作伙伴部署具有复制存储的SQL Server群集,可以消除单点故障。我希望你找到这篇文章资料。如果您有任何问题或建议,请添加您的意见!
转载https://clusteringformeremortals.com/2009/10/07/step-by-step-configuring-a-2-node-multi-site-cluster-on-windows-server-2008-r2-%E2 %80%93 – 部分 – 3 /