SQL Server 資料庫是需要低復原點目標 (RPO) 和長期保留的重要工作負載。 您可以使用 Azure 備份來備份在 Azure 虛擬機 (VM) 上執行的 SQL Server 資料庫。
本文說明如何將執行於 Azure VM 上的 SQL Server 資料庫備份至 Azure 備份復原服務保存庫。
附註
若要深入瞭解支援的組態和案例,請參閱 SQL 備份支援矩陣 。
先決條件
備份 SQL Server 資料庫之前,請先檢查下列條件:
在與裝載 SQL Server 執行個體的 VM 相同的區域和訂用帳戶中識別或建立復原服務保存庫。
確認 VM 具有 網路連線能力。
請確定已在 VM 上安裝 Azure 虛擬機器代理程式 。
請確定已在 VM 上安裝 .NET 4.6.2 版或更新版本。
注意
由於官方支持結束,執行 .NET Framework 4.6.1 的 SQL VM 備份支援已被取代。 建議您升級至 .NET Framework 4.6.2 或更新版本,以避免備份失敗。
請確定 SQL Server 資料庫遵循 Azure 備份的資料庫命名指導方針。
確定 Azure Resoure Manager VM 的 SQL Server VM 名稱和資源群組名稱的合併長度未超過 84 個字元 (傳統 VM 的上限為 77 個字元)。 之所以有此限制,是因為服務會保留某些字元。
檢查您未針對資料庫啟用任何其他備份解決方案。 在備份資料庫前,請停用所有其他的SQL Server 備份。
使用 SQL Server 2008 R2 或 SQL Server 2012 時,您可能會遇到備份的時區問題,如 這裡所述。 請確定已安裝了最新的累積更新檔案,以免發生上述的時區相關問題。 如果無法將更新套用至 Azure VM 上的 SQL Server 執行個體,請停用虛擬機器上該時區的日光節約時間 (DST)。
附註
您可以同時為 Azure VM 以及在該 VM 上執行的SQL Server 資料庫啟用 Azure 備份,而不會發生任何衝突。
建立網路連線
在進行所有作業時,SQL Server VM 都需要連線到 Azure 備份服務、Azure 儲存體和 Microsoft Entra ID。 這可以藉由使用私人端點,或允許存取所需的公用 IP 位址或 FQDN 來達成。 若不允許正確連線到所需的 Azure 服務,可能會導致資料庫探索、設定備份、執行備份和還原資料等作業失敗。
下表列出您可以用來建立連線的各種替代方案:
| 選擇 | 優勢 | 弊 |
|---|---|---|
| 私人端點 | 允許透過虛擬網路內的私人 IP 進行備份 可對網路和保存庫端進行更細微的控制 |
會產生標準私人端點的費用 |
| NSG 服務標籤 | 會自動合併範圍變更,因此更容易管理 沒有額外的成本 |
只能搭配 NSG 使用 提供整個服務的存取權 |
| Azure 防火牆 FQDN 標籤 | 會自動管理所需的 FQDN,因此更容易管理 | 只能搭配 Azure 防火牆使用 |
| 允許存取服務 FQDN/IP | 沒有額外的成本。 適用於所有網路安全性應用裝置和防火牆。 您也可以將服務端點用於儲存體和 Microsoft Entra ID。 不過,對於 Azure 備份,您必須將存取權指派給對應的 IP/FQDN。 |
可能需要存取一組廣泛的 IP 或 FQDN。 |
| 使用 HTTP Proxy | VM 的單一網際網路存取點 | 使用 Proxy 軟體執行 VM 時的額外成本 |
以下章節針對使用這些選項提供詳盡的說明。
附註
您可以使用 Azure 備份連線測試腳本 ,在 Windows 環境中自我診斷網路連線問題。
私人端點
私人端點可讓您從虛擬網路內的伺服器安全地連線到您的復原服務保存庫。 私人端點會針對您的保存庫使用 VNET 位址空間中的 IP。 您在虛擬網路內的資源與保存庫之間的網路流量,會透過您的虛擬網路和 Microsoft 骨幹網路上的私人連結來傳輸。 這可避免資料在公用網際網路暴露。 在這裡深入瞭解 Azure 備份的私人端點。
NSG 標籤
如果您使用網路安全性群組 (NSG),請使用 AzureBackup 服務標籤,以允許對 Azure 備份進行輸出存取。 除了 Azure 備份標籤之外,您還需要為 Microsoft Entra ID(AzureActiveDirectory)和 Azure 儲存體(Storage)建立類似的 NSG 規則,以允許驗證和資料傳輸的連線。 下列步驟說明建立 Azure 備份標籤規則的程序:
在 [所有服務] 中,移至 [網路安全性群組],然後選取網路安全性群組。
選取 [設定] 底下的 [輸出安全性規則]。
選取 [新增]。 輸入建立新規則所需的所有詳細數據,如 安全性規則設定中所述。 請確定 [目的地] 選項已設定為 [服務標籤],且 [目的地服務標籤] 已設定為 [AzureBackup]。
選取 [新增] 以儲存新建立的輸出安全性規則。
同樣地,您也可以建立 Azure 儲存體和 Microsoft Entra ID 的 NSG 輸出安全性規則。
Azure 防火牆標籤
如果您使用 Azure 防火牆,請使用 AzureBackup Azure防火牆 FQDN 標籤來建立應用程式規則。 這會允許對 Azure 備份進行的所有輸出存取。
附註
Azure 備份目前不支援 Azure 防火牆上「已啟用 TLS 檢查」的 [應用程式規則]。
允許存取服務 IP 範圍
如果您選擇允許存取服務 IP,請參閱 這裡可用的 JSON 檔案中的 IP 範圍。 您必須允許存取對應至 Azure 備份、Azure 儲存體與 Microsoft Entra ID 的 IP。
允許存取服務 FQDN
您也可以使用下列 FQDN 來允許從伺服器存取所需的服務:
| 服務 | 要存取的網域名稱 | 連接埠 |
|---|---|---|
| Azure 備份 | *.backup.windowsazure.com |
443 |
| Azure 儲存體 | *.blob.core.windows.net *.queue.core.windows.net *.blob.storage.azure.net |
443 |
| Azure AD | *.login.microsoft.com 依據這篇文章,允許存取 56 和 59 小節下的 FQDN |
443 依適用情況 |
允許伺服器在內部負載平衡器後方連線
使用內部負載平衡器時,您需要允許虛擬機器在內部負載平衡器後方的輸出連線,才能執行備份作業。 為了此目標,可搭配使用內部和外部標準負載平衡器來建立輸出連線能力。 深入了解 如何針對內部負載平衡器後端集區中的 VM 建立僅供輸出 設定。
使用 HTTP Proxy 伺服器以路由流量
當您在 Azure VM 上備份 SQL Server 資料庫時,VM 上的備份擴充功能會使用 HTTPS API 將管理命令傳送至 Azure 備份,並將資料傳送至 Azure 儲存體。 備份延伸模組也會使用 Microsoft Entra ID 進行驗證。 透過 HTTP Proxy 路由傳送這三項服務的備份延伸模組流量。 使用上述的 IP 和 FQDN 清單來允許存取所需的服務。 不支援已驗證的 Proxy 伺服器。
附註
停用 VM 內 localhost 通訊的 Proxy。 Proxy 將會接受來自 SQL VM 的輸出通訊。
Azure 備份的資料庫命名方針
避免在資料庫名稱中使用下列元素:
- 後置/前置空格
- 後置驚嘆號 (!)
- 右方括號 (])
- 分號 (;)
- 斜線 (/)
- 百分比 (%)
SQL 備份組態不支援資料庫名稱中的單引號,而且會導致部署失敗。 如果有任何具有單引號的資料庫,建議您重新命名資料庫,或採用原生備份方法。
對於不支援的字元,可以使用別名,但建議避免採用此做法。 如需詳細資訊,請參閱 瞭解數據表服務數據模型。
不支援相同 SQL 執行個體上,僅具有大小寫差異的多個資料庫。
設定保護之後,不支援變更 SQL 資料庫的大小寫。
附註
針對名稱中具有特殊字元 (例如 、{、'}、[、]、,、=、-、(、)、.、+、&、; 或 ') 的資料庫,不支援/作業。 您可以變更資料庫名稱或啟用 自動保護,以成功保護這些資料庫。
建立復原服務保存庫
復原服務保管庫是管理實體,用於儲存隨時間建立的復原點。 它提供了一個介面來執行備份相關操作。 這些作業包括製作隨選備份、執行還原,以及建立備份原則。
若要建立復原服務保存庫:
登入 Azure 入口網站。
搜尋 商務持續性中心,然後移至 商務持續性中心 儀錶板。
在 [保存庫 ] 窗格中,選取 [+ 保存庫]。
選取 [復原服務保存庫]>[繼續]。
在 [復原服務保存庫] 窗格中,輸入下列值:
訂用帳戶:選取要使用的訂用帳戶。 如果您是唯一一個訂用帳戶的成員,就會看到該名稱。 如果您不確定要使用哪個訂用帳戶,請使用預設的訂用帳戶。 只有在您的公司或學校帳戶與多個 Azure 訂用帳戶相關聯時,才會出現多個選擇。
資源群組:使用現有的資源群組或建立新的資源群組。 若要檢視訂用帳戶中可用資源群組的清單,請選取 [使用現有]。 然後在下拉式清單中選取資源。 若要建立新的資源群組,請選取 [新建],然後輸入名稱。 如需資源群組的詳細資訊,請參閱 Azure Resource Manager 概觀。
保存庫名稱:輸入易記名稱以識別保存庫。 該名稱必須是 Azure 訂用帳戶中唯一的名稱。 指定的名稱至少要有 2 個字元,但不能超過 50 個字元。 名稱開頭必須是字母,且只能包含字母、數字和連字號。
區域:選取保存庫的地理區域。 若要建立保存庫以協助保護任何數據源,保存庫 必須 位於與數據源相同的區域中。
重要事項
如果不確定資料來源的位置,請關閉視窗。 在入口網站中,移至您的資源清單。 如果您在多個區域中有資料來源,請為每個區域建立復原服務保存庫。 先在第一個位置建立保存庫,然後再於另一個位置建立保存庫。 您不需要指定儲存體帳戶來儲存備份資料。 復原服務保存庫和 Azure 備份會自動處理該步驟。
提供值之後,請選取 [檢閱 + 建立]。
若要完成建立復原服務保存庫,請選取 [建立]。
建立復原服務保存庫可能需要一些時間。 監視右上角 [通知] 區域中的狀態通知。 保存庫建立之後,就會出現在復原服務保存庫的清單中。 如果保存庫未出現,請選取 [重新整理]。
Azure 備份現在支援不可變保存庫,可協助您確保在建立復原點之後,無法根據備份原則在到期之前刪除它們。 您可以使不變性不可逆轉,以獲得最大程度的保護,以保護您的備份資料免受各種威脅,包括勒索軟體攻擊和惡意行為者。 深入瞭解 Azure 備份不可變保存庫。
探索 SQL Server 資料庫
若要探索在 VM 上執行的資料庫,請遵循下列步驟:
在 Azure 入口網站中,移至 [商務持續性中心],然後移至 [+ 設定保護]。
在 [設定保護] 窗格中,選取 [資料來源類型] 作為 Azure VM 中的 SQL,然後選取 [繼續]。
在 [開始:設定備份] 窗格的 [保存庫] 底下,按一下 [選取保存庫]。
在 [ 選取保存庫 ] 窗格中,從您要備份資料庫的清單中選擇您建立的復原服務保存庫,然後按一下 [選取]。
在 [開始:設定備份] 窗格中,選取 [繼續]。
在 [備份目標 ] 窗格的 [探索 VM 中的資料庫] 底下,選取 [開始探索] 以搜尋訂用帳戶中未受保護的 VM。 搜尋可能需要一些時間,視訂用帳戶中未受保護的 VM 數目而定。
在 [ 選取虛擬機器 ] 窗格中,選取執行 SQL Server 資料庫的 VM,然後選取 [探索資料庫]。
附註
- 在探索之後,未受保護的 VM 應該會出現在清單中,並依照名稱和資源群組列出。
- 如果 VM 未如預期列出,請查看該 VM 是否已備份在保存庫中。
- 多個 VM 可以有相同名稱,但會屬於不同的資源群組。
您可以在 「通知」中追蹤資料庫探索。 此動作所需的時間取決於 VM 資料庫的數目。 探索到選取的資料庫之後,即會出現成功訊息。
Azure 備份會探索 VM 上的所有 SQL Server 資料庫。 在探索期間,會在背景中執行下列元素:
Azure 備份向用來備份工作負載的保存庫註冊 VM。 已註冊 VM 上的所有資料庫都只能備份至此保存庫。
Azure Backup 在 VM 上安裝 AzureBackupWindowsWorkload 擴充功能。 SQL 資料庫上未安裝任何代理程式。
Azure Backup 在 VM 上建立服務帳戶 NT Service\AzureWLBackupPluginSvc。
- 所有備份和還原作業都會使用此服務帳戶。
- NT Service\AzureWLBackupPluginSvc 需要 SQL 系統管理員權限。 在 Marketplace 中建立的所有 SQL Server VM 都會預先安裝 SqlIaaSExtension。 AzureBackupWindowsWorkload 延伸模組會使用 SQLIaaSExtension 來自動取得必要的權限。
如果您尚未從 Marketplace 建立 VM,或者,如果您使用 SQL 2008 和 2008 R2,則 VM 不會安裝 SqlIaaSExtension,因此探索作業將會失敗,並顯示錯誤訊息 UserErrorSQLNoSysAdminMembership。 若要修正此問題,請遵循設定 VM 許可權下的指示。
設定備份
若要設定 SQL 資料庫備份,請遵循下列步驟:
在 [備份目標 ] 窗格的 [ 步驟 2:設定備份] 底下,選取 [設定備份]。
選取 [新增資源] 以查看所有已註冊的可用性群組和獨立 SQL Server 執行個體。
在 [選取要備份的項目] 畫面中,選取資料列左邊的箭號,即可展開該執行個體或 Always On 可用性群組中所有未受保護的資料庫清單。
選擇您要保護的資料庫,然後選取 [確定]。
為了將備份負載最佳化,Azure 備份會將每個備份作業的資料庫數目上限設為 50。
定義 備份原則。 您可以執行下列其中一項:
選取 HourlyLogBackup 的預設原則。
選擇之前為 SQL 建立的現有備份原則。
根據 RPO 和保留範圍來定義新的原則。
選取 [啟用備份 ] 以提交 [ 設定保護 ] 作業,並追蹤入口網站 [ 通知 ] 區域中的設定進度。
建立備份原則
備份原則會定義備份的進行時間和備份的保留時間長度。
- 原則會建立於保存庫層級上。
- 多個保存庫可以使用相同的備份原則,但您必須將備份原則套用至每個保存庫。
- 建立備份原則時,預設值是每日完整備份。
- 您可以新增差異備份,但僅限於將完整備份設定為每週進行時。
- 瞭解 不同類型的備份原則。
若要建立備份原則:
移至 [備份中心],然後按一下 [+ 原則]。
選取 [Azure VM 中的 SQL Server] 做為資料來源類型,選取要在其中建立原則的保存庫,然後按一下 [繼續]。
在 [原則名稱] 中,為新原則輸入名稱。
選取對應至 [完整備份] 的 [編輯] 連結以修改預設設定。
- 選取 [備份頻率]。 選擇 [每日] 或 [每週]。
- 若選擇 [每日],請選取備份作業的開始時間和時區。 您無法為每日完整備份建立差異備份。
在 [保留範圍] 中,依預設會選取所有選項。 請清除任何保留範圍限制,然後設定要使用的間隔。
- 所有備份類型 (完整、差異和記錄) 的最小保留期間為七天。
- 復原點會根據其保留範圍標記為保留。 例如,如果您選取每日完整備份,則每天只會觸發一個完整備份。
- 系統會根據每週保留範圍和每週保留設定,標記和保留特定日期的備份。
- 每月和每年保留範圍會以類似方式運作。
選取 [確定] 以接受完整備份的設定。
選取對應至 [差異備份] 的 [編輯] 連結以修改預設設定。
- 在 [差異備份原則] 中,選取 [啟用] 以開啟頻率和保留控制項。
- 您每天僅可以觸發一次差異備份。 差異備份無法與完整備份在同一天觸發。
- 差異備份最多可以保留 180 天。
- 差異備份保留期間不能長於完整備份 (因為差異備份依靠完整備份來進行復原)。
- Master 資料庫不支援差異備份。
選取對應至 [記錄備份] 的 [編輯] 連結以修改預設設定
- 在 [記錄備份] 中選取 [啟用],然後設定頻率和保留控制項。
- 記錄備份可以每隔 15 分鐘頻繁地出現,而且最多可以保留 35 天。
- 如果資料庫處於 簡單恢復模式,該資料庫的記錄備份排程將會暫停,因此不會觸發任何記錄備份。
- 如果資料庫的恢復模式從 [完整 ] 變更為 [簡單],記錄備份將會在恢復模式變更后的 24 小時內暫停。 同樣地,如果恢復模式從 Simple 變更,表示資料庫現在可以支援記錄備份,記錄備份排程將會在恢復模式變更的 24 小時內啟用。
在 [備份原則] 功能表上,選擇是否要啟用 [SQL 備份壓縮]。 此選項預設為停用。 若已啟用,SQL Server 會將壓縮的備份串流處理至 VDI。 Azure 備份會根據此控制項的值,以 COMPRESSION / NO_COMPRESSION 子句覆寫執行個體層級預設值。
完成備份原則的編輯之後,請選取 [確定]。
附註
每個記錄備份都會連結到先前的完整備份,以形成復原鏈結。 系統會保留此完整備份,直到最後一個記錄備份的保留期到期為止。 這可能表示完整備份會保留一段額外的時間,以確保可以復原所有記錄。 假設您已設定每週進行完整備份、每日進行差異備份和每 2 小時進行記錄備份。 所有這些項目都會保留 30 天。 但只有在下一次的完整備份可供使用時 (也就是 30 + 7 天之後),才能真正清除/刪除每週的完整備份。 例如,每週的完整備份會在 11 月 16 日執行。 根據保留原則,備份應該保留到 12 月 16 日為止。 此完整備份的最後一個記錄備份會在下一次排定的完整備份 (也就是 11 月 22 日) 之前進行。 直到 12 月 22 日,也就是此記錄備份到期之前,您都無法刪除 11 月 16 日的完整備份。 因此,11 月 16 日的完整備份會保留到 12 月 22 日。
啟用自動保護
您可以啟用自動保護,將所有現有和未來的資料庫自動備份至獨立 SQL Server 執行個體或 Always On 可用性群組。
- 您可以一次選取不限數量的資料庫,使其受到自動保護。 探索作業通常會每隔八小時執行一次。 系統會在 32 小時內為新探索到的資料庫觸發自動保護。 不過如果選取 [重新探索 DB] 選項,以手動方式執行探索,即可立即探索並保護新的資料庫。
- 如果在新探索到的資料庫上啟動自動保護作業失敗,則會重試三次。 如果三次重試都失敗,資料庫將不會受到保護。
- 啟用自動保護時,您無法選擇保護或排除執行個體中的資料庫不受保護。
- 如果您的執行個體已包含一些受保護的資料庫,即使在您開啟自動保護之後,這些資料庫仍會在其各自的原則之下受到保護。 稍後新增的所有未受保護資料庫,只會具有在啟用自動保護時所定義的單一原則 (列在 [設定備份] 底下)。 不過,您可以在稍後變更與自動保護資料庫建立關聯的原則。
- 如果新探索到的資料庫設定 保護 作業失敗,則不會引發警示。 不過,您可以在 [備份工作] 頁面上找到失敗的備份作業。
若要啟用自動保護:
在 [要備份的項目] 中,選取要啟用自動保護的執行個體。
選取 [自動保護] 下的下拉式清單,選擇 [開啟],然後選取 [確定]。
所有資料庫會一起設定備份,且您可在 [備份作業] 中加以追蹤。
如果您要停用自動保護,請選取 [設定備份] 下方的執行個體名稱,然後針對該執行個體選取 [停用自動保護]。 所有資料庫都會繼續備份,但未來的資料庫將不會自動受到保護。
後續步驟
了解如何:
相關內容
- 透過 REST API 使用 Azure 備份在 Azure VM 中備份 SQL Server 資料庫。
- 使用 REST API 在 Azure VM 中還原 SQL Server 資料庫。
- 使用 Azure 入口網站、 Azure CLI、 REST API 管理 Azure VM 中的 SQL Server 資料庫。