不同地区的SQL Azure服务器到Web服务器

我刚刚接pipe了一个在Windows Azure上托pipe的Web项目。

我们一直有性能问题,今天我注意到,我们的SQL Azure服务器位于西欧地区,而托pipe我们网站的实例位于北欧地区。

  1. 这个问题有多大?
  2. 假设这是一个问题(我认为从带宽计费的angular度来看至less是一个问题!),我该如何解决?

是否有更容易的方法进行迁移,而不是在正确的区域购买第二台SQL Azure服务器,使站点脱机,从当前服务器导出,导入到新服务器,修改站点configuration以便指向新服务器? 如果可以不停机的话,那会让我很开心。

问:这个问题有多大?

答:这是一个潜在的重大问题,由于:

  1. 延迟 – 您正在查看您的Web服务器与其后端数据库之间的两毫秒的ping时间。 这是愚蠢的,只能让你的网站反应比它应该是。
  2. 成本 – 分区域之间的数据传输是可计费的,而分区域内的数据传输是免费的。

问:如何以最less的停机时间解决问题?

答:我们很难在不知道数据库大小或复杂性的情况下提出具体build议。 微软提供了许多选项,可以将数据从一台SQL服务器移到另一台:

  1. 复制整个数据库
  2. 仅复制数据
  3. SQL Azure数据同步服务

一般来说,如果你有足够的数据,简单的备份和恢复速度不足以满足你的要求,以减less停机时间, 数据同步服务可能是你最好的select。

理想的情况是让你的数据库和你的计算实例在同一个数据中心,就像@Miles提到的那样。 我想解决“购买”另一个数据库服务器的主题。

当你configuration一个SQL Azure服务器时,服务器本身没有成本,只有数据库。 而且数据库成本每天根据每天的数据库大小进行分摊。

对于从一个数据中心迁移到另一个数据中心,我们只能说你能够成功备份数据库并将备份存储在一个blob中。 然后,您可以将这个数据库恢复到您的新服务器。 一旦你知道你的两个数据库是同步的(也许通过设置同步服务),然后你可以修改你的应用程序的连接string,指向新创build的数据库。 假设您的数据库连接存储在您的应用程序的Webconfiguration中,您可能需要部署一个新版本的应用程序。 您可以部署到分段,确保一切正常,然后做一个VIP交换,将您的新应用推出到生产。

一旦迁移到新的数据库并确保所有数据都是最新的,就可以安全地删除原始数据中心中的数据库。 假设这一切发生在3天之内,那么这3天只会产生双重数据库成本。