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

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

这是我的看法。AZ是最新的Azure功能,但到目前为止它们仅在少数几个地区得到支持。AZ提供比FD(99.95%)更高的SLA(99.99%),并保护您免受我在我的帖子Azure Outage Post-Mortem中描述的那种云中断 。如果您可以在支持AZ的区域中部署,那么我建议您使用AZ。

在本指南中,我使用了AZ,当您进入有关配置负载均衡器的部分时,您会看到它们。但是,如果使用FD,除了负载均衡器配置将引用可用性集而不是可用区之外,一切都将完全相同。

你问什么是文件共享见证?
Windows Server故障转移群集(WSFC)要求您配置“见证”以确保故障转移正常运行,而无需详细说明。WSFC支持三种见证:磁盘,文件共享和云。由于我们在Azure中,因此无法使用磁盘见证。Cloud Witness仅适用于Windows Server 2016及更高版本,因此我们可以使用文件共享见证。如果您想了解有关群集仲裁的更多信息,请查看Microsoft Press博客上的帖子,来自MVP:了解Windows Server 2012 R2中的Windows Server故障转移群集仲裁。

将存储添加到SQL Server实例
在配置SQL Server实例时,您需要为每个实例添加其他磁盘。最低限度,您需要一个磁盘用于SQL数据和日志文件,一个磁盘用于Tempdb。在云中运行时,是否应该为日志和数据文件设置单独的磁盘有些争议。在后端,存储全部来自同一个地方,您的实例大小限制了您的总IOPS。在我看来,分离日志和数据文件确实没有任何价值,因为您无法确保它们在两个物理磁盘集上运行。我会留给你决定,但我把日志和数据全部放在同一卷上。

通常,SQL Server 2008 R2 FCI会要求您将tempdb放在群集磁盘上。但是,SIOS DataKeeper有一个非常好的功能,称为DataKeeper非镜像卷资源。本指南不包括将tempdb移动到此非镜像卷资源,但为了获得最佳性能,您应该执行此操作。真的没有理由复制tempdb,因为它无论如何都是在故障转移时重新创建的。

就存储而言,您可以使用任何存储类型,但必须尽可能使用托管磁盘。确保群集中的每个节点都具有相同的存储配置。启动实例后,您将需要附加这些磁盘并将它们格式化为NTFS。确保每个实例使用相同的驱动器号。

联网
这不是一项艰难的要求,但如果可能的话,请使用支持加速网络的实例大小。此外,请确保在Azure门户中编辑网络接口,以便您的实例使用静态IP地址。要使群集正常工作,您需要确保更新DNS服务器的设置,使其指向Windows AD / DNS服务器而不仅仅是某个公共DNS服务器。

安全
默认情况下,同一虚拟网络中的节点之间的通信是敞开的,但如果您已锁定Azure安全组,则需要知道必须在群集节点之间打开哪些端口并调整安全组。根据我的经验,在Azure中构建群集时遇到的几乎所有问题都是由阻塞的端口引起的。

DataKeeper有一些端口需要在群集实例之间打开。这些端口如下:

UDP:137,138
TCP:139,445,9999,以及10000到10025范围内的端口
故障转移群集有自己的一组端口要求,我甚至不会尝试在此处进行记录。这篇文章似乎涵盖了这一点。

此外,稍后描述的Load Balancer将使用必须允许每个节点上的入站流量的探测端口。本指南中常用和描述的端口是59999。

最后,如果您希望您的客户端能够访问您的SQL Server实例,您需要确保您的SQL Server端口是打开的,默认情况下是1433。

请记住,Windows防火墙或Azure安全组可以阻止这些端口,因此请务必检查这两个端口以确保它们可访问。

加入域名
SQL Server 2008 R2 FCI的要求是实例必须驻留在同一Windows Server域中。因此,如果您还没有这样做,请确保已将实例加入Windows域。

本地服务帐户
安装DataKeeper时,它会要求您提供服务帐户。您必须创建域用户帐户,然后将该用户帐户添加到每个节点上的本地管理员组。在DataKeeper安装期间询问时,请将该帐户指定为DataKeeper服务帐户。注意:暂时不要安装DataKeeper!

域全局安全组
安装SQL 2008 R2时,系统会要求您指定两个全局域安全组。您可能希望展望SQL安装说明并立即创建这些组。您还需要创建域用户帐户并将其放在每个安全帐户中。您将指定此帐户作为SQL Server群集安装的一部分。

其他先决条件
您必须在两个群集实例的每个实例上启用故障转移群集和.Net 3.5。启用故障转移群集时,还要确保启用可选的“故障转移群集自动化服务器”,因为Windows Server 2012 R2中的SQL Server 2008 R2群集是必需的。

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

New-Cluster - 名称 cluster1 - 节点 sql1 ,sql2 - StaticAddress 10.0 .0 .100 - NoStorage

群集创建后,运行Test-Cluster。这在SQL Server安装之前是必需的。

测试- 集群

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

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

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

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

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

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

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

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

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

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

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

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

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

SQL Server 2008 R2仅在带有SQL Server SP2或更高版本的Windows Server 2012 R2上受支持。不幸的是,Microsoft从未发布过包含SP2或SP3的SQL Server 2008 R2安装介质。相反,您必须在安装之前将Service Pack整合到安装介质上。如果您尝试使用标准SQL Server 2008 R2媒体进行安装,则会遇到各种问题。我不记得你会看到的确切错误,但我记得他们并没有真正指出确切的问题,你会浪费大量的时间来弄清楚出了什么问题。

截至本文撰写之日,Microsoft在Azure Marketplace中没有带有SQL Server 2008 R2产品的Windows Server 2012 R2,因此如果要在Windows Server 2012 R2上运行SQL 2008 R2,您将自带SQL许可证在Azure中。如果他们稍后添加该图像,或者您选择在Windows Server 2008 R2映像上使用SQL 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。

在第二个节点上,运行带有SP3安装的SQL Server 2008 R2,然后选择“将节点添加到SQL Server FCI”。

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

假设一切顺利,您现在应该配置一个双节点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地址冲突。

# 定义 变量 $ ClusterNetworkName = “” # 的 集群 网络 名称(使用 优惠- ClusterNetwork 上 的Windows 服务器 2012 的 高 以 找到 该 名称)$ IPResourceName = “” # 的 IP 地址 资源 名称 $ ILBIP = “” # 的 IP 地址 的 在 内部 负载 平衡器(ILB)和 SQL 集群 导入- 模块 FailoverClusters # 如果 您 正在 使用 的Windows 服务器 2012 或 更高:获取- ClusterResource $ IPResourceName | Set - ClusterParameter - Multiple @ { Address = $ ILBIP ; ProbePort = 59999 ; SubnetMask = “255.255.255.255” ; 网络= $ ClusterNetworkName; EnableDHCP时= 0 } # 如果 您 正在 使用 的Windows 服务器 2008 R2 使用 此:#cluster RES $ IPResourceName / 私法 enable,使能= 0 地址= $ ILBIP probeport = 59999 子网掩码= 255.255。255.255
如果正确运行,这就是输出的样子。

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

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

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

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

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

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

如何在Azure中配置SQL Server 2008 R2故障转移群集实例相关推荐

  1. SQL SERVER 2008 R2 故障转移群集实验总结

    最近完成了SQL SERVER 2008 R2 故障转移群集实验,特总结了一下. 1.系统版本要匹配,我的操作系统环境是windows server 2008 r2,数据库也要2008 r2才行,起码 ...

  2. 配置SQL Server 2008 R2 Reporting Services

    记录如何在本地配置SQL Server 2008 R2 Reporting Services,笔者环境为Windows 7 64位 + SQL Server 2008 R2 一.准备工作 其实准备工作 ...

  3. 在Windows 2008 R2下部署SQL Server 2008 R2 群集(一)

    技术参考见SQL Server 2008 故障转移群集入门. 部署环境: 整个部署过程在虚拟环境下完成. 涉及到三台虚拟机: 计算机R2DCIscsi:角色DC,DNS,安装有Windows Serv ...

  4. 在Windows Server 2008服务器上安装SQL Server 2008 R2

    本文讲述了在64位版本的WindowsServer 2008服务器上安装及配置SQL Server 2008 R2的过程. 准备服务器 阿里云服务器配置 登录服务器 使用远程桌面登录Windows S ...

  5. 安装 SQL Server 2008 R2 的硬件和软件要求(转)

    以下各部分列出了安装和运行 SQL Server 2008 R2 的最低硬件和软件要求.有关 SharePoint 集成模式下的 Analysis Services 的要求的详细信息,请参阅硬件和软件 ...

  6. 2008服务器怎么导入备份数据库文件,内江市审计局 *.dmp文件导入Sql Server 2008 R2的方法...

    在2015年保障性住房跟踪审计中,从**局采集的业务数据为Oracle备份数据,备份文件的后缀名为.dmp.如何将*.dmp文件导入审计人员熟悉的Sql Server 2008 R2中呢?以下是现场审 ...

  7. 配置SQL Server 2008 镜像

    配置SQL Server 2008 镜像 第一步检查基础环境 由于在非域环境内,所以需要做的检查相对来说多很多,下面按照演示环境,逐个测试下面的条件: Windows 账号. 网络是否能联通,并且端口 ...

  8. SQL Server 2008 R2的发布订阅配置实践

    纸上得来终觉浅,绝知此事要躬行.搞技术尤其如此,看别人配置SQL SERVER的复制,发布-订阅.镜像.日志传送者方面的文章,感觉挺简单,好像轻轻松松的,但是当你自己去实践的时候,你会发现还真不是那么 ...

  9. SQL Server 2008 R2开启数据库的远程连接及客户端配置

    SQL Server 2008 R2如何开启数据库的远程连接 SQL Server 2008默认是不允许远程连接的,如果想要在本地用SSMS连接远程服务器上的SQL Server 2008,远程连接数 ...

  10. 配置sql server 2008镜像服务

     两台服务器不在域中,也不想加域,所以采用使用证书方法,整个过程分以下几步: 一.创建证书 在服务器A上运行 use master; create master key encryption by ...

最新文章

  1. 学python用什么系统好-Python用什么系统环境好?老男孩Python
  2. linux中ls命令
  3. 利用小工具instsrv和srvany 创建windows服务
  4. Postman脚本发送请求pm.sendRequest
  5. 努比亚红魔3开启预约:鲁大师跑分破47万
  6. Unity3D之Material(材质、着色器、纹理)
  7. Linux 下配置 node + mongodb 环境
  8. thinkphp3.2 不同域名配置不同分组设置
  9. Win10家庭版禁用系统更新方法汇总及问题解决
  10. RayData学习总结
  11. Linux京东签到教程,京东POP店铺签到有礼操作指南
  12. 手机屏幕分辨率真的是越高越清晰吗?
  13. wincc逻辑运算符_wincc中表达式及公式
  14. 北京自由职业艺术人才首评职称 不看身份看业绩
  15. 学习————运算符!
  16. Java EE小知识
  17. 求平方根的牛顿迭代matlab程序,牛顿迭代法求平方根
  18. hive连续天数统计思路
  19. 防止电脑辐射的有效方法
  20. 魔兽会封python_Python爬取大量数据时,如何防止IP被封?

热门文章

  1. myBatis + SpringMVC上传、下载文件
  2. Node.js的集群功能以及在Express的配置
  3. 面向对象设计的设计原则
  4. libtool的作用及应用【转载】
  5. Spring Boot 面试,一个问题就干趴下了!(下)
  6. go学习笔记-运算符
  7. 一次线上OOM过程的排查
  8. Python网络爬虫(四)
  9. 五大步骤快速搭建个人网站
  10. Oracle 过程中检查数据表存在与否