2012-09-12 56 views
19

SQL Azure的数据库大小限制为150 GB。我已经多次阅读他们的文档,也在网上进行了搜索,但我对此并不清楚:使用联合会允许开发人员超过150 GB的数据库吗?例如,我可以有几个150GB的联邦成员。克服Windows Azure Sql数据库150 GB的大小限制

如果不是,我如何在Windows Azure上处理大于150 GB的数据库?

基本上,我如何向外扩展超过150 GB在Windows Azure上

如果世界上没有其他的办法是RDS一个很好的选择(共享任何其他的替代品)

+0

注 - 现在每个数据库的容量为500GB,截至2014年4月3日。我在下面发布了一个答案,反映了这一点。 –

+0

注:截至上周为1 TB,但成本(对于更高的DTU)可能会高得惊人。 –

回答

15

目前,它是不可能有一个单一的数据库大于150G。

唯一的方法是将数据拆分为多个数据库,一个帐户最多可以有149个用户数据库加上主数据库,或使用SQL Azure联合。目前,如果我没有弄错,支持的联盟总数是Int16.MaxValue - 1。每个联合实际上是一个独立的数据库,对开发者来说是透明的,可以达到150GB。

但是,SQL Azure Federations有其自己的优点和缺点,以及一些数据访问层重新分解。如果你有兴趣可以签出在SQL Azure的联盟,这些精彩视频:

UPDATE

我不会完全同意@ryancrawcour。他解释的只是水面下的冰山的顶峰。所需重新分解的数量实际上取决于数据如何从应用程序中消耗。我只是提到一些考虑因素(根本不完整)。请考虑以下任何一项:

  • 数据是很常见的所有联合会(你如何得到这个数据)
  • 存储过程中,后处理的数据 - 你必须在每个迭代和不断联合成员和执行存储过程。无法执行一次存储过程并在所有联合处理数据。
  • 汇总数据,分散在多个联合成员中
  • 列出来自多个联合成员的数据。

这些只是您需要考虑的几个操作,在每次查询之前并不要求“只更改连接字符串并执行一次使用联合...”。实际上,使用SQL Azure Federations,您根本不需要更改连接字符串。这是所有相同的SQL Azure连接字符串。 “USE FEDERATION ...”语句是每个查询之前执行的语句。但它不仅仅是唯一的方式。以及如果使用EntityFramework(模型第一,或代码第一,或其他)怎么样。事情变得更加复杂,需要真正了解SQL Azure Federations。

我会说,SQL Azure联盟是不同的数据思考方式,关于建模和规范化。

更新2 - 微软

2014年单个数据库的最大大小03.四月宣布了新的数据库大小已增加到500GB。迄今为止唯一可用的信息is here。请注意,管理门户网站仍未显示此选项(截至今天和当前:4. Apri 2014,格林威治标准时间15:00 + 0:00)。

+3

SQL数据库联合会提供了数据库大小和性能的横向扩展。由于每个SQL数据库实例具有相同的性能特征,无论大小如何,很可能10个15GB数据库的性能将明显优于150GB数据库。 –

+0

谢谢,指甲的澄清 – astaykov

+0

感谢astaykov和尼尔的回应。所以我想SQL Azure联盟解决了这个问题,并使我超越了150 GB。再一次感谢你。 – havokentity

2

还有持久性虚拟机的新Azure功能(目前处于预览状态),这将允许您将本地应用程序迁移到云,同时进行最少的更改。

延伸阅读:Infrastructure as a Service Series: Running SQL Server in a Windows Azure Virtual MachineThis指南可能也有帮助。

编辑

Here与SQL Azure的

+0

这是正确的,但我质疑与Windows Azure虚拟机的性能单个SQL Server数据库大于150GB,而Windows Azure SQL数据库(又名SQL Azure)和联合数据库。另外在Windows Azure虚拟机上,会出现单点故障。虽然SQL Azure带有3个独立的数据副本(这也是联邦数据)。 – astaykov

+0

虚拟机本身的VHD将拥有多个副本,但是我想你需要有适当的镜像来管理故障转移 – NoviceProgrammer

+0

由于虚拟机已经超出预览范围,它们现在属于服务保证以保证性能。 MSDN上有一篇很好的文章详细介绍了您可以在Azure上使用的不同类型的磁盘以及每种磁盘的性能影响,但VHD将具有非常好的性能!您将需要建立采用这种方法的企业级架构,但这可能代价高昂...... – emalamisura

2

我已经在不久前寻找这些答案相同的比较。除了Anton提供的答案(这些答案非常准确)之外,我发现您可以通过负载平衡和镜像使您的SQL Server安装冗余。

WASD的优点是一切都自动化。例如。当你的WAVM实例脱离负载均衡器的路由时,你需要自己带一个新的。 WASD负责所有这些。

使用WASD联盟,您可以扩展到75TB的数据(如果我没有记错的话),而使用SQL Server的WAVM可以扩展到16TB的顶端。

此外,借助WASD联合,您可以更细化地划分SQL工作负载。

问候,

Patriek

1

在考虑你的规模选择,要知道,4月3日2014年,微软宣布即将更改SQL高级版,包括每个SQL数据库实例扩展到500GB的能力(以及地理复制,自助恢复和更高的正常运行时间SLA)。尚未公布任何日期,但您可以阅读关于公告详情here

+0

此信息将在Microsoft网站上公开发布并定价更新。截至目前(4.4.2014),定价仍然显示150GB为最大数据库大小。 – astaykov

+0

我怀疑它很快就会推出。也就是说,截至今天上午,它在尺寸下拉菜单中不可用。我会编辑我的答案,说明它是*宣布*。但鉴于它正式宣布,公平地说你可以计划500GB的目标。 –

+1

@astaykov - 答案更新与链接到博客文章描述细节。尺寸的增加以及其他功能对Premium来说是独有的。 –