0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何确保SQL Server在云端的高可用性

独爱72H 来源:51CTO 作者:51CTO 2020-03-18 14:17 次阅读

(文章来源:51CTO)

不知您是否意识到,云计算让那些提供关键性服务的SQL Server部署方案获得了高可用性(HA)和灾难恢复(DR)能力。据此,Azure、AWS和Google都在全球范围内部署了最先进的分布式数据中心,并以各种SLA的形式,向用户承诺99.95%或更高的虚拟机(VM)可用水平。当然,针对HA或DR的SQL Server配置,往往涉及到建立Windows服务器故障转移群集(Windows Server Failover Cluster,WSFC)。通过此类群集,SQL Server不仅能够保证其本身在不同主机上的高可用性,更重要的是那些与SQL Server交互的不同存储设备上数据也具有极高的可用性。

在传统的WSFC中,数据通常被存储在存储区域网络(SAN)或SMB3(译者注:Server Message Block是一种能够被用于Web连接,以及客户端与服务器之间进行信息沟通的协议)中,并以共享的方式供WSFC中的所有服务器节点访问。但是,云存储无法以与传统SAN相同的方式实现共享。为了克服这种局限性,人们不得不使用第三方的方法,或Windows原生的方法来克服此类共享存储的限制性。

如果我们将HA反映到数字上,其实就是99.99%或更高的在线保证率。在数据中心的构建过程中,我们可以将两个或多个虚拟机(VM)群集配置到Azure数据中心的单独机架中(常被称为“可用性集合”),以保证在99.95%的时间里至少有一个VM可用。同时,Azure和AWS也能够让您在多个数据中心间(常被称为“可用区间”)实现VM的群集。通过此类SLA,您会在99.99%的时间内拥有至少一个可用的VM。

不过,这些SLA保障的是VM本身的可用性,而不是SQL Server及其数据的可用性。也就是说,当主VM出现故障,业务转移到群集中的备用VM上时,为了让服务能够以最小的中断状态继续进行,备用VM必须能够继续运行SQL Server,并能够访问到各种基础数据库的文件。可见,我们需要通过进一步的配置,才能确保SQL Server及其基础数据的可用性。

那么,我们该如何确保SQL Server和云端数据的高可用性呢?如果您主要使用的是Windows Server的原生服务(而不是第三方提供的产品),那么您有两种选择:您既可以在Windows Server 2016或更高的企业版上使用直接存储空间(Storage Spaces Direct),也可以在SQL Server 2012或更高的企业版上创建AlwaysOn可用性组。

上述两种方法各有优缺点。Storage Spaces Direct(S2D)主要是在软件中创建虚拟的存储区域网络(SAN),以方便Windows Server故障转移群集(Windows Server Failover Clustering,WSFC)中的任意VM进行访问。这种方式貌似针对传统故障转移群集的云端升级版本,但是由于我们必须将该群集配置为可用性集合,因此其中的所有VM都需要位于同一数据中心。在极端情况下,整个数据中心可能会由于破坏性事件而关闭,那么所有的VM及其存储数据将随之掉线。这就是为什么使用S2D的配置方式,是永远不会获得超过99.95%可用性的原因。

此外,S2D对于单个数据中心的要求,还消减了那些横跨多个数据中心,并且部署在Azure、AWS、甚至是Google云平台区域内的SQL Server故障转移群集实例(FCI)的高可用性。与直接存储空间相反,AlwaysOn可用性组(AG)能够支持地理位置不同的数据中心之间的AG拷贝。在位于不同数据中心的副本完成了适当配置之后,与AG关联的SLA会上升到99.99%。毕竟,AG的配置并不像SQL Server FCI那样重度依赖共享式的存储。

AG提供的服务可以自动在各个副本之间同步SQL Server数据。也就是说,如果当前active的SQL Server实例失败了,那么被指定的副本服务器将接管,并开始主导已复制到该实例中的数据库。当然,这种方法也有着一定的缺点:AG虽然会复制用户定义的数据库,但是它不会复制关键的系统数据库,例如:Master和MSDB。

这些关键系统数据库包含了各种agent jobs、登录名和密码等。可见,如果由于故障导致SQL Server的主实例掉线,那么这些数据库均无法受到保护。另外,值得一提的是:Microsoft尚未测试超过100个SQL Server数据库或10个AG的AlwaysOn可用性组。也就是说,如果需要同时保护大量的数据库,那么AG可能会面临着某种限制。

在上述各种原因的基础上,基于云端的文件共享应运而生。您一定迫不及待地想知道:它是否可以超越Windows Server固有的限制,带来高性能的基于云端的HA和DR解决方案呢?

我个人认为:从长远来看,答案是肯定的。AWS最近表示,用户企业可以使用Amazon FSx(译者注:Amazon基于Windows Server的文件系统)来配置某个WSFC。由于WSFC中的所有节点都可以访问文件共享,因此主节点一旦掉线,那么即便它在另一个数据中心,群集也会自动转移到备用节点上,以继续使用在Amazon FSx文件共享中存储着的SQL Server数据。Azure同时也表示:用户企业可以使用Azure的高级文件共享在FCI中配置SQL Server。据此,我认为:一直以来故障转移群集的本地数据中心模式会逐渐切换到云端模式。

不过在短期看来,答案也可能是否定的。其原因在于:当今基于云端的共享文件产品主要存在着一个显著的缺陷,即:现有云端文件共享服务的基本SLA只能保证99.9%的读、写操作可用性,而且远低于我们在谈论高可用性时所要求的99.99%的SLA基准线。至于其他方面的问题,我们客观性地总结在了下表之中。

我们可以预测:基于云端的文件共享方式将成为S2D和AG有效的替代方案。在不久的将来,所有云服务提供商都能够通过此类方案,针对SQL Server及其基础数据可用性,提供99.99%或更高的SLA。让我们拭目以待吧!
(责任编辑:fqj)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SQL Server
    +关注

    关注

    0

    文章

    20

    浏览量

    13465
  • 云服务
    +关注

    关注

    0

    文章

    838

    浏览量

    39102
收藏 人收藏

    相关推荐

    Devart: dbForge Compare Bundle for SQL Server—比较SQL数据库最简单、最准确的方法

      dbForge Compare Bundle For SQL Server:包含两个工具,可帮助您节省用于手动数据库比较的 70% 的时间 dbForge数据比较 帮助检测和分析实时SQL数据库
    的头像 发表于 01-17 11:35 172次阅读

    dbForge Studio For SQL Server:用于有效开发的最佳SQL Server集成开发环境

    富的代码片段集合。 快速数据库差异比较 比较SQL Server数据库模式和数据,分析差异,并安全部署更改。 轻松的数据迁移 不同的服务器之
    的头像 发表于 01-16 10:36 201次阅读

    高效协同,云端先行,Collabora Online FlexusX 上的部署与实战分享

    资源,确保 Collabora Online 稳定运行与数据安全。追求高效协同的云端办公新纪元中,Collabora Online 与华为云 FlexusX 实例的结合无疑为企业用户提供了前所未有
    的头像 发表于 01-13 15:53 493次阅读
    高效协同,<b class='flag-5'>云端</b>先行,Collabora Online <b class='flag-5'>在</b> FlexusX 上的部署与实战分享

    确保网站无缝运行:Keepalived可用与Nginx集成实战

    目录 keepalived可用(nginx) keepalived简介 keepalived的重要功能 keepalived可用架构图 keepalived工作原理描述 keepa
    的头像 发表于 11-27 09:08 713次阅读
    <b class='flag-5'>确保</b>网站无缝运行:Keepalived<b class='flag-5'>高</b><b class='flag-5'>可用</b>与Nginx集成实战

    云服务器的功能是信息备份吗?有哪些优势

    服务器的功能是信息备份吗?云服务器的功能不仅限于信息备份,它涵盖了计算、存储、网络、数据共享、安全和可用性等多个方面。它通过虚拟化技术实现资源池化,支持弹性计算和可扩展存储,满足不同应用需求。云服务器具备
    的头像 发表于 11-01 09:48 185次阅读

    使用bq769x0对可用性系统进行故障监控

    电子发烧友网站提供《使用bq769x0对可用性系统进行故障监控.pdf》资料免费下载
    发表于 10-15 10:13 0次下载
    使用bq769x0对<b class='flag-5'>高</b><b class='flag-5'>可用性</b>系统进行故障监控

    数据库数据恢复—SQL Server数据库出现823错误的数据恢复案例

    SQL Server数据库故障: SQL Server附加数据库出现错误823,附加数据库失败。数据库没有备份,无法通过备份恢复数据库。 SQL
    的头像 发表于 09-20 11:46 432次阅读
    数据库数据恢复—<b class='flag-5'>SQL</b> <b class='flag-5'>Server</b>数据库出现823错误的数据恢复案例

    浅析分布式风电电池储能系统可用性

    【摘要】 以内蒙古某一实际分布式风电-电池储能系统的设计和运行效果为基础,对影响其可用性的关键因素进行了分析。结果显示:能量管理系统的设计需要考虑功率补偿控制以抵消储能系统内部功率损耗;功率转换
    的头像 发表于 08-20 09:36 1171次阅读
    浅析分布式风电电池储能系统<b class='flag-5'>可用性</b>

    干货分享 如何采集OPC DA数据并存储到SQL Server数据库?

    工业自动化系统中,将OPC DA数据采集并存储到SQL Server数据库具有显著的应用价值。本文手把手教您完成这一操作,实现数据的统一管理、实时监控和趋势分析,助力企业优化生产流程
    的头像 发表于 08-09 10:46 755次阅读
    干货分享  如何采集OPC DA数据并存储到<b class='flag-5'>SQL</b> <b class='flag-5'>Server</b>数据库?

    IP 地址 SQL 注入攻击中的作用及防范策略

    数据库各个领域的逐步应用,其安全也备受关注。SQL 注入攻击作为一种常见的数据库攻击手段,给网络安全带来了巨大威胁。今天我们来聊一聊SQL 注入攻击的基本知识。
    的头像 发表于 08-05 17:36 399次阅读

    数据库数据恢复—SQL Server数据库所在分区空间不足报错的数据恢复案例

    Server数据库故障: 存放SQL Server数据库的D盘分区容量不足,管理员E盘中生成了一个.ndf的文件并且将数据库路径指向E盘继续使用。数据库继续运行一段时间后出现故障
    的头像 发表于 07-10 13:54 615次阅读

    什么是 Flink SQL 解决不了的问题?

    覆盖不了的问题,但 SQL 的易用又难以让人释怀。所以有些场景使用 FLink SQL 开始就与需要额外注意,下面就介绍一种多表关联时存在部分列更新(partial Update
    的头像 发表于 07-09 20:50 406次阅读

    华为云 FunctionGraph 构建可用系统的实践

    ,详细介绍如何构建可用的 Serverless 计算平台,实现客户和平台双赢。 可用介绍 可用性
    的头像 发表于 05-09 23:14 535次阅读
    华为云 FunctionGraph 构建<b class='flag-5'>高</b><b class='flag-5'>可用</b>系统的实践

    SQLserver如何避免死锁

    SQL Server使用锁来确保数据的一致和完整。当一个事务对资源进行修改时,它会锁定这些资源,以防止其他事务同时修改它们。
    的头像 发表于 04-10 14:59 1132次阅读
    SQLserver如何避免死锁

    如何开始监控SQL Server环境?

    理想情况下,最好、最有效的做法是使用可靠的监控解决方案。然后您就可以将所有内容集中一处并获得大量见解。否则,您可以登录每个系统并手动检查,但这为您提供的数据较少,没有关联等。 虽然您可以手动监控
    的头像 发表于 02-28 17:25 469次阅读