SQL Server managed backup 至 Microsoft Azure

適用於:SQL Server - 僅限 Windows

SQL Server 到 Microsoft Azure 的受控備份會管理 SQL Server 備份,並自動備份到 Windows Azure Blob 儲存體。 您可以選擇讓 SQL Server 根據資料庫的交易工作負載來決定備份排程。 或者,您可以使用進階選項來定義排程。 保留設定可決定在 Azure Blob 儲存體中儲存備份的時間長度。 Microsoft Azure 的 SQL Server 受控備份支援指定保留期間的時間點還原。

從 SQL Server 2016 (13.x) 開始,SQL Server Managed Backup to Microsoft Azure 的程式和基礎行為已變更。 如需詳細資訊,請參閱將 SQL Server 2014 managed backup 設定移轉至 SQL Server 2016

提示

對於在 Microsoft Azure 虛擬機器上執行的 SQL Server 執行個體,建議 Microsoft Azure 的 SQL Server 受控備份。

優點

目前自動份分多個資料庫需要制定備份策略、撰寫自訂程式碼及排程備份。 使用 Microsoft Azure 的 SQL Server 受控備份,您可以藉由只指定保留期限和儲存體位置,來建立備份計劃。 雖然可以使用進階設定,但它們並非必要。 Microsoft Azure 的 SQL Server 受控備份可排定、執行和維護備份。

可以在資料庫層級或 SQL Server 執行個體層級設定 Microsoft Azure 的 SQL Server 受控備份。 在執行個體層級設定時,也會自動備份所有新的資料庫。 資料庫層級的設定可用來覆寫個別案例上的執行個體層級預設值。

您也可以加密備份來提供額外的安全性,並在產生備份時,設定要控制的自訂排程。 如需如何針對 SQL Server 備份使用 Microsoft Azure Blob 儲存體的優點有關的詳細資訊,請參閱使用 Microsoft Azure Blob 儲存體進行 SQL Server 備份及還原

必要條件

Microsoft Azure 的 SQL Server 受控備份使用 Microsoft Azure 儲存體儲存備份檔案。 需要下列必要條件:

必要條件 描述
Microsoft Azure 帳戶 您可以在瀏覽 購買選項 之前,利用 免費試用版來開始。
Azure 儲存體帳戶 備份會儲存在與 Azure 儲存體帳戶相關聯的 Azure Blob 儲存體中。 如需建立儲存體帳戶的逐步指示,請參閱 關於 Azure 儲存體帳戶
Blob 容器 Blob 會組織於容器中。 您會指定適用於備份檔案的目標容器。 您可以在 Azure 管理入口網站中建立一個容器,或者使用 New-AzureStorageContainerAzure PowerShell 命令。
共用存取簽章 (SAS) 目標容器的存取權是由共用存取簽章 (SAS) 所控制。 如需 SAS 概觀,請參閱 共用存取簽章,第 1 部分:了解 SAS 模型。 您可以在程式碼中或使用 New-AzureStorageContainerSASToken PowerShell 命令,建立 SAS 權杖。 如需簡化此程序的 PowerShell 指令碼,請參閱在 Azure 儲存體上使用共用存取簽章 (SAS) 權杖搭配 Powershell 簡化 SQL 認證的建立。 SAS 權杖可以儲存在 SQL 認證中,以便與 Microsoft Azure 的 SQL Server 受控備份搭配使用。
SQL Server Agent SQL Server Agent 必須執行,Microsoft Azure 的 SQL Server 受控備份才能運作。 請考慮將自動啟動選項設定為自動化。

元件

Transact-SQL 是與 Microsoft Azure 的 SQL Server 受控備份進行互動的主要介面。 系統會使用系統預存程序來啟用、設定和監視 Microsoft Azure 的 SQL Server 受控備份。 系統函數可用來擷取現有的組態設定、參數值和備份檔案資訊。 擴充事件可用來呈現錯誤和警告。 警示機制可透過 SQL Agent 作業和 SQL Server 原則式管理加以啟用。 以下是物件清單及其與 Microsoft Azure 的 SQL Server 受控備份相關的功能描述。

PowerShell Cmdlet 也可用來設定 Microsoft Azure 的 SQL Server 受控備份。 SQL Server Management Studio 可使用 [還原資料庫] 工作,還原 Microsoft Azure 的 SQL Server 受控備份所建立的備份

系統物件 描述
MSDB 對於 Microsoft Azure 的 SQL Server 受控備份所建立的所有備份,儲存中繼資料、備份歷程記錄。
managed_backup.sp_backup_config_basic (Transact-SQL) 啟用 Microsoft Azure 的 SQL Server 受控備份。
managed_backup.sp_backup_config_advanced (Transact-SQL) 對於 Microsoft Azure 的 SQL Server 受控備份進行進階設定,例如加密。
managed_backup.sp_backup_config_schedule (Transact-SQL) 對於 Microsoft Azure 的 SQL Server 受控備份建立自訂排程。
managed_backup.sp_ backup_master_switch (Transact-SQL) 暫停和恢復 Microsoft Azure 的 SQL Server 受控備份。
managed_backup.sp_set_parameter (Transact-SQL) 對於 Microsoft Azure 的 SQL Server 受控備份啟用和設定監視。 例如:啟用擴充事件、通知的郵件設定。
managed_backup.sp_backup_on_demand (Transact-SQL) 對於為了使用 Microsoft Azure 的 SQL Server 受控備份而啟用的資料庫,執行臨機操作備份,而不中斷記錄鏈結。
managed_backup.fn_backup_db_config (Transact-SQL) 傳回資料庫或執行個體上所有資料庫目前 Microsoft Azure 的 SQL Server 受控備份狀態和設定值。
managed_backup.fn_is_master_switch_on (Transact-SQL) 傳回主切換的狀態。
managed_backup.sp_get_backup_diagnostics (Transact-SQL) 傳回擴充事件所記錄的事件。
managed_backup.fn_get_parameter (Transact-SQL) 傳回備份系統設定 (例如監視以及警示郵件設定) 的目前值。
managed_backup.fn_available_backups (Transact-SQL) 擷取指定資料庫或執行個體中所有資料庫的可用備份。
managed_backup.fn_get_current_xevent_settings (Transact-SQL) 傳回目前的擴充事件設定。
managed_backup.fn_get_health_status (Transact-SQL) 傳回擴充事件對指定期間所記錄的錯誤彙總計數。

備份策略

備份排程

您可以使用系統預存程序 managed_backup.sp_backup_config_schedule (Transact-SQL)。 如果您未指定自訂的備份排程,排程的備份類型及備份頻率會取決於資料庫的工作負載。 保留週期設定可用於指定備份檔案保留在儲存體中的時間,以及能否將資料庫復原至保留週期內的時間點。

備份檔案命名慣例

Microsoft Azure 的 SQL Server 受控備份會使用您指定的容器,因此您就能控制容器的名稱。 針對備份檔案,非可用性資料庫會使用下列慣例命名:名稱是使用資料庫名稱的前 40 個字元、資料庫 GUID (去除 '-'),以及時間戳記來建立。 區段之間會插入底線字元做為分隔符號。 完整備份會使用副檔名 .bak ,記錄備份則會使用 .log 。 對可用性群組資料庫而言,除了上述的檔案命名慣例以外,可用性群組資料庫 GUID 會加在資料庫名稱的 40 個字元之後。 可用性群組資料庫 GUID 值是 sys.databases 中的 group_database_id 值。

完整資料庫備份

如果下列任一項成立,Microsoft Azure 的 SQL Server 受控備份代理程式會排定完整的資料庫備份。

  • 初次啟用時,或以在執行個體層級使用預設設定啟用 Microsoft Azure 的 SQL Server 受控備份時,資料庫是 Microsoft Azure 的 SQL Server 受控備份。

  • 最後一次完整資料庫備份後,記錄成長已等於或大於 1 GB。

  • 最後一次完整資料庫備份後,已經過一週的最大時間間隔。

  • 記錄鏈結中斷。 Microsoft Azure 的 SQL Server 受控備份會藉由比較備份檔案的第一個和最後一個 LSN,定期檢查記錄鏈結是否保持完整。 如果記錄鏈結因故中斷,Microsoft Azure 的 SQL Server 受控備份就會排程完整資料庫備份。 記錄鏈結中斷的最常見原因可能是使用 Transact-SQL 發出的備份命令,或透過 SQL Server Management Studio 中的備份工作。 其他常見的情況包括備份記錄檔的意外刪除,或意外覆寫備份。

交易記錄備份

如果下列任一項成立,Microsoft Azure 的 SQL Server 受控備份會排定記錄備份。

  • 找不到記錄備份歷史記錄。 第一次啟用 Microsoft Azure 的 SQL Server 受控備份時,通常都是這種情況。

  • 使用的交易記錄空間是 5 MB 或更大。

  • 達到最後一次記錄備份後的 2 小時最大時間間隔。

  • 交易記錄備份一律會在完整資料庫備份之後執行。 其目的在保留完整備份之前的記錄檔鏈結。

保留週期設定

啟用備份時,必須設定保留週期的天數:最小值是 1 天,最大值是 90 天。

Microsoft Azure 的 SQL Server 受控備份會根據保留週期設定,評估能否在指定的時間內,復原到某個時間點,從而決定所要保留的備份檔案,以及指定所要刪除的備份檔案。 備份的 backup_finish_date 會用於指定及比對保留週期設定所指定的時間。

重要考量因素

當資料庫正在執行完整的資料庫備份作業時,Microsoft Azure 的 SQL Server 受控備份會等待目前作業完成,然後再為相同的資料庫執行另一個完整的資料庫備份。 同樣地,在指定的時間內,只可執行一個交易記錄備份。 不過,完整資料庫備份與交易記錄備份可以同時執行。 失敗會記錄為擴充事件。

如果排程超過 10 個並行完整資料庫備份,會透過擴充事件的偵錯通道發出警告。 Microsoft Azure 的 SQL Server 受控備份會維護其優先順序佇列,直到所有的備份均已排程並完成為止。

注意

SQL Server managed backup 不支援 Proxy 伺服器。

支援能力

下列支援限制和考量專屬於 SQL Server:

  • 支援 mastermodelmsdb 系統資料庫的備份。 不支援 tempdb 的備份。

  • 支援所有復原模式 (完整、大量記錄和簡單)。

  • Microsoft Azure 的 SQL Server 受控備份代理程式僅支援資料庫完整備份和記錄備份。 不支援檔案備份自動化。

  • Microsoft Azure Blob 儲存體是唯一支援的備份儲存體選項。 不支援備份至磁碟或磁帶。

  • Microsoft Azure 的 SQL Server 受控備份會使用備份至區塊 Blob 功能。 區塊 Blob 的大小上限為 200 GB。 但藉由使用等量,個別備份的大小上限可高達 12 TB。 如果您的備份需求超過此大小,請考慮使用壓縮,並在設定 Microsoft Azure 的 SQL Server 受控備份之前測試備份檔案大小。 測試方法有兩種:一種是藉由備份到本機磁碟,另一種則是利用 BACKUP TO URL Transact-SQL 陳述式手動備份到 Microsoft Azure 儲存體。 如需詳細資訊,請參閱 SQL Server Backup to URL

  • 以支援備份、高可用性或災害復原的其他技術設定 Microsoft Azure 的 SQL Server 受控備份時,可能會有一些限制。

  • 可用性群組中的資料庫備份將是 copy_only 備份

另請參閱