次の方法で共有

使用专用链接导入或导出 Azure SQL 数据库

适用于:Azure SQL 数据库

本文介绍如何通过 Azure 门户或 Azure PowerShell 使用 专用链接 导入或导出 Azure SQL 数据库。 在 Azure SQL 逻辑服务器上“允许访问 Azure 服务”设置为“关闭”。

通过使用专用链接,可以安全地执行导入和导出作,而无需将 “允许访问 Azure 服务 ”设置为 “打开”,这是标准导入和导出作所需的。

注意

使用 Azure SQL 数据库的专用链接进行导入和导出目前为预览版。

先决条件

在对专用链接使用导入和导出之前,请确保具有以下资源和配置:

  • 配置了专用终结点连接性并设置为虚拟网络的 Azure SQL 逻辑服务器
  • Azure 存储帐户,其中的 Blob 容器包含要导入的 BACPAC 文件或存储已导出的 BACPAC 文件。
  • Azure SQL 逻辑服务器和存储帐户必须在同一虚拟网络或对等互连虚拟网络中配置专用终结点
  • 需要适当权限来在 Azure SQL 逻辑服务器和存储帐户上批准专用终端连接

数据库导入/导出专用链接是由Microsoft创建的由服务管理的专用终结点。 在导入或导出期间启用 “使用专用链接 ”选项时,该服务会自动创建专用终结点,以促进数据库导入/导出过程、Azure SQL 数据库和 Azure 存储服务之间的安全通信。

这些服务托管的专用终结点是在现有 Azure SQL 逻辑服务器专用终结点所在的同一虚拟网络和子网中创建的。 终结点从该子网的地址空间接收专用 IP 地址,必须先手动批准,然后才能进行导入/导出操作。

重要

如果 Azure SQL 逻辑服务器或存储帐户已配置专用终结点,导入/导出服务会专门为导入/导出操作创建额外的由服务管理的专用终结点。 这些专用终结点与现有专用终结点分开,需要单独审批。

必须在单独的步骤中手动批准 Azure SQL 逻辑服务器和 Azure Blob 存储帐户的专用终结点。 本教程包括详细信息。

“导入/导出专用链接”体系结构的屏幕截图。

可以通过 Azure 门户、PowerShell 或 REST API 配置导入/导出专用链接。

注意

该服务会自动在 Azure SQL 逻辑服务器的现有专用终结点所在的虚拟网络和子网中创建专用终结点。 在导入/导出过程中,无需手动指定虚拟网络或子网。 如果您的SQL服务器没有配置专用终结点,则必须在将导入/导出与Private Link结合使用之前设置一个终结点。

需要启用和批准导入专用链接。 Azure 会自动创建专用链接。

  1. 转到要在其中导入数据库的 Azure SQL 逻辑服务器的 “概述 ”页。 从工具栏中选择 “导入数据库 ”。

  2. 在“导入数据库”页中,选中“使用专用链接”选项复选框。

  3. 输入存储帐户、身份验证凭据、数据库详细信息,然后选择“确定”。

需要启用和批准导出专用链接。 Azure 会自动创建专用链接。

  1. 转到要导出的 Azure SQL 数据库的 “概述 ”页。 从工具栏中选择“导出”。
  2. 在“导出数据库”页中,选中“使用专用链接”选项复选框。
  3. 输入存储帐户、身份验证凭据、数据库详细信息,然后选择“确定”。

用户必须在专用链接中心或 Azure SQL 数据库中批准新的专用终结点。 可以在各自的 Azure 门户位置单独批准这两个专用链接。

小窍门

如果您已为 Azure SQL 逻辑服务器和存储帐户配置专用终结点,您将看到新的服务托管专用终结点显示为 挂起的连接。 这些专用终端是专门为导入/导出操作而设的,与您现有的专用终端独立分开。 查找具有名称的专用终结点,指示这些终结点是由导入/导出服务创建的。

  1. 在 Azure 门户中导航到专用链接中心。 在 Azure 搜索框中,搜索 专用链接。 选择 专用链接

  2. 在专用链接中心,选择 延迟的连接

  3. 选择使用导入/导出服务创建的两个专用终结点。 选择批准

    Azure 门户的专用链接中心的屏幕截图,其中显示了如何批准这两个专用链接。

选项 2:在 Azure 门户中单独批准专用终结点连接

  1. 转到托管数据库的 Azure SQL 逻辑服务器。

  2. 在“安全”下的“资源”菜单中,选择 网络

  3. 选择“专用访问”选项卡。

  4. “专用终结点连接”下的列表中,选择使用导入/导出服务创建的专用终结点。

  5. 选择批准

    Azure 门户的屏幕截图,其中显示了如何批准 Azure SQL 数据库专用链接。

  6. 转到托管了包含 BACPAC (.bacpac) 文件的 Blob 容器的存储帐户。

  7. 安全 + 网络下,选择 网络

  8. 选择 专用终结点连接 选项卡。

  9. 在列表中,选择导入/导出服务的专用终结点。

  10. 选择“批准”以批准连接。

    Azure 门户的屏幕截图,其中显示了如何批准 Azure 存储中的 Azure 存储专用链接。

3.检查导入/导出状态

  1. 在 Azure SQL Server 和 Azure 存储帐户中批准专用终结点后,数据库导入或导出作业将开始。 在此之前,这些作业处于暂停状态。

  2. 可以在“Azure SQL Server”页的“数据管理”部分下的“导入/导出历史记录”页中检查数据库导入或导出作业的状态。

    Azure 门户的屏幕截图,其中显示了如何检查导入/导出作业状态。

使用 PowerShell 时,服务托管的专用终结点会自动在 Azure SQL 逻辑服务器的现有专用终结点所在的虚拟网络和子网中创建。 在运行这些命令之前,请确保 SQL Server 已配置专用终结点连接。

使用 New-AzSqlDatabaseImport cmdlet 向 Azure 提交导入数据库请求。 根据数据库大小,导入操作可能需要一些时间才能完成。 基于 DTU 的预配模型支持为每个层选择数据库最大大小值。 导入数据库时,使用 Azure SQL 数据库支持的版本和服务目标值。

在以下 PowerShell 代码示例中提供自己的 <values> 代码,该示例导入名为 sample.bacpac .bacpac 文件,并使用两个常规用途 vCore 创建 Azure SQL 数据库。

$importRequestParams = @{
   ResourceGroupName                      = "<resourceGroupName>"
   ServerName                             = "<serverName>"
   DatabaseName                           = "<databaseName>"
   DatabaseMaxSizeBytes                   = "<databaseSizeInBytes>"
   StorageKeyType                         = "StorageAccessKey"
   StorageKey                             = $(Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName -StorageAccountName "<storageAccountName>").Value[0]
   StorageUri                             = "https://myStorageAccount.blob.core.chinacloudapi.cn/importsample/sample.bacpac"
   Edition                                = "GeneralPurpose"
   ServiceObjectiveName                   = "GP_Gen5_2"
   UseNetworkIsolation                    = $true
   StorageAccountResourceIdForPrivateLink = "/subscriptions/<subscriptionId>/resourceGroups/<resource_group_name>/providers/Microsoft.Storage/storageAccounts/<storage_account_name>"
   SqlServerResourceIdForPrivateLink      = "/subscriptions/<subscriptionId>/resourceGroups/<resource_group_name>/providers/Microsoft.Sql/servers/<server_name>"
   AdministratorLogin                     = "<userID>"
   AdministratorLoginPassword             = $(ConvertTo-SecureString -String "<password>" -AsPlainText -Force)
}

$importRequest = New-AzSqlDatabaseImport @importRequestParams

使用 New-AzSqlDatabaseExport cmdlet 向 Azure SQL 数据库服务提交导出数据库请求。 根据数据库的大小,导出操作可能需要一些时间才能完成。

在以下 PowerShell 代码示例中提供自己的 <values>

$exportRequestParams = @{
   ResourceGroupName                      = "<resourceGroupName>"
   ServerName                             = "<serverName>"
   DatabaseName                           = "<databaseName>"
   StorageKeyType                         = "StorageAccessKey"
   StorageKey                             = $(Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName -StorageAccountName "<storageAccountName>").Value[0]
   StorageUri                             = "https://myStorageAccount.blob.core.chinacloudapi.cn/importsample/sample.bacpac"
   UseNetworkIsolation                    = $true
   StorageAccountResourceIdForPrivateLink = "/subscriptions/<subscriptionId>/resourceGroups/<resource_group_name>/providers/Microsoft.Storage/storageAccounts/<storage_account_name>"
   SqlServerResourceIdForPrivateLink      = "/subscriptions/<subscriptionId>/resourceGroups/<resource_group_name>/providers/Microsoft.Sql/servers/<server_name>"
   AdministratorLogin                     = "<userID>"
   AdministratorLoginPassword             = $(ConvertTo-SecureString -String "<password>" -AsPlainText -Force)
}

$exportRequest = New-AzSqlDatabaseExport @exportRequestParams

用于执行导入和导出作业的现有 API 支持专用链接。 请参阅 导入数据库 API

限制

目前,用于导入/导出的专用链接具有以下限制:

  • 目前不支持使用 PowerShell 从 Azure SQL 托管实例 导入或导出数据库。

  • 当用户数据库或 Azure 存储帐户受资源锁保护时,请勿使用导入/导出专用链接。

  • 需要手动批准新的私有终结点连接才能完成导出操作。 启动导出后,转到专用链接中心中的 挂起连接 并批准连接,这可能需要几分钟时间才能显示。

  • 使用专用链接导入不支持在创建新数据库时指定备份存储冗余,而是使用默认的异地冗余备份存储来创建。 解决方法是,首先使用 Azure 门户或 PowerShell 创建具有所需备份存储冗余的空数据库,然后将 BACPAC 文件导入此空数据库。

  • 结合使用专用链接和 REST API 的导入操作只能对现有数据库执行,因为 API 使用数据库扩展名。 解决方法是创建一个具有所需名称的空数据库,然后使用专用链接调用导入 REST API。