將 Azure SQL 受控執行個體中的資料庫還原至先前的時間點

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

您可以使用時間點還原來建立資料庫,而此資料庫是特定稍早時間點的資料庫複本。 此文章說明如何在 Azure SQL 受控執行個體中執行資料庫的時間點還原。

注意

Create 或 Update v02.01.2022 已被取代。 從 2023 年 1 月開始,針對所有資料庫還原作業,使用取代 Create 或 Update v5.0.2022 API 呼叫。

概觀

時間點還原適用於復原情節,例如錯誤或失敗所造成的事件、未正確載入資料時,或刪除重要資料時。 您也可以直接使用它來測試和稽核資料庫部署。 根據您的資料庫設定,Azure 備份檔案會保留 7 到 35 天。

在下列情節中,您可以使用時間點還原來還原資料庫:

  • 從現有的資料庫
  • 從已刪除的資料庫
  • 到相同的受控執行個體或不同的受控執行個體
  • 到相同訂用帳戶中的受控執行個體,或不同訂用帳戶中的受控執行個體

下表顯示 SQL 受控執行個體的時間點還原情節:

案例 Azure 入口網站 Azure CLI PowerShell
將現有的資料庫還原至相同的受控執行個體 Yes .是 Yes
將現有的資料庫還原至不同的受控執行個體 Yes .是 Yes
將已刪除的資料庫還原至相同的受控執行個體 Yes .是 Yes
將已刪除的資料庫還原至不同的受控執行個體 Yes .是 Yes
將現有的資料庫還原至另一個訂用帳戶中的受控執行個體 Yes .是 Yes
將已刪除的資料庫還原至另一個訂用帳戶中的受控執行個體 Yes .是 Yes

權限

若要復原資料庫,您必須是:

若要將資料庫還原至不同的目標訂用帳戶,如果您不在 SQL 受控執行個體參與者角色中,則也應該具有下列權限:

  • 來源 SQL 受控執行個體上的 Microsoft.Sql/managedInstances/databases/readBackups/action
  • 目標 SQL 受控執行個體上的 Microsoft.Sql/managedInstances/crossSubscriptionPITR/action

如需詳細資訊,請參閱 Azure RBAC:內建角色

限制

這些限制適用於 SQL 受控執行個體中的時間點還原:

  • 您無法使用時間點還原來復原整個 SQL 受控執行個體部署。 僅使用時間點還原來建立裝載於 SQL 受控執行個體的資料庫複本。

  • 時間點還原的限制取決於您要將資料庫還原至相同訂用帳戶中的受控執行個體,還是還原至不同訂用帳戶中的受控執行個體。

  • 在 Azure SQL 受控執行個體上啟用服務端點原則時,將服務端點原則放在子網路上可防止從不同子網路的執行個體中進行時間點還原。

警告

請留意受控執行個體的儲存體大小。 根據要還原的資料大小,您可能會耗盡受控執行個體的儲存體。 如果受控執行個體中的儲存體空間不足,無法供已還原的資料使用,則請使用不同的方式。

還原至相同的訂用帳戶

如果您從一個受控執行個體還原至相同 Azure 訂用帳戶中的另一個受控執行個體,則這兩個受控執行個體都必須位於相同的區域中。 目前不支援跨區域還原。

還原到不同的訂閱

跨訂用帳戶來還原時間點還原備份具有下列限制:

  • 這兩個訂用帳戶必須位於相同的區域。
  • 這兩個訂用帳戶必須位於相同的租用戶。
  • 訂用帳戶類型必須是 Enterprise 合約、雲端解決方案提供者、Microsoft 認證合作夥伴或隨用隨付。
  • 您只能在主要執行個體上使用還原動作。
  • 您只能從主要區域還原備份。 跨訂用帳戶時間點還原不支援從異地複寫次要區域還原資料庫。
  • 採取還原動作的用戶必須具有 SQL 受管理執行個體 參與者角色指派,或具有下列明確許可權:
    • 來源 SQL 受控執行個體上的 Microsoft.Sql/managedInstances/databases/readBackups/action
    • 目標 SQL 受控執行個體上的 Microsoft.Sql/managedInstances/crossSubscriptionPITR/action
  • 如果您攜帶您自己的金鑰 (BYOK),則金鑰必須存在於這兩個訂用帳戶中。

還原現有的資料庫

您可以使用 Azure 入口網站、PowerShell 或 Azure CLI,以還原相同訂用帳戶中的現有資料庫。 如果您使用 PowerShell 或 Azure CLI 來還原至相同訂用帳戶中的不同執行個體,則請務必指定目標 SQL 受控執行個體資源的屬性。 資料庫預設會還原至相同的執行個體。

如果您還原至不同的訂用帳戶,則作為還原動作基礎的 Create 或 Update v5.0.2022 API 呼叫必須包含 restorePointInTimecrossSubscriptionTargetManagedInstanceId 以及 crossSubscriptionSourceDatabaseIdcrossSubscriptionRestorableDroppedDatabaseId

若要還原現有的資料庫,作法是移至 Azure 入口網站中的資料庫頁面,然後選取 [還原]。

或者,若要還原資料庫,您可以遵循下列步驟:

  1. 登入 Azure 入口網站

  2. 移至您打算將資料庫還原至其中的目標 SQL 受控執行個體。

  3. 在 [概觀] 頁面上,選擇 [+ 新增資料庫] 以開啟 [建立 Azure SQL 受控資料庫] 頁面。

    Screenshot that shows the SQL Managed Instance overview pane in the Azure portal, with adding a new database selected.

  4. 在 [建立 Azure SQL 受控資料庫] 頁面 [基本] 索引標籤的 [專案詳細資料] 下方,提供訂用帳戶和資源群組詳細資料。 然後,在 [資料庫詳細資料] 下方,提供您打算還原的資料庫的新名稱。 確認下拉式清單中列出正確的受控執行個體。 然後選取 [下一步: 資料來源 >]

    Screenshot of the Azure portal that shows the Basics tab of the Create Azure SQL Managed Database page.

  5. 在 [資料來源] 索引標籤上,選擇 [使用現有資料] 下方的 [時間點還原]。 提供訂用帳戶、資源群組和含有來源資料庫的受控執行個體。 從 [受控資料庫] 下拉式清單中,選擇您想要還原的資料庫,然後選擇您想要從中還原資料庫的時間點。 來源和目標執行個體可以是相同的執行個體或兩個不同的執行個體。 選取 [下一步: 其他設定 >]

    Screenshot of the Azure portal that shows the data source tab of the Create Azure SQL Managed Database page, with point-in-time restore selected.

  6. 在 [其他設定] 索引標籤上,您可以核取從來源資料庫繼承保留原則的方塊,或者,您也可以選取 [設定保留] 以開啟 [設定原則] 頁面,然後針對已還原的資料庫設定需要的保留原則。 完成後,選取 [檢閱 + 建立]。

    Screenshot of the Azure portal that shows the additional settings tab of the Create Azure SQL Managed Database page.

  7. 驗證成功時,在 [檢閱 + 建立] 上,選取 [建立] 以還原資料庫。

此動作會啟動還原程序,該程序會建立新的資料庫,並將原始資料庫於指定時間點的資料填入其中。 如需復原程序的詳細資訊,請參閱復原時間

還原已刪除的資料庫

您可以使用 Azure 入口網站、Azure PowerShell 或 Azure CLI 來還原已刪除的資料庫。

使用 Azure 入口網站來還原已刪除的受控資料庫:

  1. 在 Azure 入口網站中,移至您的來源受控執行個體。

  2. 在左側功能表的 [資料管理] 下方,選取 [備份]。

  3. 在 [顯示資料庫] 下方,選取 [已刪除]。

  4. 若要還原資料庫,請選取 [還原]。

    Screenshot that shows available databases in the portal, with the Restore button highlighted to restore a deleted database.

  5. 在 [建立 Azure SQL 受控資料庫] 中,輸入或選取要將資料庫還原至其中的目標受控執行個體詳細資料。 選取 [資料來源] 索引標籤。

  6. 在 [資料來源] 中,輸入或選取來源資料庫的詳細資料。 選取 [其他設定] 索引標籤。

  7. 在 [其他設定] 中,設定保留設定。 選取 [檢閱 + 建立] 索引標籤。

  8. 在 [檢閱 + 建立] 中,選取 [建立] 以還原已刪除的資料庫。

覆寫現有的資料庫

若要覆寫現有的資料庫,您必須執行下列動作:

  1. 卸除您想要覆寫的原始資料庫。
  2. 將從時間點還原的資料庫重新命名為您已卸除資料庫的名稱。

卸除原始資料庫

您可以使用 Azure 入口網站、PowerShell 或 Azure CLI 來卸除資料庫。

另一個卸除資料庫的選項是在 SQL Server Management Studio (SSMS) 中直接連線至受控執行個體,然後使用 DROP Transact-SQL (T-SQL) 命令:

DROP DATABASE WorldWideImporters;

使用下列其中一種方法來連線至您受控執行個體中的資料庫:

  1. 在 Azure 入口網站中,選取受控執行個體中的資料庫。

  2. 在命令列中,選取 [刪除]。

    Screenshot that shows how to delete a database by using the Azure portal.

變更新的資料庫名稱,使其符合原始資料庫名稱

使用 SQL Server Management Studio (SSMS),以直接連線至您的受控執行個體。 然後執行下列 T-SQL 查詢。 查詢會將已還原的資料庫名稱變更為您想要覆寫的已卸除資料庫名稱。

ALTER DATABASE WorldWideImportersPITR MODIFY NAME = WorldWideImporters;

使用下列其中一種方法來連線至您受控執行個體中的資料庫:

後續步驟

深入了解自動備份