了解Azure SQL数据库扩展性

日期: 2015-01-08 作者:张亮亮 来源:TechTarget中国

微软Azure云的平台即服务解决方案(PaaS)主要优点之一就是简化了部署的扩展实现。这里的扩展既包括纵向扩展,也包括横向扩展。它支持你分别调整当前的报价层次(还包括相应的性能目标和相关辅助功能特性)和运行实例的并发数量。虽然SQL Database支持两种扩展方式,但是横向扩容一般更具有挑战性,这里讨论的是与其他Azure服务相比。

在本文中,我们将简单介绍Azure SQL Database实现纵向扩展和横向扩展的方法。 我们先从纵向扩展功能开始介绍。因为涉及到在报价层次和性能层次的切换,我们首先需要识别用来区分层次的标准。为了简化差异,微软引入了一种新的度量方式,称为数据库吞吐量单元(简称……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

微软Azure云的平台即服务解决方案(PaaS)主要优点之一就是简化了部署的扩展实现。这里的扩展既包括纵向扩展,也包括横向扩展。它支持你分别调整当前的报价层次(还包括相应的性能目标和相关辅助功能特性)和运行实例的并发数量。虽然SQL Database支持两种扩展方式,但是横向扩容一般更具有挑战性,这里讨论的是与其他Azure服务相比。在本文中,我们将简单介绍Azure SQL Database实现纵向扩展和横向扩展的方法。

我们先从纵向扩展功能开始介绍。因为涉及到在报价层次和性能层次的切换,我们首先需要识别用来区分层次的标准。为了简化差异,微软引入了一种新的度量方式,称为数据库吞吐量单元(简称DTU),它的意图是代表一般的Azure SQL Database性能级别,会结合考虑处理器功率,可用内存量和I/O吞吐量。每个报价版本(以及其对应的性能级别)都会分配有一定数量的DTU。每种版本都有指定最大数据库容量限制,大小从2GB到500GB。此外,值得注意的是更高报价版本还提供额外的便利,支持异步复制已提交事务到4个Azure区,包括选择保留用于读访问的二级在线复制(这对报表和数据分析应用非常有用)。另一个区别项目是恢复能力。虽然所有的SQL Database都会定期自动备份(每周做全备份,每天做差异备份,每5分钟做增量备份),但是相应的恢复时间点能达到多久远就取决于报价级别了。

Azure非常有效地提供给SQL数据库以下三种报价层次(取代了web层和业务层),每种结构都有不同的性能效果和弹性变化功能:

  • 基础版。该版本在预览门户中指定代号为“B”(Basic首字母),主要面向小规模的单用户数据库,通常对于开发和测试用户比较理想。性能指标限制在5DTU,空间不超过2GB,窗口恢复时点限制是7天。
  • 标准版。它是生产环境数据库最常见的选择,支持工作组和web应用。它可以扩展到250GB大小,支持标准Geo复制,窗口恢复时点可以达到14天。它还提供了三个性能级别,在预览门户中的代号是S0、S1和S2(S意为Standard首字母),分别提供10DTU、20DTU和50DTU的性能级别。
  • 增强版。主要针对高并发需求的企业级应用。空间可以扩展到500GB,支持活动Geo复制和35天的时点恢复。它的性能级别分为P1、P2和P3(预览门户可以看到,P为Premium首字母),分别对应100DTU、200DTU和800DTU性能级别。

报价层次和性能级别可以在Azure管理门户和预览门户中更改(尽管用户在切换期间可能会感受到短暂的连接断开,但你可以在应用程序中处理一下让体验变得更友好)。这个过程可以利用“Set-AzureSqlDatabase PowerShell”命令行带上“-ServiceObjective -Edition”参数(代表性能级别和报价级别)自动完成。在收缩调整时,要记得确保数据库在新目标报价层的限制环境下不受影响(尤其是注意最大容量和复制范围)。

除了纵向扩展(可以理解为受报价层次和性能级别影响的专项限制),你还可以选择横向扩展,把目标表分隔放到多个数据库实例中(也可以称为分区)。这种做法也被称为分片,如果不通过Azure平台的便利操作实现是非常有技术挑战的,但是在Azure平台中就简单多了,不需要定制设计和开发,频繁修改现有数据库结构和数据库结合的应用。通常有以下几种实现分片的方法:

  • 联邦。它定义了一种联合结构。其中包括联合分发主键,它又包含分区中使用的数据类型值的差异(比如客户ID和产品ID)。该主键决定了具体数据记录应该被分配到哪一个分区。联邦主键是联邦表主键的组成部分,联邦表拆分为独立数据库,它们构成了联邦。联邦元数据存储在联邦根数据库中,它作为应用访问联邦数据的逻辑终点(顺便说一下,一个根数据库就可以包含多个联邦的元数据)。实际数据的定位非常高效,从应用角度看是不受连带影响的。要注意,联邦成员个体数据库也包含非联邦表(也可以称为引用),它们不是联邦的组成部分。这些表通常存储联邦内容需要的其它数据。我们应该认识到基于Azure的联邦取消了传统的报价层次(Web层和业务层),这一点很重要。这样我们可以把另外两种横向扩展解决方案用于其它新部署的情况。
  • 定制分片。与联邦形式类似,它需要考虑设计和开发工作量,以便为数据分区、分发和连接路由实施定制的方法。你可以在微软Azure博客找到关于本话题的更多信息。
  • 弹性扩展。目前还在预览阶段,它利用模板纳入.NET库实现数据库管理基础设施,帮助你简化了数据分区流程(横向纵向两种都有效)和请求路由。实施方面可以通过PowerShell脚本和Azure自动服务自动完成。绑定数据的应用可以利用弹性扩展API访问分片数据库。该解决方案还包含有迁移工具,支持你从现有联邦部署迁移过去。

作者

张亮亮
张亮亮

TechTarget特邀编辑。毕业于北京邮电大学网络技术研究院。熟悉软件开发测试的各个环节和流程,对操作系统,数据库,计算机网络等有较为深入的理解。现就职于中国电子科技集团公司下属研究所,从事软件研发工作。热衷于英文的学习交流,平时喜欢户外运动,音乐,电影。

相关推荐