我刚刚接pipe了一个在Windows Azure上托pipe的Web项目。
我们一直有性能问题,今天我注意到,我们的SQL Azure服务器位于西欧地区,而托pipe我们网站的实例位于北欧地区。
是否有更容易的方法进行迁移,而不是在正确的区域购买第二台SQL Azure服务器,使站点脱机,从当前服务器导出,导入到新服务器,修改站点configuration以便指向新服务器? 如果可以不停机的话,那会让我很开心。
问:这个问题有多大?
答:这是一个潜在的重大问题,由于:
问:如何以最less的停机时间解决问题?
答:我们很难在不知道数据库大小或复杂性的情况下提出具体build议。 微软提供了许多选项,可以将数据从一台SQL服务器移到另一台:
一般来说,如果你有足够的数据,简单的备份和恢复速度不足以满足你的要求,以减less停机时间, 数据同步服务可能是你最好的select。
理想的情况是让你的数据库和你的计算实例在同一个数据中心,就像@Miles提到的那样。 我想解决“购买”另一个数据库服务器的主题。
当你configuration一个SQL Azure服务器时,服务器本身没有成本,只有数据库。 而且数据库成本每天根据每天的数据库大小进行分摊。
对于从一个数据中心迁移到另一个数据中心,我们只能说你能够成功备份数据库并将备份存储在一个blob中。 然后,您可以将这个数据库恢复到您的新服务器。 一旦你知道你的两个数据库是同步的(也许通过设置同步服务),然后你可以修改你的应用程序的连接string,指向新创build的数据库。 假设您的数据库连接存储在您的应用程序的Webconfiguration中,您可能需要部署一个新版本的应用程序。 您可以部署到分段,确保一切正常,然后做一个VIP交换,将您的新应用推出到生产。
一旦迁移到新的数据库并确保所有数据都是最新的,就可以安全地删除原始数据中心中的数据库。 假设这一切发生在3天之内,那么这3天只会产生双重数据库成本。