使用自動資料庫備份進行復原 - Azure SQL Database 和 SQL 受控執行個體

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

下列選項可供使用自動資料庫備份進行的資料庫復原使用。 您可以:

  • 在相同的伺服器上建立新的資料庫,並復原到保留期間內的指定時間點。
  • 在相同的伺服器上建立資料庫,並復原到已刪除資料庫的刪除時間。
  • 在相同區域中的任何伺服器上建立新的資料庫,並復原到最新的備份點。
  • 在任何其他區域中的任何伺服器上建立新的資料庫,並復原到最新複寫的備份點。 目前不支援跨區域與跨訂閱 SQL 受控執行個體的時間點還原。

如果您已設定備份長期保留,您也可以從任何伺服器上的任何長期保留備份建立新資料庫。

重要

在還原期間,您無法覆寫現有的資料庫。

當您使用標準或進階服務層級時,您的資料庫還原可能會產生額外的儲存成本。 當還原資料庫的大小上限大於目標資料庫的服務層級和效能等級所包含的儲存體數量時,就會產生額外的成本。 如需有關額外儲存體的價格詳細資訊,請參閱 SQL Database 價格頁面。 如果實際的已使用空間量小於已包含的儲存體數量,您可以將資料庫大小上限設定為已包含的數量,以避免此額外成本。

復原時間

使用自動資料庫備份還原資料庫的復原時間會受到一些因素所影響:

  • 資料庫的大小。
  • 資料庫的計算大小。
  • 相關的交易記錄數目。
  • 需要重新執行以復原到還原點的活動數目。
  • 網路頻寬 (如果還原到不同區域)。
  • 要在目標區域中處理的並行還原要求數目。

針對大型及/或頻繁使用的資料庫,還原可能需要數小時。 如果區域內發生中斷延長,可能將會起始大量的異地還原要求以進行災害復原。 當有許多要求時,則該區域中個別資料庫的復原時間可能會增加。 大多數資料庫還原都會在 12 小時內完成。

針對單一訂用帳戶,同時還原要求數目有一些限制。 這些限制適用於時間點還原、異地還原和從長期保留備份還原的任何組合。

提示

對於正在進行中的資料庫還原,會優先執行 Azure SQL 受控執行個體系統更新。 在受控執行個體的系統更新時,所有擱置的還原都會暫停,並在套用更新後繼續。 此系統行為可能會延長還原的時間,尤其會對長時間執行的還原造成影響。 若要達到資料庫還原的可預測時間,請考慮設定維護視窗,允許在特定日期/時間排程系統更新,並考慮在已排程維護視窗之外的日期/時間執行資料庫還原。

部署選項 正在處理的並行要求的最大數目 正在提交的並行要求的最大數目
單一資料庫 (每個訂閱) 30 100
彈性集區 (每個集區) 4 2000

沒有內建方法可還原整部伺服器。 如需如何完成此工作的範例,請參閱 Azure SQL Database:完整伺服器復原

重要

若要使用自動備份進行復原,您必須是訂用帳戶中的 SQL Server 參與者角色或是 SQL 受控執行個體參與者角色 (視復原目的地而定) 的成員,或者您必須是訂用帳戶擁有者。 如需詳細資訊,請參閱 Azure RBAC:內建角色。 您可以使用 Azure 入口網站、PowerShell 或 REST API 來進行復原。 您無法使用 Transact-SQL。

時間點還原

您可以使用 Azure 入口網站、PowerShell \(英文\) 或 REST API \(部分機器翻譯\),將獨立、集區或執行個體資料庫還原到較早的時間點。 要求可以針對還原的資料庫指定任何服務層級或計算大小。 請確定在您要還原資料庫的目標伺服器上有足夠的資源。

當完成時,還原程序會在與原始資料庫相同的伺服器中建立新資料庫。 還原的資料庫會根據其服務層級和計算大小依一般費率計費。 在完成資料庫還原之前,不會產生任何費用。

基於復原目的,您通常會將資料庫還原到較早的時間點。 您可以將還原的資料庫視為原始資料庫的替代品,或將其做為資料來源來更新原始資料庫。

重要

您只能在相同的伺服器上執行還原,時間點還原不支援跨伺服器還原。

  • 資料庫取代

    如果要使用還原的資料庫作為原始資料庫的替代品,您應該指定原始資料庫的計算大小和服務層級。 您可以重新命名原始資料庫,然後使用 T-SQL 中的 ALTER DATABASE 命令提供原始名稱給還原的資料庫。

  • 資料復原

    如果您打算從還原的資料庫擷取資料,以便從使用者或應用程式錯誤中復原,您就必須撰寫並執行資料復原指令碼,以從還原的資料庫中擷取資料並套用至原始資料庫。 雖然還原作業可能要花很長的時間才能完成,但還原中的資料庫在整個還原過程中都會顯示在資料庫清單上。 如果您在還原期間刪除該資料庫,系統將會取消還原作業,而且不會針對未完成還原的資料庫向您收費。

使用 Azure 入口網站進行時間點還原

您可以在 Azure 入口網站中,從所要還原資料庫的 [概觀] 刀鋒視窗,將單一或執行個體資料庫復原至某個時間點。

SQL Database

若要使用 Azure 入口網站來將資料庫復原至某個時間點,請開啟資料庫概觀頁面,然後選取工具列上的 [還原]。 選擇備份來源,然後選取將會建立新資料庫的時間點備份點。

Screenshot of database restore options for SQL Database.

SQL 受控執行個體

若要使用 Azure 入口網站來將受控執行個體資料庫復原至某個時間點,請開啟資料庫概觀頁面,然後選取工具列上的 [還原]。 選擇將會建立新資料庫的時間點備份點。

Screenshot of database restore options for SQL managed instance.

提示

若要以程式設計方式從備份還原資料庫,請參閱使用自動備份以程式設計方式復原

還原已刪除的資料庫

您可以在相同伺服器上或相同受控執行個體上,將已刪除的資料庫還原到刪除時間或較早的時間點。 您可以透過 Azure 入口網站、PowerShell \(英文\) 或 REST (createMode=Restore) \(部分機器翻譯\) 來完成此作業。 您可以藉由從備份建立新資料庫,來還原已刪除的資料庫。

重要

如果您刪除伺服器執行個體或受控執行個體,其所有資料庫也會一併刪除且無法加以復原。 您無法還原已刪除的伺服器或受控執行個體。

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

您可以在 Azure 入口網站中,從伺服器或受控執行個體資源還原已刪除的資料庫。

提示

在 Azure 入口網站的 [已刪除的資料庫] 頁面上,或以程式設計方式顯示已刪除的資料庫時,最近刪除的資料庫可能需要幾分鐘的時間才會出現。

SQL Database

若要使用 Azure 入口網站將已刪除資料庫復原到刪除時間,請開啟伺服器概觀頁面,然後選取 [已刪除的資料庫]。 選取您想要還原的已刪除資料庫,然後輸入新資料庫名稱,系統將使用從備份還原的資料加以建立。

Screenshot of restore deleted database

SQL 受控執行個體

若要使用 Azure 入口網站復原受控資料庫,請開啟受控執行個體概觀頁面,然後選取 [已刪除的資料庫]。 選取您想要還原的已刪除資料庫,然後輸入新資料庫名稱,系統將使用從備份還原的資料加以建立。

Screenshot of restore deleted Azure SQL Managed Instance database

使用 PowerShell 還原已刪除的資料庫

使用下列範例指令碼,藉由使用 PowerShell 來還原 SQL Database 或 SQL 受控執行個體的已刪除資料庫。

SQL Database

如需示範如何還原 Azure SQL 資料庫中已刪除資料庫的 PowerShell 指令碼範例,請參閱使用 PowerShell 還原資料庫

SQL 受控執行個體

如需示範如何還原已刪除執行個體資料庫的 PowerShell 指令碼範例,請參閱使用 PowerShell 還原已刪除的執行個體資料庫

提示

若要以程式設計方式從備份還原已刪除的資料庫,請參閱使用自動備份以程式設計方式執行復原

異地復原

重要

  • 異地還原僅適用於已設定了異地備援備份儲存體的 SQL 資料庫或受控執行個體。 若您目前未針對資料庫使用異地複寫備份,則可以設定備份儲存體備援來變更此設定。
  • 異地還原只能在位於相同訂用帳戶中的 SQL 資料庫或受控執行個體上執行。

您可以從最新的異地複寫備份,在任何 SQL Database 伺服器上還原資料庫,或在任何 Azure 區域中的任何受控執行個體上還原執行個體資料庫。 使用異地複寫備份作為來源進行異地還原。 即使因為中斷而無法存取資料庫或資料中心,您也可以要求異地還原。

當您的資料庫因為裝載區域中的事件而無法使用時,異地還原是預設復原選項。 您可以將資料庫還原至任何其他區域中的伺服器。 在建立備份時以及對它進行異地複寫到不同區域中的 Azure Blob 之間會有延遲。 因此,還原後的資料庫可能落後原始資料庫最多一個小時。 下列圖解顯示從另一個區域中的上次可用備份來還原資料庫。

Graphic of geo-restore

使用 Azure 入口網站進行異地還原

在 Azure 入口網站中,您可以建立新的單一或受控執行個體資料庫,然後選取可用的異地還原備份。 新建立的資料庫包含異地還原備份資料。

SQL Database

若要從 Azure 入口網站在您選擇的區域和伺服器中,對單一資料庫進行異地還原,請遵循這些步驟:

  1. 從 [儀表板],選取 [新增]>[建立 SQL Database]。 在 [基本] 索引標籤上,輸入必要資訊。

  2. 選取 [其他設定]

  3. 針對 [使用現有的資料],請選取 [備份]。

  4. 針對 [備份],請從可用異地還原備份清單中選取備份。

    Screenshot of Create SQL Database options

完成從備份建立新資料庫的程序。 當您在 Azure SQL Database 中建立資料庫時,其會包含已還原的異地還原備份。

SQL 受控執行個體

若要從 Azure 入口網站將執行個體資料庫異地還原至您所選區域中的現有受控執行個體資料庫,請選取您要在其上還原資料庫的受控執行個體。 請遵循下列步驟:

  1. 選取 [新增資料庫]。

  2. 輸入想要的資料庫名稱。

  3. 在 [使用現有資料] 底下,選取 [備份]。

  4. 請從可用異地還原備份清單中選取備份。

    Screenshot of New database options

完成建立新資料庫的程序。 當您建立執行個體資料庫時,其會包含已還原的異地還原備份。

使用 PowerShell 進行異地還原

SQL Database

如需顯示如何針對單一資料庫執行異地還原的 PowerShell 指令碼範例,請參閱使用 PowerShell 將單一資料庫還原到較早的時間點

SQL 受控執行個體

如需示範如何針對受控執行個體資料庫執行異地還原的 PowerShell 指令碼,請參閱使用 PowerShell 將受控執行個體資料庫還原到另一個地理區域

異地還原的考量

您無法在異地次要資料庫上執行還原時間點。 您只能在主要資料庫上執行此動作。 如需使用異地還原來從中斷復原的詳細資訊,請參閱從中斷復原

重要

異地還原是 SQL Database 和 SQL 受控執行個體中最基本的災害復原解決方案。 其依賴自動建立的異地複寫備份,且復原點目標 (RPO) 最多 1 小時,以及最多 12 小時的預估復原時間。 其不保證在區域中斷之後,該目標區域將會擁有還原資料庫的容量,因為需求可能會明顯增加。 如果您的應用程式使用相對較小的資料庫,而且對企業而言並不重要,則異地還原是適當的災害復原解決方案。

對於需要大型資料庫且必須確保商務持續性的業務關鍵應用程式,請使用自動容錯移轉群組。 其提供較低的 RPO 和復原時間目標,而且一律保證容量。

如需商務持續性選項的詳細資訊,請參閱商務持續性概觀

使用自動備份進行程式設計復原

您也可以使用 Azure PowerShell 或 REST API 進行復原。 下表描述可用的命令集。

PowerShell

注意

本文使用 Azure Az PowerShell 模組,這是與 Azure 互動時建議使用的 PowerShell 模組。 若要開始使用 Az PowerShell 模組,請參閱安裝 Azure PowerShell。 若要瞭解如何遷移至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 遷移至 Az。

重要

SQL Database 和 SQL 受控執行個體仍然支援 PowerShell Azure Resource Manager 模組,但所有未來的開發都是針對 Az.Sql 模組。 如需這些 Cmdlet,請參閱 AzureRM.Sql \(英文\)。 Az 模組和 Azure Resource Manager 模組中命令的引數幾乎都相同。

注意

還原點代表最早的還原點與最新的記錄備份點之間的期間。 Azure PowerShell 目前無法提供最新還原點的資訊。

SQL Database

若要還原獨立或集區資料庫,請參閱 Restore-AzSqlDatabase

Cmdlet 描述
Get-AzSqlDatabase 取得一或多個資料庫。
Get-AzSqlDeletedDatabaseBackup 取得可還原的已刪除資料庫。
Get-AzSqlDatabaseGeoBackup 取得資料庫的異地備援備份。
Restore-AzSqlDatabase 還原資料庫。

提示

如需顯示如何執行資料庫還原時間點的 PowerShell 指令碼範例,請參閱使用 PowerShell 還原資料庫

SQL 受控執行個體

若要還原受控執行個體資料庫,請參閱 Restore-AzSqlInstanceDatabase

Cmdlet 描述
Get-AzSqlInstance 取得一或多個受控執行個體。
Get-AzSqlInstanceDatabase 取得執行個體資料庫。
Restore-AzSqlInstanceDatabase 還原執行個體資料庫。

REST API

若要使用 REST API 來還原資料庫:

API 描述
REST (createMode=Recovery) 還原資料庫。
取得建立或更新資料庫狀態 傳回還原作業期間的狀態。

Azure CLI

SQL Database

若要使用 Azure CLI 來還原資料庫,請參閱 az sql db restore

SQL 受控執行個體

若要使用 Azure CLI 來還原受控執行個體資料庫,請參閱 az sql midb restore \(英文\)。

總結

自動備份可在發生使用者和應用程式錯誤、意外刪除資料庫和長時間中斷時保護您的資料庫。 所有服務層級和計算大小都可以取得此內建功能。

後續步驟