SQL Server 管理備份至 Microsoft Azure 管理並自動化 SQL Server 備份至 Azure Blob 儲存服務。 SQL Server 管理備份對 Microsoft Azure 所採用的備份策略,是基於資料庫的保留期間與交易負載。 SQL Server 管理備份至 Microsoft Azure 支援在指定保留期間內的點點還原。
SQL Server 可於資料庫層級或實例層級啟用Microsoft Azure管理備份,以管理SQL Server實例上的所有資料庫。 SQL Server 可以運行於本地端,或是在像 Azure 虛擬機這樣的託管環境中運行。 建議在 Azure 虛擬機器 上運行的 SQL Server 使用 SQL Server 管理備份至 Microsoft Azure。
使用 SQL Server 管理備份自動化 SQL Server 備份至 Microsoft Azure 的好處
目前要自動備份多個資料庫需要進行備份策略的制定、撰寫自訂程式碼及排程備份。 使用 SQL Server 管理備份到 Microsoft Azure,你只需要提供保留期限設定和儲存位置即可。 SQL Server 管理備份到 Microsoft Azure 負責排程、執行並維護備份。
SQL Server 管理備份到Microsoft Azure可以在資料庫層級設定,或以預設設定設定來設定 SQL Server 實例。 使用 SQL Server 管理備份自動化備份至 Microsoft Azure 有以下好處:
透過在實例層級設定預設值,你可以將這些設定套用到之後建立的任何資料庫,從而消除新資料庫未被備份或資料遺失的風險。
啟用 SQL Server 管理備份到 Microsoft Azure 並在資料庫層級設定保留期,允許你覆寫實例層級設定的預設設定。 這讓你能更細緻地控制特定資料庫的可恢復性。
使用 SQL Server 管理備份至 Microsoft Azure,您不必指定資料庫備份的類型或頻率。 你指定保留期限,SQL Server 管理備份到 Microsoft Azure 會決定資料庫備份的類型和頻率,並將備份存放在 Azure Blob 儲存服務上。 欲了解更多關於 SQL Server 管理備份至 Microsoft Azure 所用來建立備份策略的標準,請參閱本主題中的元件與概念章節。
當設定為使用加密時,備份資料會獲得額外的安全性。 欲了解更多資訊,請參閱 備份加密
欲了解更多使用 Azure Blob storage 進行 SQL Server 備份的好處,請參閱 SQL Server Backup 與 Azure Blob 儲存體 Service 的還原
術語和定義
SQL Server 受控備份至 Microsoft Azure
SQL Server 功能,能自動備份資料庫,並根據保留期間維護備份。
保留期
保留期是 SQL Server 管理備份對 Microsoft Azure 的用來決定哪些備份檔案應保留在儲存中,以便在指定時間範圍內恢復資料庫至某個時間點。 支援的數值範圍為1到30天。
原木鏈
連續的原木備份序列稱為對數鏈。 記錄鏈結以資料庫的完整備份開始。
需求、概念與組成部分
許可
Transact-SQL 是主要用於配置與監控SQL Server管理備份至Microsoft Azure的介面。 一般而言,執行設定儲存程序時,需 db_backupoperator 資料庫角色,並取得 ALTER ANY CREDENTIAL 權限,且 EXECUTE 對 儲存程序sp_delete_backuphistory 權限。 用於審查資訊的儲存程序與函式通常分別需要 Execute 對儲存程序及 Select 函式的權限。
先決條件
先決條件:
Azure 儲存體 服務是 SQL Server 管理備份到 Microsoft Azure 用來儲存備份檔案的。 建立 Azure 儲存帳號的概念、結構與需求,詳見 SQL Server 備份至 URL 主題的「關鍵元件與概念導論」章節。
SQL 憑證用於儲存驗證至 Azure 儲存帳號所需的資訊。 SQL 憑證物件儲存帳號名稱與存取金鑰資訊。 欲了解更多資訊,請參閱 SQL Server 備份至 URL 主題中的「關鍵元件與概念導論」章節。 關於如何建立 SQL 憑證以儲存 Azure 儲存體 認證資訊的教學,請參見第二課:建立 SQL Server 憑證。
概念與關鍵組成部分
SQL Server 管理備份到 Microsoft Azure 是一項管理備份操作的功能。 它將中繼資料儲存在 msdb 資料庫中,並利用系統工作撰寫完整的資料庫與交易日誌備份。
Components
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
| 系統物件 | Description |
| MSDB | 儲存所有由 SQL Server 管理備份到 Microsoft Azure 所建立備份的中繼資料與備份歷史。 |
| smart_admin.set_db_backup (Transact-SQL) | 系統儲存程序,用於啟用及設定 SQL Server 管理備份至 Microsoft Azure,用於資料庫。 |
| smart_admin.set_instance_backup (Transact-SQL) | 系統儲存程序用於啟用及設定預設設定 SQL Server 管理備份至 Microsoft Azure for the SQL Server 實例。 |
| smart_admin.sp_ backup_master_switch (Transact-SQL) | 系統儲存程序用來暫停並恢復 SQL Server 管理備份到 Microsoft Azure。 |
| smart_admin.sp_set_parameter (Transact-SQL) | 系統儲存程序,用於啟用並設定監控 SQL Server 管理備份至 Microsoft Azure。 例如:啟用擴充事件、通知的郵件設定。 |
| smart_admin.sp_backup_on_demand(Transact-SQL) | 系統儲存程序,用於為啟用可使用 SQL Server 管理備份至 Microsoft Azure 且不破壞日誌鏈的資料庫執行臨時備份。 |
| smart_admin.fn_backup_db_config (Transact-SQL) | 系統函式,回傳目前 SQL Server 管理備份到 Microsoft Azure 的狀態與設定值,該資料庫或實例上所有資料庫的值。 |
| smart_admin.fn_is_master_switch_on(Transact-SQL) | 系統功能會回傳主交換器的狀態。 |
| smart_admin.sp_get_backup_diagnostics (Transact-SQL) | 系統儲存程序用於回傳由擴展事件記錄的事件。 |
| smart_admin.fn_get_parameter (Transact-SQL) | 系統功能回傳備份系統設定的當前值,例如監控與郵件警報設定。 |
| smart_admin.fn_available_backups (Transact-SQL) | 儲存程序用於檢索指定資料庫或實例中所有資料庫的可用備份。 |
| smart_admin.fn_get_current_xevent_settings (Transact-SQL) | 系統功能會回傳目前的擴展事件設定。 |
| smart_admin.fn_get_health_status(Transact-SQL) | 系統功能回傳指定期間內由延伸事件所記錄的錯誤總計數。 |
| Monitor SQL Server Managed Backup to Azure | 擴展事件用於監控、錯誤與警告的電子郵件通知、SQL Server Policy Management for SQL Server 管理備份至 Microsoft Azure。 |
備用策略
SQL Server 管理備份至 Microsoft Azure 所使用的備份策略:
排程的備份類型與備份頻率是根據資料庫的工作負載決定的。 保留週期設定可用於指定備份檔案保留在儲存體中的時間,以及能否將資料庫復原至保留週期內的時間點。
備份容器與檔案命名慣例:
SQL Server 管理備份至 Microsoft Azure 會使用 SQL Server 實例名稱命名 Azure 儲存容器,適用於除可用性資料庫外的所有資料庫。 對於可用性資料庫,可用性群組 GUID 用於命名 Azure 儲存容器。
非可用資料庫的備份檔案名稱遵循以下慣例:名稱由資料庫名稱的前 40 個字元、不含 '-' 的資料庫 GUID 及時間戳記建立。 區段之間會插入底線字元做為分隔符號。 .bak 檔案副檔名用於完整備份,.log 用於日誌備份。 對於可用性群組資料庫,除了上述檔案命名慣例外,資料庫名稱的 40 個字元後方會新增可用性群組資料庫 GUID。 可用性群組資料庫的 GUID 值是 sys.databases 中group_database_id的值。
完整資料庫備份:SQL Server 管理備份至 Microsoft Azure agent 會排程完整資料庫備份,前提是以下任何一項為實。
資料庫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天,最多為30天。
SQL Server 管理備份到 Microsoft Azure 根據保留期設定,評估在指定時間內恢復到某一時間點的能力,決定要保留哪些備份檔案,並識別要刪除的備份檔案。 備份的 backup_finish_date 會用於指定及比對保留週期設定所指定的時間。
重要考慮因素
了解它們對 SQL Server 管理備份到 Microsoft Azure 運作的影響,有一些重要的考量。 以下列出:
對於資料庫,如果已有完整的資料庫備份工作在執行,那麼 SQL Server 管理備份到 Microsoft Azure 會等待目前的工作完成後,才會為同一資料庫進行另一個完整資料庫備份。 同樣地,在指定的時間內,只可執行一個交易記錄備份。 不過,完整資料庫備份與交易記錄備份可以同時執行。 失敗會記錄為延伸事件。
如果排程超過 10 個同時進行的完整資料庫備份,會透過 Extended Events 偵錯通道發出警告。 SQL Server 管理備份到 Microsoft Azure 會為剩餘需要備份的資料庫維持優先佇列,直到所有備份排程完成為止。
支援限制
以下是 SQL Server 2014 的一些特定限制:
SQL Server 管理備份至 Microsoft Azure agent 僅支援資料庫備份:完整備份與日誌備份。 不支援檔案備份自動化。
目前支援使用 Transact-SQL 支援 SQL Server 管理備份至 Microsoft Azure 操作。 監控與故障排除可透過擴展事件(Extended Events)進行。 PowerShell 與 SMO 支援僅限於為 SQL Server 實例設定儲存與保留期預設設定,並根據 SQL Server 基於政策的管理政策監控備份狀態與整體健康狀況。
系統資料庫不支援。
Azure Blob 儲存體 服務是唯一支援的備份儲存選項。 不支援備份到磁碟或磁帶。
目前,Azure 儲存體 中頁面 Blob 的最大檔案大小為 1 TB。 備份檔案超過 1 TB 就會失敗。 為避免這種情況,我們建議對於大型資料庫,先進行壓縮並測試備份檔案大小,再設定 SQL Server 管理備份至 Microsoft Azure。 你可以透過備份到本地磁碟來測試,或是用
BACKUP TO URLTransact-SQL 陳述式手動備份到Azure儲存裝置。 如需詳細資訊,請參閱 SQL Server Backup to URL。復原模型:僅支援設定為完整或批量記錄模型的資料庫。 設定為簡單復原模式的資料庫不被支援。
SQL Server 管理備份至 Microsoft Azure 在與其他支援備份、高可用性或災難復原的技術配置時,可能會有一些限制。 欲了解更多資訊,請參閱 SQL Server 管理備份至 Azure:互通性與共存。
相關工作
| 任務說明 | Topic |
| 基本任務如為資料庫設定 SQL Server 管理備份至 Microsoft Azure,或在實例層級設定預設設定,在實例或資料庫層級停用 SQL Server 管理備份至 Microsoft Azure,暫停並重新啟動 SQL Server 管理備份至Microsoft Azure. | SQL Server 管理備份至 Azure - 保留與儲存設定 |
| 教學:逐步說明如何設定與監控 SQL Server 管理備份至 Microsoft Azure。 | Setting up SQL Server Managed Backup to Azure |
| 教學:關於配置與監控 SQL Server 管理備份至 Microsoft Azure 的逐步說明,適用於可用性群組中的資料庫。 | Setting up SQL Server Managed Backup to Azure for availability groups |
| 監控 SQL Server 管理備份至 Microsoft Azure 的工具與概念與任務。 | Monitor SQL Server Managed Backup to Azure |
| 針對 SQL Server 管理備份到 Microsoft Azure 進行故障排除的工具與步驟。 | 故障排除 SQL Server 管理備份到 Azure |
另請參閱
SQL Server Backup and Restore with Azure Blob 儲存體 Service
SQL Server 備份至 URL
SQL Server 管理備份至 Azure:互通性與共存
故障排除 SQL Server 管理備份到 Azure