分享方式:


SQL Server managed backup 至 Microsoft Azure

適用於︰SQL Server 2019 - 僅限 Windows

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

注意

SQL Server 2016 (13.x) 中,SQL Server 受控備份至 Microsoft Azure 的程序和基礎行為已變更。 如需更多資訊,請參閱移轉受控備份設定

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

優點

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

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

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

必要條件

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

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

元件

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

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

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

備份策略

下列各節說明了 SQL Server 受控備份至 Microsoft Azure 的備份策略。

備份排程

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

備份檔案命名慣例

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

完整資料庫備份

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

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

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

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

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

交易記錄備份

如果下列任一項條件成立,SQL Server 受控備份至 Microsoft Azure 會排定記錄備份:

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

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

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

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

保留期間設定

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

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

考量

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

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

注意

SQL Server 受控備份不支援 Proxy 伺服器。

支援能力

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

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

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

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

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

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

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

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

  • 如果您要將受控備份卸載至 Always On 可用性群組的次要複本,次要複本必須設定為 [可讀取],受控備份才能成功抽離多個檔案。