將資料庫從 Azure SQL 受控執行個體還原至 SQL Server 2022

適用於:Azure SQL 受控執行個體

本文說明如何將資料庫備份從 Azure SQL 受控執行個體 還原至 SQL Server 2022。

概觀

SQL 受控執行個體與 SQL Server 2022 之間的資料庫格式對齊,可讓您將資料庫從受控執行個體輕鬆複製或移動到託管在內部部署、Azure 虛擬機器或其他雲端中之 SQL Server 2022 的 Enterprise、Developer 或 Standard Edition。

將資料庫從受控執行個體還原至 SQL Server 2022 執行個體會發生下列情節:

  • 確保 SQL 受控執行個體與 SQL Server 型產品之間的資料庫行動力。
  • 提供資料庫複本給客戶和其他合格的當事者。
  • 重新整理 SQL 受控執行個體外部的環境。

根據預設,所有現有和任何新部署的執行個體都可以將僅複製完整備份的資料庫從 SQL 受控執行個體還原至 SQL Server 2022。

重要

將僅複製完整備份的資料庫從 SQL 受控執行個體還原至 SQL Server 2022 功能開放使用到 SQL Server 2022 主要支援結束為止。

建立 SQL 受控執行個體備份

首先,建立認證以便從執行個體存取儲存體帳戶、取得僅複製備份的資料庫,然後加以儲存。

您可以使用受控識別或共用存取簽章 (SAS) 權杖來建立認證。

受控識別是 Microsoft Entra ID (之前稱為 Azure Active Directory) 的一項功能,可為 Azure 服務的執行個體 (例如 Azure SQL 受控執行個體) 提供 Microsoft Entra 識別碼中的自動受控識別,也就是系統指派的受控識別。

您可以使用此身分識別來授權其他 Azure 資源 (包括儲存體帳戶) 的資料存取要求。 Azure SQL 受控執行個體等服務具有系統指派的受控識別,並且可以有一個或多個使用者指派的受控識別。 您可以使用系統指派的受控識別或使用者指派的受控識別來授權要求。

在 Azure 儲存體管理員將備份檔案寫入儲存體帳戶之前,他們必須將權限授與受控識別以寫入資料。 將權限授與執行個體受控識別的方式,與對任何其他 Microsoft Entra 使用者授與權限的方式一樣。 例如:

  1. 在 Azure 入口網站中,請在儲存體帳戶的 [存取控制 (IAM)] 窗格中選取 [新增角色指派]。

  2. 選取 [儲存體 Blob 資料參與者] 內建的 Azure 角色型存取控制 (RBAC) 角色。 這會為必要的 Azure Blob 儲存體容器提供受控識別的讀取/寫入存取權。

    您可以授與更細緻的權限,而不是將受控識別授與儲存體 Blob 資料參與者 Azure RBAC 角色。 詳情請參閱在 Azure Data Lake Storage Gen2 中設定 ACL

  3. 在下一頁的 [存取權指派對象] 中,選取 [受控識別]。

  4. 選擇 [選取成員],然後在 [受控識別] 下拉式清單中,選取適當的受控識別。 如需詳細資訊,請參閱使用 Azure 入口網站指派 Azure 角色 (部分機器翻譯)。

現在,為受控識別驗證建立資料庫範圍認證的步驟很簡單。

在下列範例中,請注意 Managed Identity 是硬式編碼字串,您必須以實際的儲存體帳戶名稱取代泛型儲存體帳戶名稱:

CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<containername>] 
WITH IDENTITY = 'MANAGED IDENTITY'  

接下來,請執行下列範例T-SQL 命令以建立資料庫的 COPY_ONLY 備份:

BACKUP DATABASE [SampleDB]
TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<containername>/SampleDB.bak'
WITH COPY_ONLY

還原至 SQL Server

在 RESTORE DATABASE T-SQL 命令中使用 WITH MOVE 選項並提供檔案在目的地伺服器上的明確檔案路徑,將資料庫還原至 SQL Server。

若要將資料庫還原至 SQL Server,請執行下列範例 T-SQL 命令並提供適合環境的檔案路徑:

RESTORE DATABASE [SampleDB]
FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<containername>/SampleDB.bak'
WITH
MOVE 'data_0' TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\SampleDB_data_0.mdf',
MOVE 'log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\SampleDBlog.ldf',
MOVE 'XTP' TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\SampleDB_xtp.xtp'

注意

若要使用透明資料加密 (TDE) 還原待用的加密資料庫,SQL Server 的目的地執行個體必須能夠存取透過適用於 Azure Key Vault 的 SQL Server Connector 保護來源資料庫所使用的相同金鑰。 詳情請參閱使用 AKV 設定 SQL Server TDE.

考量

當您將資料庫還原至 SQL Server 時,請考慮下列事項:

  • 您必須使用 WITH MOVE 限定詞,並提供資料檔案的明確路徑。
  • 使用受服務管理的 TDE 金鑰加密的資料庫無法還原至 SQL Server。 只有在資料庫是使用客戶自控金鑰加密,且目的地伺服器可以存取加密該資料庫所使用的相同金鑰時,才能將該加密資料庫還原至 SQL Server。 詳情請參閱使用 Azure Key Vault 設定 SQL Server TDE
  • 日後,可能會在 Azure SQL 受控執行個體中建立某些需要變更資料庫格式的功能,造成備份與 SQL Server 2022 不相容。 使用這類功能需要客戶明確同意。

下一步