Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
在上篇博文中我们讲述了如何创建一个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_copies 和 sys.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 数据库介绍请持续关注本博客的更新。