将 SQL 数据移动到 Azure SQL PaaS

Moving SQL Data into Azure SQL PaaS

我在 Azure VM 上安装的 SQL 服务器中有一个数据库。数据库大小为 2 GB。

将所有数据移动到 Azure SQL PAAS 服务的最佳方法是什么?

SQL 使用数据层应用程序迁移 export/import (BACPAC)

BACPAC 文件封装了数据库架构以及存储在数据库应用程序中的数据,这些数据可以简单地导入到 Azure SQL 数据库。
使用源数据库的工作负载需要在导出过程中脱机,以确保导出的 BACPAC 文件包含完整且一致状态的所有数据。

导出到 SQL Server Management Studio (SSMS) 中的 bacpac 文件

你可以关注这个post

  1. 在 SQL Server Management Studio (SSMS) 中打开并连接数据库文件。
  2. 要导出数据库文件,请右键单击数据库名称。在上下文菜单中,select 任务 > 导出数据层应用程序。
  3. 该选项将打开向导。单击“下一步”>“简介”页面并转到“导出设置”。

将 bacpac 文件导入 Azure SQL

  1. 连接到 Azure sql 后,转到对象资源管理器窗格,右键单击数据库,然后 select 导入数据层。
  2. 该选项将打开向导。单击“下一步”>“介绍”页面并转到“导入设置”。
  3. 请求导入设置到要导入的 bacpac 文件。

虽然@Harris Xu 发布的方法绝对正确,但我添加了我在使用 .bacpac 方法将 500+ GB SQL 服务器数据库从 Azure VM 迁移到 PaaS 时遇到的问题。

Azure SQL 数据库与 On-prim SQL 服务器或 VM 上的 SQL 服务器相比受到限制。

您在创建 .bacpac 文件时不会遇到这些问题,但当您尝试导入时,可能会出现以下一些兼容性问题。

  1. 主密钥、对称密钥、服务队列和证书不能 迁移到云端。在准备 bacpac 之前放下它们。

  2. 删除孤立用户。

  3. 如果您正在使用 XP_CMDSHELL、跟踪标志、DBCC 命令或列存储索引,您也必须将它们删除。

  4. Azure SQL DB 不允许跨数据库查询。删除所有出现的 ..

  5. 如果您从存储过程中调用 API,那么这在 Azure SQL 数据库中也是不可能的。作为解决方法,您可以使用 Logic Apps on Azure.

此外,Microsoft Migration 助手也可以帮助您提前发现兼容性问题。可以下载here.

注意:这不是问题的完整列表,我面对它们是因为我使用了上述所有功能,如果你不使用它们,你将不会面对它们。