深入了解 Windows Azure

将数据库工作负载迁移到云

Bruno Terkaly
Ricardo Villalobos

今天在它的最大的趋势之一数据库工作负载迁移到云中。我们经常得到的问题有关的问题涉及迁移到 Windows Azure 的关系型数据库工作负载,所以我们决定向各种产品团队和从业领域得到一些具体的答案,对这些挑战伸出时。有一个选项可用,必须仔细考虑迁移前的光谱和主机的问题,包括成本、 兼容性、 灵活性、 维修、 法规遵从性和规模,仅举几例。

将您的 SQL Server 数据库移动到公共云是本月的专栏。这意味着我们不会讨论私有云或其他部署选项。自然,超越只是数据,当地有很多移动云计算,例如高速缓存,身份和旧式代码到整个应用程序时要考虑的问题。

特别是当它涉及到宿主关系数据,许多客户是困惑的云计算中的所有选项。毕竟,微软的关系数据库故事是大和全面。在本月的专栏中,我们想要阐明您的选项,SQL 服务器和数据存储与 Windows Azure 平台的时候。

大多数 IT 决策基于成本与价值。一个不错的法则要记住是你增加从硬件抽象并开始虚拟化您的技术,获得了效率,导致较低的资源调配和维修费用。然而,我们有个平衡点,当你虚拟化的硬件 — — 你可能会降低成本,但在同一时间降低的与现有的房地上数据库兼容性级别,因为您可以少控制的数据库对其底层的硬件配置。我们的目标之一是来描述这些权衡,以便让你能更好的决策。

图 1 突出的一些选项。有至少四种方式,您可以利用 SQL Server 中,编号的圆圈表示。请注意,两个基于云计算和房地上描述的解决方案。上半部分的图 1 描述公共云。如果你进一步钻到公共云计算,你会看到它包括两个主要支柱:基础设施作为服务 (IaaS) 和平台即服务 (PaaS)。底部数字的一半阐释了关于选项上-处所的 SQL Server。可以承载您自己的私有云,或请按照传统的方法和原料的物理硬件,免费的任何虚拟化技术上运行 SQL Server。


图 1 SQL 服务器承载选项

Windows Azure 门户

我们会利用三个 Windows Azure 组件,将我们对处所数据库部署到云计算,说明 IaaS 与 PaaS 模式:虚拟机或虚拟机 (IaaS) ; Windows Azure SQL 数据库 (PaaS) ; 和存储。他们可以通过访问管理门户中所示图 2。前两个是相当明显的但存储部分可能是一个惊喜。Windows Azure 存储是包含 BACPAC 文件,其中包含数据库架构和存储在数据库中的数据所需的。您可以创建此文件与 SQL 服务器管理工作室 (SSMS) ; 这是一次数据库备份的逻辑等价物。SSMS 将会非常便利,该 BACPAC 文件放在 Windows Azure 存储,这是一个理想的位置,因为它可以直接从云版本的 SQL Server,导入选项 3 和 4 中的所示图 1


图 2 Windows Azure 管理门户

四种情况

回指图 1,你可以看到 SQL 服务器映射到四个主要用例。当您移动通过订单中的四个方案,获得了效率,从而降低成本。然而,选项相应地影响您对硬件和配置,如将房地上数据库部署到云计算影响的兼容性级别的控制。

老学校、 生铁方案号1 是关于运行 SQL Server 使用传统的方法,这意味着它不虚拟化的 IT 人员和 Dba 可以高度自定义。很自然,因为这使得工作人员中的确切的一切如何配置和如何作用的完全控制,有明显更多的工作,在资源调配、 维护和缩放的数据库中。准备群集的高可用性 (HA) 和执行备份和还原只是两个的很多的资源密集型责任,必须由 DBA 管理。

关于房地、 私有云方案号2 描述了 SQL Server 部署到私有云,利用虚拟化优化硬件资源的使用。此技术允许您使用 Windows 服务器 2012 HYPER-V 为有效地利用计算、 网络和存储池 SQL Server 数据库。它允许您为您的数据库,支持弹性的基础设施,所以你可以更有效地扩展向上和向下。从管理的角度看,此选项提供了内置的自助服务功能,所以您可以调配使用 Microsoft 系统中心 2012年的数据库。然而,你仍然负责采购硬件并使其保持最新的软件修补程序。

Windows Azure SQL 服务器数据库 VM Windows Azure SQL Server 为 Vm (IaaS) 它使您能够承载您的群集微软数据中心。此公共云托管选项提供的关键优势是高水平的与现有的房地上 SQL Server 安装的兼容性。因为此选项支持全功能版本的 SQL Server,你能够利用医管局,透明的数据加密、 审核、 业务智能 (BI) 等分析服务,报告服务,分布式事务,对活动目录 (Active Directory 联邦服务或 AD FS 2.0),和更多的支持。此外,你可以建立你自己的 VM 或利用从 Windows Azure 图像画廊 (稍后介绍) 的模板。最后,此产品允许您轻松地,构建您自己的虚拟专用网络 (Vpn) 您的云资源到您的处所上网络桥接和提供一个无缝的体验,使大规模的 Microsoft 数据中心与您的内部服务器之间的界限变得模糊。

SQL Server 中的虚拟机还支持新的总是对功能,从而使您具有达五个的由每个参与的情况下维持的数据库的完整副本。每个 SQL 服务器可以驻留在其本地存储,或一些其他位置的数据库。这提供了一个云托管、 企业级的替代数据库镜像。

Windows Azure Vm 的另一个优点是它们使您得以利用意味着 OS 和磁盘驱动器自动保持 Windows Azure 中,默认情况下,提供您的数据在数据中心内的三个自动副本和允许的土力工程处复制使用 (可选的 Windows Azure 存储的功能。总之,为虚拟机利用 Windows Azure SQL Server 使能够迁移到 Windows Azure 上处所数据库应用程序最小化,如果不消除,需要修改应用程序和数据库。

Windows Azure SQL 数据库要清除任何有关术语的混淆,请注意 Windows Azure SQL 数据库用来调用 SQL Azure。Windows Azure SQL 数据库是一个子集和超集的传统的 SQL Server,并承载于云计算作为一种服务。

因为 Windows Azure SQL 数据库实际上是一个数据库作为一种服务,有一些真正的优势。第一,它可以极其经济 — — 一些公司有其数据库成本降低 90%以上通过使用 Windows Azure SQL 数据库。第二,它提供自我管理的能力,使组织能够提供数据服务,在整个企业中的应用程序而不添加到支持负担的中央部。第三,服务将复制您的数据的三个副本,在出现硬件故障时,它提供了自动故障转移功能。

但有一些限制。最大数据库大小为 150 GB,虽然这可以增加通过社会关系网络 (水平分区的数据)。这种做法是也更多的延迟问题,,,它运行在 Microsoft 数据中心中的共享基础设施上。另一个缺点是必须期望瞬时故障,并相应地进行编程代码。最后,Windows Azure SQL 数据库表示 SQL 服务器,即某些功能,例如 XML、 系统存储过程,分布式事务、 同义词、 CLR 程序、 完整的文本搜索和有链接的服务器的能力不受支持的一个子集。由于这些限制,迁移到 Windows Azure SQL 数据库可能不工作在某些情况下。正如您所看到的此选项为与不兼容房地上 SQL Server 实例作为前面的选项,Windows Azure SQL 服务器数据库 VM。

注意事项

当将您的数据库从房地上解决方案迁移到一个公共的云,有几个方面来考虑。一个重要的因素是性能,其中考虑到帐户的 CPU 利用率、 磁盘 I/O、 内存限制,和网络吞吐量和延迟时间。你还需要想有关多少磁盘空间被需要虚拟机的数目。网络拓扑结构是关切的问题,如果数据­基础的应用程序需要对房地资源,可能需要您建立了 VPN,这是另一个提供的 Windows Azure 平台的连接。法规遵从性和安全也是非常重要的尤其是当它来到客户数据 — — 特别是位置、 传输和处理的数据。有医学史、 测试和实验室的结果和保险信息,名字只是几个方面的重大责任。

将 SQL Server 数据库迁移到 Windows Azure VM

虽然 Microsoft 已经发布了社区技术预览 (CTP) 版本的部署向导,我们会采取一种更手动方法,给了一个更好的主意,在部署过程中会发生什么。我们基本上是从我们的处所上数据库创建一个 BACPAC 文件,然后将它导入我们 Windows Azure SQL 服务器 VM。

在创建一个 BACPAC 文件之前,我们建议两个初步步骤。首先,从数据库断开连接的所有用户,请执行传统的备份。这保留事务日志的完整性,并确保正确、 完整地部署数据库。我们绝对不鼓励 BACPAC 文件从现场生产数据库的创建。应从备份映像创建 BACPAC 文件。接下来,创建一个 Windows Azure SQL 服务器的虚拟机。可以创建您自己的 VM,并将其上传,如果您希望,但比较简单的途径就是要利用 Windows Azure 管理门户网站上存在的 Windows Azure 图像画廊。它允许您只需选择列表中的可用 VM 映像。

若要开始,登录到 Windows Azure 管理门户。在命令栏上,单击新建 |虚拟机 |从图库。图 3列出了 SQL Server 和 Windows 服务器,您可从中选择的各种风味。


图 3 图像画廊为 Windows Azure 的虚拟机

库中选择图像后,可以从一个硬件选项列表中进行选择。图 4 表明,在高结束你可以选择 8 芯和 56 GB 的 RAM。


图 4 可用的虚拟机配置

导出您的处所数据库 BACPAC 第一,要牢记这一进程是特定于 SQL 服务器 2012年。

  1. 若要创建一个 BACPAC 文件,启动 SSMS 并连接到的处所上实例。
  2. 下一步,在对象资源管理器中,展开要从中导出数据库并创建生成 BACPAC 的实例的节点。
  3. 用鼠标右键单击数据库名称,单击任务,然后选择导出的数据层应用程序。会出现一个向导,系统将要求您为 BACPAC 文件的存储目标。

这里的伟大之处是向导会让你在 Microsoft 数据中心,它可以大大简化导入过程中的从 Windows Azure SQL 服务器虚拟机在 Windows Azure 存储中存储的 BACPAC 文件。如果你没有一个存储帐户,您需要转到 Windows Azure 管理门户网站,并创建一个第一。请确保记录与它关联的存储帐户名称和管理密钥,他们就要求的向导。假设您遇到任何错误,你现在是在完成创建的 BACPAC 文件。请注意,此过程可以时间从几分钟到几小时,根据您的数据库的大小。此外,如前所述,你必须意识到它会中断连接,现有用户的服务,所以你应该先创建一个 BACPAC 文件之前的传统的备份。

BACPAC 文件是只是一个在 Windows Azure 存储 blob。一旦成功地创建了它,您可以启动 Visual Studio 时和查看使用服务器资源管理器中的文件 (或类似的工具,允许您浏览 Windows Azure 存储)。您的 BACPAC 文件的 URL 将会看起来像这样:https://[your-storage-­帐户名称].blob.core.windows。净额 / [您-­容器名称] / [您数据库名称].bacpac。

远程处理到您的 SQL 服务器数据库 VM 现在,您需要为远程到您先前创建的 SQL 服务器数据库 VM。请注意登录凭据将不是您的 Windows Azure 订阅凭据,但宁可凭据时指定您创建虚拟机。在我们的案例中的登录名是"msdn-vm\the-admin"再加上我们输入的密码。

从 Windows Azure 存储导入 BACPAC 文件一旦您登录到虚拟机,您可以将 BACPAC 文件导入云托管 VM。

  1. 启动 SSMS,然后连接到本地的 SQL Server 实例。
  2. 在对象资源管理器中的数据库上右键单击,然后选择导入的数据层应用程序菜单项启动向导。向导是类似于一种用于创建房地上数据库为 BACPAC。再一次输入存储帐户详细信息,如存储帐户和管理密钥的名称。向导将显示该容器和 BACPAC 文件的名称。
  3. 请单击旁边完成导入数据库过程。图 5 成云托管 VM 的 Microsoft 数据中心说明成功导入的数据库。


图 5 成功导入的 MarketIndexData

迁移到 Windows Azure SQL 数据库的 SQL Server 数据库

如前所述,Microsoft 提供了称为 Windows Azure SQL 数据库的 PaaS 数据库解决方案。要导入的 BACPAC 文件 (您刚刚创建的包装上处所数据库),登录到 Windows Azure 管理门户。选择 SQL 数据库,然后从命令窗口中导入。将要求您输入的 URL 作为一个 blob 文件驻留在 Windows Azure 存储中的 BACPAC 文件,如所示图 6。这是以前的 BACPAC 文件使用相同的 URL。这是 BACPAC 文件的最大好处之一:他们可以用于导入 Windows Azure SQL 数据库和 Windows Azure SQL 服务器数据库的虚拟机。


图 6 导入 BACPAC 文件

导入完成后,您将能够在 SSMS,打开的数据库只是我们与 Windows Azure SQL 服务器数据库的虚拟机一样。事实上,SSMS 工作与以前提交的所有四个选项。你只需要从 Windows Azure 管理门户获取数据库,服务器名称,您需要启用特定的客户端 IP 地址在门户。你会发现在的工具和实用程序支持 (Windows Azure SQL 数据库) 的详细信息页在 bit.ly/Vh8jGg

结束语

Windows Azure 平台不断发生迅速,特别是该地区的虚拟机和 SQL Server 数据库技术。客户积极地正在向云计算迁移他们的数据库在努力降低成本,以及利用其他资源如存储、 缓存、 身份、 Vpn、 消息传递和更多。虽然 Windows Azure SQL 数据库可以提供巨大的成本优势,它不会提供所需的许多企业客户的兼容性级别。在未来版本的 SSMS (2014 年) 中,部署向导,预计在本月的专栏中所示的手动过程实现自动化。当这些向导操作到达时,在这里学到的教训将确保你知道它们的工作方式和他们做什么。

Bruno Terkaly是 Microsoft 的开发推广人员。他的知识深度来源于多年来相关领域以及使用大量平台、语言、框架、SDK、库和 API 编写代码的经验。他不辞辛苦,就有关构建基于云的应用程序(特别是使用 Windows Azure 平台)编写代码、发布博客并给予现场演示。您可以阅读他的博客 blogs.msdn.com/b/brunoterkaly

Ricardo Villalobos 是一名资深的软件设计师,具有 15 年为供应链管理行业设计和创建应用程序的经验。他从达拉斯大学工商管理持有不同的技术认证,以及硕士学位,为微软工作作为平台福音传教士在全球范围内参与伙伴 DPE 组。您可以阅读他的博客在 blog.ricardovillalobos.com

Terkaly 和比利亚洛沃斯共同提出大行业会议。他们鼓励读者的 Windows Azure 内幕交易与他们联系的可用性。到达他们在 bterkaly@microsoft.comRicardo.Villalobos@microsoft.com

衷心感谢以下技术专家对本文的审阅:罗宾排头兵
罗宾排头兵是经验的拥有超过 25 年开发复杂的业务关键型应用程序的 Microsoft Windows Azure MVP。作为技术副总裁为 GoldMail,她迁移其整个基础架构到 Windows Azure 在 2 个月,他们的基础设施成本降低 90%。她现在是 Windows Azure 的顾问。您可以按照 @RobinDotNet 上 twitter 和读她的博客在 http://robindotnet.wordpress.com。