使用 Private Link 匯入或匯出 Azure SQL 資料庫
適用於:Azure SQL 資料庫
本文說明如何藉由 Azure 入口網站或 Azure PowerShell 來使用私人連結匯入或匯出 Azure SQL 資料庫,並在 Azure SQL 邏輯伺服器上將允許存取 Azure 服務設為關閉。
執行匯入或匯出時,您必須將 [允許存取 Azure 服務] 設定為 [ON
],否則匯入或匯出作業會失敗併發生錯誤。
注意
針對 Azure SQL 資料庫使用 Private Link 的匯入/匯出目前為預覽狀態。
什麼是匯入/匯出 Private Link?
資料庫匯入/導出私人連結是由Microsoft所建立的服務受控私人端點。 啟用時,私有連結會專門用於資料庫匯入/匯出過程、Azure SQL 資料庫和相關的 Azure 儲存體服務之間的所有通信。 服務管理的私人端點,是特定虛擬網路和子網路內的私人 IP 位址。
私人端點必須在不同步驟中,對 Azure SQL 邏輯伺服器和 Azure Blob 儲存帳戶進行手動核准,詳細資訊包含在本教學課程中。
使用 Azure 入口網站設定匯入匯出 Private Link
匯入/匯出 Private Link 可以透過 Azure 入口網站、PowerShell 或使用 REST API 來設定。
1. 使用 Azure 入口網站設定匯入/匯出 Private Link
啟用匯入私人連結
您必須啟用並核准匯入私人連結。 建立私人鏈接會自動在 Azure 中執行。
- 移至您要匯入資料庫的 Azure SQL 邏輯伺服器的 [概觀] 頁面。 從工具列選取 [匯入資料庫]。
- 在 [匯入資料庫] 頁面中,選取 [使用 Private Link] 選項核取方塊。
- 輸入儲存體帳戶、驗證認證、資料庫詳細資料,然後選取 [確定]。
啟用匯出私人連結
您必須啟用並核准匯出私人連結。 建立私人鏈接會自動在 Azure 中執行。
- 移至您要匯入的 Azure SQL 資料庫的 [概觀] 頁面。 從工具列選取 [匯出]。
- 在 [匯出資料庫] 頁面中,選取 [使用 Private Link] 選項核取方塊。
- 輸入儲存體帳戶、驗證認證、資料庫詳細資料,然後選取 [確定]。
2.核准 Azure SQL 邏輯伺服器的私人連結
新的私人端點必須由私人連結中心或 Azure SQL Database 中的使用者核准,或者您可以在各自的 Azure 入口網站位置中個別核准這兩個私人連結。
選項 1︰在 Azure 入口網站中的 Private Link 中心核准私人端點
流覽至 Azure 入口網站中的 Private Link 中心。 在 Azure 搜尋方塊中,搜尋「Private Link」。 選取 私密連結。
在 [私用連結中心] 中,選取 [擱置的連線] 。
選取您使用匯入/匯出服務建立的兩個私人端點。 選取 核准。
選項 2:在 Azure 入口網站中個別核准私人端點連線
移至裝載資料庫的 Azure SQL 邏輯伺服器。
在 [安全性] 底下的 [資源] 功能表中,選取 [網络]。
選取 [私人存取] 索引標籤。
在 [私人端點連線] 底下的清單中,選取您使用匯入/導出服務建立的私人端點。
選取 [核准。
移至裝載 BACPAC (
.bacpac
) 檔案所在 Blob 容器的儲存體帳戶。在 [安全性 + 網络] 下,選取 [網络]。
選取 [私人端點連線] 頁籤。
在清單中,選取匯入/匯出服務的私人端點。
選取 [核准] 以核准連線。
3.檢查匯入/匯出狀態
- 在核准私人端點之後,會在 Azure SQL 伺服器和 Azure 儲存體帳戶中啟動資料庫匯入或匯出作業。 在此之前,工作會暫時停止。
- 您可以在 [Azure SQL Server] 頁面的 [資料管理] 區段下,檢查 [匯入/匯出記錄] 頁面的資料庫匯入或匯出作業狀態。
使用 PowerShell 設定匯入/匯出 Private Link
在 PowerShell 中使用 Private Link 匯入資料庫
使用 New-AzSqlDatabaseImport Cmdlet,將匯入資料庫要求提交至 Azure。 匯入可能需要一些時間才能完成,視資料庫大小而定。 以 DTU 為基礎的布建模型支援針對每一層選取資料庫大小上限值。 匯入資料庫時,針對 Azure SQL Database使用支援的版本和服務目標值。
在下列 PowerShell 程式代碼範例中提供您自己的 <values>
,此範例會匯入名為 sample.bacpac
的 .bacpac 檔案,並建立具有 2 個一般用途虛擬核心的 Azure SQL Database。
$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.windows.net/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
在 PowerShell 中使用 Private Link 匯出資料庫
使用 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.windows.net/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
使用 REST API 建立匯入/匯出 Private Link
執行匯入和導出作業的現有 API 支援 Private Link。 請參閱匯入資料庫 API。
限制
目前,匯入/匯出的 Private Link 有下列限制:
若要搭配匯入/匯出使用 Private Link,使用者資料庫和 Azure 儲存體 Blob 容器必須裝載在相同類型的 Azure 雲端上。 例如,不是同時位於 Azure Commercial 中,就是同時位於 Azure Gov 中。 不支援跨雲端類型裝載。
目前不支援使用 PowerShell 從 Azure SQL 受控執行個體匯入或匯出資料庫的作業。
當使用者資料庫或 Azure 儲存體帳戶受到資源鎖定保護時,不應使用匯入/匯出 Private Link。
需要手動核准新的私人端點連線,才能完成匯出作業。 啟動匯出之後,請移至 Private Link 中心的「擱置連線」並核准連線,這可能需要幾分鐘的時間才會出現。
在建立新資料庫時,使用 Private Link 的匯入不支援指定備份儲存體備援,而會使用預設的異地備援備份儲存體備援來建立資料庫。 因應措施是,先使用 Azure 入口網站或 PowerShell 建立具有所需備份儲存體備援的空資料庫,然後將 BACPAC 檔案匯入這個空的資料庫中。
使用 REST API 搭配 Private Link 的匯入只能對現有資料庫進行,因為 API 使用資料庫延伸模組。 因應措施是建立具有所需名稱的空白資料庫,然後使用 Private Link 呼叫匯入 REST API。