Windows Azure SQL 数据库介绍系列 (2)

上篇博文中我们讲述了如何创建一个SQL 数据库的具体步骤。在有了一个可使用的SQL 数据库后,我们如何可以将在自己本地已存在的SQL Server数据库迁移到云上的数据库中呢?本文将给大家介绍将本地数据库迁移到 Microsoft Azure SQL 数据库或者在 Azure 中的服务器之间进行迁移的主要几种方法。

迁移准备:

迁移数据库需精心规划,以确保应用程序能够持续正常运行。请考虑以下事项:

  • 如果数据库包含 Azure SQL Database 所不支持的对象,则可能需要进行应用程序更改。
  • 需要删除 Azure SQL Database 所不支持的功能的依赖项,例如 SQL Server 复制。
  • 需要删除 Azure SQL Database 所不支持的 Transact-SQL 语法的依赖项,例如分布式查询。

         参考文档:

         Azure SQL Database 一般性的指导原则和限制

         https://msdn.microsoft.com/zh-cn/library/azure/ee336245.aspx

  • 了解你的工作负载。在为数据库选择适当的服务层和性能级别时,了解自己的工作负载将很有帮助。

         参考文档:

         Azure SQL Database 服务层和性能级别

         https://msdn.microsoft.com/zh-cn/library/azure/dn741336.aspx

  • 可能需要进行应用程序更改,以便在将数据库从本地转移到外部数据中心时,应用程序能够有效运行。例如,网络延迟可能会受到影响,这就需要你修改应用程序,以最大程度地减少通过网络传输的数据量。

主要方法和工具 :

1. Azure SQL Database 导入和导出服务 (Import/Export Service)

导入和导出服务可以在Windows Azure 管理门户网站上导出SQL 数据库,在 Azure Blob 存储帐户中存储导出文件,然后将该文件作为新的 Azure SQL Database 导入。执行这种导出时创建的文件称为
BACPAC (.bacpac) 文件。这种方法适合在Azure 中的服务器之间进行迁移。

导出:

在 SQL 数据库的列表视图中,单击要导出的数据库的名称。在任务栏中单击“导出”打开“导出数据库”对话框 (如下图)。

 
导入:

单击“新建”>“数据服务”>“SQL Database”>“导入”。此时将打开“导入数据库”对话框。单击“BACPAC
URL”下的文件夹可以导航到存储帐户、容器和所导出的 .bacpac 文件的文件名来导入数据库。

2. 数据库复制(Database Copy)

数据库复制功能可在 Azure 中创建与现有 Azure SQL Database 在事务上一致的新数据库。这种方法适合在Azure 中的服务器之间进行迁移。

使用数据库复制功能时,数据库异步复制,因此在整个复制过程中都不需要与 Azure SQL Database 服务器的连接。你可以通过登录到目标服务器的 master 数据库并执行含 CREATE DATABASE 子句 的 Transact-SQL AS COPY OF 语句,复制数据库。然后,你可以通过使用目标服务器上的 sys.dm_database_copiessys.databases 视图,监视该复制过程。你可以使用不同数据库名称将数据库复制到同一 Azure SQL Database 服务器,也可以将数据库复制到不同的 Azure SQL Database 服务器。

 

--Sample Script #1 - Creating a database copy

CREATE DATABASE AdventureWorksCopy

AS COPY OF AdventureWorks

GO

-- Sample Script #2 - Package wise events

SELECT * FROM sys.dm_database_copies

SELECT state_desc, * FROM sys.databases

3. DA BACPAC

DAC BACPAC通过以下方法来迁移架构和数据:从现有的本地 SQL Server 中导出 BACPAC,在 Azure Blob 存储帐户中存储该文件,然后将其导入新的 Azure SQL Database 数据库。可以在 SQL Server Management Studio 中使用导出数据层应用程序向导创建 BACPAC(如下图)。有关详细信息,请参阅操作方法:使用 DAC BACPAC 将数据库迁移到 Azure SQL Database

 

4. SQL Server 导入和导出向导

使用 SQL Server 导入和导出向导可以轻松创建用于迁移数据的 SSIS 包(如下图)。配置源和目标后,可以指定基本的数据转换。可以以作业的形式保存、修改、执行和计划这些包。有关详细信息,请参阅操作方法:使用导入和导出向导将数据库迁移到 Azure SQL Database。这种方法适合将本地数据库迁移到 Microsoft Azure SQL Database中。

5.  SQL Database 迁移向导 (SQL Server migration wizard)

SQL Database 迁移向导是在Codeplex网站提供的一个免费开源的工具,是可以帮助你在本地 SQL Server 与 Azure SQL Database 之间以及 Azure SQL Database 服务器之间迁移架构和数据的工具。该工具还可以分析跟踪文件和脚本,以确定它们是否存在 Azure SQL Database 兼容性问题。它的实现方法是自动生成数据库架构脚本然后在Azure SQL Database上执行脚本,最后调用本地的BCP工具将数据导入Azure SQL Database。你可以在https://sqlazuremw.codeplex.com/网页中下载到该工具。有关详细信息,请参阅操作方法:使用 SQL Database 迁移向导

6. SQL Server Migration Assistant

SQL Server Migration Assistant (SSMA) 是一个套件产品,可用于将数据库从 Access、MySQL、Oracle 或 Sybase 等其他产品迁移到 Azure SQL Database。有关详细信息,请参阅操作方法:将 SQL Server Migration Assistant 与 Azure SQL Database 结合使用

这就是今天的分享,更多Windows Azure SQL 数据库介绍请持续关注本博客的更新。