【51CTO.com快译】尽管十多年前就有企业向云迁移,但仍有大量数据在本地运行。这不足为奇,因为即使在相似系统之间迁移数据也很复杂、缓慢,并为日常运营增加风险。迁移到云会增加额外的管理开销,带来网络连接和带宽问题,以及与运行云数据库有关的可变成本。
问题的一方面在于,我们往往将云服务视为本地系统的复制品。这导致与云不匹配:我们拿来准备使用多年,为需求突然增加留出额外容量的服务器,然后将这个硬件规格直接搬到云基础架构。结果常常是,虚拟机未充分利用起来,计算预算又远高于实际需要。我们需要考虑充分利用云服务,将它们当作平台而不是数据中心,不是平移整套基础架构。
Azure数据库迁移服务介绍
将数据库从本地迁移到云不一定很难,相似环境之间迁移时更是如此。Azure的数据库迁移服务可以为你支持大部分流程,并提供一组向导来指导你完成迁移过程。与大多数本地迁移一样,你将数据库从一台服务器移动到另一台服务器时,可以选择离线迁移和在线迁移。如果你在使用数据,那么在线迁移是比较好的选择,因为可以将两个数据库交接时的停运时间降至最低。
这个过程的核心是将数据从一个SQL Server实例移到另一个实例所使用的Data Migration Assistant(数据迁移助手),分析数据库并提升性能,作为迁移过程的一部分。这需要使用VPN或高带宽ExpressRoute连接,在本地数据库和Azure环境之间建立虚拟网络连接。一旦部署到位,需要将其配置为Azure VNet,并为目标数据库、Azure服务总线和Azure存储提供适当的端点。
在本地设置迁移服务
设置Azure数据库迁移服务方面的一些要求可能看起来有点像破坏你学过的所有安全规则,尤其是在数据库网络方面。然而,所有流量都将通过VNet连接,因此即使暂时降低了数据库安全性,你也在整体安全边界之内。
本地数据库与Azure之间的连接已配置好,可以开始评估SQL Server迁移了。在创建用于保存评估结果的项目之前,选择SQL Server作为源服务器,选择Azure SQL数据库作为目标。
迁移评估将提供两种类型的报告,一种详述数据库兼容性,一种详述功能对等。你可以选择一个、两个都选或都不选。我建议两个都选;如果两个平台之间存在任何可能影响应用程序代码的差异,以及任何存储过程或触发因素,就需要查看对源数据库进行哪些更改。
评估完成后,你将看到可能需要解决的一系列问题。虽然大多数是不太重要的功能对等问题,但详述了可能阻止迁移的兼容性问题以及可能的缓解措施。另外详述了针对Azure的潜在功能(它们是本地功能的替代),以及如何在数据库中使用它们。
微软最近推出了Azure SQL托管实例作为Azure SQL的替代方案。这些是SQL Server的PaaS实现,将它们用作迁移目标可以简化将数据库迁移到Azure的过程,因为兼容性问题比较少。与Azure SQL一样,与使用IaaS虚拟机托管SQL Server不同,你不需要定义服务器计算和内存――Azure可以处理这一切。
如果没有更多的操作要执行,你已准备好迁移数据,可以进入到下一步:使用数据迁移助手迁移数据库模式。创建新的迁移项目,选择将数据库模式从本地迁移到Azure。连接到两台服务器,选择要迁移的对象,然后生成运行迁移的脚本。检查脚本,然后运行脚本,将模式从数据库部署到Azure实例。
设置Azure门户
迁移的下一个阶段需要你登录到Azure门户,在门户中你将Azure数据迁移助手添加到帐户并创建服务。这将设置Azure数据库迁移服务实例,将其连接到为数据迁移设置的VNet。作为配置服务的一部分,你需要选择适合迁移的价格档次。如果是一次性使用,选择免费的标准档次,它最多支持四个核心和离线迁移;高级价格档次适用于需要停机时间尽可能短的迁移,支持四核服务器上的在线迁移,每小时0.37美元(头六个月免费)。
定价模式选好后,添加源服务器的连接详细信息,使用虚拟网络上的完全限定域名。对目标Azure SQL实例执行同样的操作。连接设置好后,将要迁移的数据库映射到目标数据库。该服务将自动选择目标服务器上存在的空表,这些空表应完全匹配,因为你已经迁移了模式。该服务提供验证选项;完成填写迁移设置后,它将运行迁移,并报告迁移过程中可能出现的问题。你可以从服务门户监控操作,并留意错误。
迁移完成后,你可以切换应用程序、指向新的云托管端点,继续云迁移,并将数据迁移至托管服务。Azure SQL服务可根据需要来扩展,地理复制可以降低停运风险。你并不受制于带宽VPN或ExpressRoute连接;大规模迁移可以借助Azure Data Box,将数十TB数据从数据中心物理迁移到Azure。
原文标题:Move data to the cloud with Azure Data Migration,作者:Simon Bisson
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】