基础设施即服务系列:在Windows Azure虚拟机上运行SQL Server

2012年6月6日,我们宣布Windows Azure上一些强大的新功能现在可用于预览,包括新的Windows Azure虚拟机(VM)。其中有关Windows Azure虚拟机最强大的一件事是他们利用你存储账户的能力,即操作系统和硬盘驱动默认情况下会自动保存在Windows Azure,你可以选择是否地理位置复制。这使得Windows Azure虚拟机成为迁移你的非云端数据库应用程序至Windows Azure,而不必修改应用程序的理想化解决方案。另外,除了预览期间的一些功能,下面我们将要讨论到的,你可以在虚拟机里利用SQL Server 2012所有可用功能。对完整版SQL Server功能的支持使得Windows Azure虚拟机成为以下场景的理想解决方案:

  1. 迁移你的现有非云端SQL Server应用程序
  2. 快速开发、测试新的划算的数据库应用程序
  3. 备份你的非云端SQL Server数据库或者整个非云端虚拟机 到Windows Azure Storage,使用Windows Azure虚拟机快速还原备份。
  4. 扩展你的非云端数据库应用程序到Windows Azure – 例如出于规模情况、连接回中心非云端应用程序及符合的数据的考虑,你有部分的应用程序和数据运行在Windows Azure的虚拟机上。

在预览期间你有机会访问SQL Server 2012评估版库中镜像,以尝试在一台Windows Azure虚拟机上运行SQL Server。在预览期间,支持数据库镜像、日志传送、事务复制和备份还原功能,但是SQL Server 2012不支持AlwaysOn可用性群和族。当虚拟机从预览版转到基本可用版(GA)时将支持AlwaysOn可用性群和族,只剩下不支持AlwaysOn故障转移群集实例了。在这功能之外,在Windows Azure虚拟机基本可用版(GA)上你拥有SQL Server 2012完整的功能。

现在让我们深入讨论4个在Windows Azure虚拟机上运行SQL Server的重要场景。

1.  迁移你的现有非云端SQL Server应用程序

我们的企业客户现在可能有尚未虚拟化但想要虚拟化的应用程序。迁移你现有应用程序,我们建议从你的第2层和第3层部门的应用程序开始。如果此程序尚未虚拟化,你可以使用System Center 2012虚拟它成为Windows Server Hyper-V .vhd格式,或者如果你的应用程序已经用其他虚拟技术虚拟化了,你可以使用System Center 2012转换这个已虚拟应用程序至Windows Server Hyper-V .vhd格式。两种方式无论哪一种System Center 2012都让你很轻易的做这个处理。如果应用程序是合适的格式,你既可以只是迁移数据库到Windows Azure虚拟机上,也可以迁移整个非云端VHD到Windows Azure虚拟机。

下面是仅迁移数据库的步骤:

  • 步骤1: 使用免费的叫做Microsoft Assessment and Planning (MAP)的工具你需要确认哪个数据库是要迁移的。然后提供一个使用Windows Azure Management预览门户网站存储SQL Server镜像之一的新虚拟机
  • 步骤2: 你可以使用SQL Server Management Studio为非云端数据库创建一个数据库部署包,或者使用数据库导出/导入向导将数据库迁移至Windows Azure虚拟机上的SQL Server。
  • 步骤3: 你需要在Windows Azure预览门户网站端和虚拟机Windows防火墙进入端口设置上配置安全策略。然后你可以使用部署包或数据库导出/导入向导来导入数据库。
  • 步骤4: 完成这些之后,你可以使用Windows Azure预览门户网站监视虚拟机,或者使用SQL Server Management Studio监视SQL Server数据库。

下面是迁移整个VHD的步骤:

  • 步骤1:使用免费的叫做Microsoft Assessment and Planning (MAP)的工具你需要确认哪个数据库是要迁移的。
  • 步骤2: 你需要转换你的数据库应用程序为Hyper-V .vhd格式。系统中心虚拟机管理器能够实现物理-虚拟转换(P2V)或者虚拟-虚拟转换(V2V)。之后,你可以使用csupload、vhdctrl或者任何其他在商场上可用的Windows Azure Storage资源管理工具上传VHD到Windows Azure Storage。请确保在(上传)VHD之前你启用远程桌面,然后转换VHD为固定大小的VHD,以页面blob形式上传。
  • 步骤3: 你可以使用已上传的VHD创建一个虚拟机。然后你需要在Windows Azure预览门户网站端和虚拟机Windows防火墙进入端口设置上配置安全策略。
  • 步骤4:完成这些之后,你可以使用Windows Azure预览门户网站监视虚拟机,或者使用SQL Server Management Studio监视SQL Server数据库。

2.  开发和测试

在Windows Azure虚拟机上开发和测试,你可以从使用相同的非云端的熟悉的用来开发你的项目的SQL Server数据工具开始,而不是从你上传数据库应用程序到虚拟机,部署虚拟机以测试此应用程序开始。稍后你可以决定在不修改此应用程序情况下取回此应用程序到非云端。

下面是开发和测试一个新应用程序的步骤:

  • 步骤1: 你需要提供一个使用Windows Azure Management预览门户网站存储SQL Server镜像之一的新虚拟机。
  • 步骤2: 然后你可以使用SQL Server数据工具开发新的应用程序。 然后你可以使用SQL Server Management Studio为非云端数据库创建一个数据库部署包,或者使用数据库导出/导入向导将数据库迁移至Windows Azure虚拟机上的SQL Server。
  • 步骤3:你需要在Windows Azure预览门户网站端和虚拟机Windows防火墙进入端口设置上配置安全策略。然后你可以使用部署包或数据库导出/导入向导来导入数据库。
  • 步骤4:完成这些之后,你可以使用Windows Azure预览门户网站监视虚拟机,或者使用SQL Server Management Studio监视SQL Server数据库。

3.  备份你的非云端SQL Server数据库或者整个非云端虚拟机

为了备份数据库或者整个虚拟机到云端,你可以从使用SQL Server Management Studio创建你的备份文件开始。一旦备份文件创建完毕,你只需使用Windows Azure预览门户网站迁移他们至Windows Azure Storage。这很简单。

下面是备份的步骤:

  • 步骤1: 你需要确认哪一个数据库要备份。然后你需要使用Windows Azure管理门户网站提供一个新的Windows Azure Storage账户。
  • 步骤2: 你可以使用SQL Server Management Studio执行备份操作。
  • 步骤3: 然后你可以使用csupload、vhdctrl或者任何其他在商场上可用的Windows Azure Storage资源管理工具上传所有的备份文件到Windows Azure Storage。
  • 步骤4: 完成这些之后,你可以继续使用SQL Server Management Studio日常备份维护工作。

4.  扩展你的非云端数据库应用程序到Windows Azure

想要扩展你的非云端应用程序到运行在Windows Azure虚拟机上的应用程序上,你可以充分利用新的Windows Azure网络功能,它允许你安全的加入你虚拟机上的Windows Azure网络到你的非云端网络域中。这允许你为有着现有的非云端活动目录认证存储的最终用户进行无缝认证。这种情形让你充分利用有着全球影响力和成本效益的Windows Azure,同时仍然能够遵守任何地方的、行业的或者企业数据所遵循的法律。

一下是扩展一个应用程序的步骤:

  • 步骤1: 你可以使Windows Azure虚拟网络在非云端和Windows Azure之间童工一个VPN连接。然后你需要提供一个使用Windows Azure Management预览门户网站存储SQL Server镜像之一的新虚拟机。
  • 步骤2: 你可以在Windows Azure虚拟机上使用SQL数据工具修改应用程序使之指向SQL Server。然后你可以使用SQL Server Management Studio为非云端数据库创建一个数据库部署包,或者使用数据库导出/导入向导将数据库迁移至Windows Azure虚拟机上的SQL Server。
  • 步骤3:你需要在Windows Azure预览门户网站端和虚拟机Windows防火墙进入端口设置上配置安全策略。然后你可以使用部署包或数据库导出/导入向导来导入数据库。
  • 步骤4:完成这些之后,你可以使用Windows Azure预览门户网站监视虚拟机,或者使用SQL Server Management Studio监视SQL Server数据库。

如果你尚未尝试过SQL Server 2012评估版,(它)现在在Windows Azure虚拟机预览版上可用。在这里了解更多关于新Windows Azure虚拟机。 另外,你会发现以下指南对运行在Windows Azure虚拟机上的SQL Server有用:

你还可以查看 SQL on VM MSDN论坛.

- Ramnik
Gulati,SQL Server高级产品营销经理

本文翻译自:

https://blogs.msdn.com/b/windowsazure/archive/2012/06/21/virtual-machines-series-running-sql-server-in-a-windows-azure-virtual-machine.aspx