Azure CLI 可用來從命令列或透過指令碼建立和管理 Azure 資源。 本文說明如何在 Azure VM 中備份 SQL 資料庫,並使用 Azure CLI 觸發隨選備份。 您也可以使用 Azure 入口網站來執行這些動作。
在本文中,我們假設您已在 Azure VM 上安裝了 SQL 資料庫。 (您也可以 使用 Azure CLI 建立 VM)。
在本文中,您將學會如何:
- 建立復原服務保存庫
- 註冊 SQL Server 並探索伺服器上的資料庫
- 在 SQL 資料庫上啟用備份
- 觸發隨選備份
請參閱 Azure VM 中 SQL 目前支援的案例 。
必要條件
使用 Azure Cloud Shell 中的 Bash 環境。 如需詳細資訊,請參閱 開始使用 Azure Cloud Shell。
如果您想要在本機執行 CLI 參考命令, 請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱 如何在 Docker 容器中執行 Azure CLI。
如果您使用本機安裝,請使用 az login 命令登入 Azure CLI。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱 使用 Azure CLI 向 Azure 進行驗證。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需延伸模組的詳細資訊,請參閱 使用和管理 Azure CLI 的擴充功能。
執行 az version 以尋找已安裝的版本和相依連結庫。 若要升級至最新版本,請執行 az upgrade。
建立復原服務保存庫
復原服務保存庫是一種邏輯容器,可儲存每個受保護資源 (例如 Azure VM 或 Azure VM 上執行的 SQL 或 HANA 資料庫等工作負載) 的備份資料。 執行受保護資源的備份作業時,它會在復原服務保存庫內建立復原點。 然後您可以使用其中一個復原點,將資料還原到指定的時間點。
使用 az backup vault create 命令建立復原服務保存庫。 使用與您想要保護的 VM 相同的資源群組和位置。 了解如何使用 Azure CLI 建立 Windows VM 和 Linux VM 。
在本文中,我們將使用:
- 名為 SQLResourceGroup 的資源群組
- 名為 testSQLVM 的 VM
- westus2 位置中的資源。
執行下列命令來建立名為 SQLVault 的保存庫。
az backup vault create --resource-group SQLResourceGroup \
--name SQLVault \
--location westus2
根據預設,已針對異地備援儲存體設定復原服務保存庫。 異地備援儲存體可確保您的備份資料會複寫到次要 Azure 區域,即使與主要區域相距數百英哩。 如果需要修改記憶體備援設定,請使用 az backup vault backup-properties set 命令。
az backup vault backup-properties set \
--name SQLVault \
--resource-group SQLResourceGroup \
--backup-storage-redundancy "LocallyRedundant/GeoRedundant"
若要確認保存庫是否已成功建立,請使用 az backup vault list 命令。 回應會顯示為:
Location Name ResourceGroup
--------- --------------- -------------
westus2 SQLVault SQLResourceGroup
註冊並保護 SQL Server
若要向復原服務保存庫註冊 SQL Server,請使用 az backup container register 命令。 VMResourceId 是您建立以安裝 SQL 之 VM 的資源識別符。
az backup container register --resource-group SQLResourceGroup \
--vault-name SQLVault \
--workload-type SQLDataBase \
--backup-management-type AzureWorkload \
--resource-id VMResourceId
注意
如果 VM 不存在於與保存庫相同的資源群組中, SQLResourceGroup 會使用建立保存庫的資源群組。
若註冊 SQL Server,系統就會自動探索伺服器上目前所有的資料庫。 不過,若要探索未來可能新增的任何新資料庫,請參閱 探索新增至已註冊 SQL Server 的新資料庫 一節。
使用 az backup container list 命令來驗證是否已成功向保存庫註冊 SQL 實例。 回應會顯示為:
Name Friendly Name Resource Group Type Registration Status
------------------------------------------------------ -------------- -------------------- --------- ----------------------
VMAppContainer;Compute;SQLResourceGroup;testSQLVM testSQLVM SQLResourceGroup AzureWorkload Registered
注意
上述輸出中的數據行 名稱 是指容器名稱。 下一節將使用此容器名稱來啟用備份並觸發這些備份。 例如VMAppContainer;計算;SQLResourceGroup;testSQLVM。
在 SQL 資料庫上啟用備份
az backup protectable-item list 該命令會列出您在前一個步驟註冊的 SQL 實例中發現的所有資料庫。
az backup protectable-item list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--workload-type SQLDataBase \
--backup-management-type AzureWorkload \
--protectable-item-type SQLDataBase
--output table
您應該會在這份清單上找到要備份的資料庫,如下所示:
Name Protectable Item Type ParentName ServerName IsProtected
----------------------------- ---------------------- ------------ ----------- ------------
sqldatabase;mssqlserver;master SQLDataBase MSSQLServer testSQLVM NotProtected
sqldatabase;mssqlserver;model SQLDataBase MSSQLServer testSQLVM NotProtected
sqldatabase;mssqlserver;msdb SQLDataBase MSSQLServer testSQLVM NotProtected
現在,為sqldatabase;mssqlserver;master資料庫設定備份。
若要設定和保護資料庫上的備份,請一次一次使用 az backup protection enable-for-azurewl 命令。 提供您要使用的原則名稱。 若要使用 CLI 建立原則,請使用 az backup policy create 命令。 在本文中,我們已使用 testSQLPolicy 原則。
az backup protection enable-for-azurewl --resource-group SQLResourceGroup \
--vault-name SQLVault \
--policy-name SQLPolicy \
--protectable-item-name "sqldatabase;mssqlserver;master" \
--protectable-item-type SQLDataBase \
--server-name testSQLVM \
--workload-type SQLDataBase \
--output table
如果您有 SQL Always On 可用性群組 ,而且想要識別可用性群組內可保護的數據源,您可以使用相同的命令。 在這裡,可保護的項目類型為 SQLAG。
若要確認上述備份組態是否已完成,請使用 az backup job list 命令。 輸出會顯示為:
Name Operation Status Item Name Start Time UTC
------------------------------------ --------------- --------- ---------- -------------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3 ConfigureBackup Completed master 2019-12-03T03:09:210831+00:00
az backup job list 命令會列出已執行或目前在受保護資料庫上執行的所有備份作業(已排程或隨選),以及其他作業,例如註冊、設定備份和刪除備份數據。
注意
要備份在 Azure VM 中執行的 SQL 資料庫時,Azure 備份不會配合日光節約時間的變更自動調整。
請視需要手動修改原則。
啟用自動保護
為求備份設定的順暢,可以使用特定原則自動保護未來新增的所有資料庫。 若要啟用自動保護,請使用 az backup protection auto-enable-for-azurewl 命令。
由於指示是備份所有未來的資料庫,作業會在 SQLInstance 層級完成。
az backup protection auto-enable-for-azurewl --resource-group SQLResourceGroup \
--vault-name SQLVault \
--policy-name SQLPolicy \
--protectable-item-name "sqlinstance;mssqlserver" \
--protectable-item-type SQLInstance \
--server-name testSQLVM \
--workload-type MSSQL\
--output table
觸發隨選備份
若要觸發隨選備份,請使用 az backup protection backup-now 命令。
注意
此備份的保留期間取決於您執行的隨選備份類型。
- 「隨選完整」備份至少會保留「45 天」,最多保留「99 年」。
- 「隨選僅複製完整」備份可接受任何保留期間值。
- 「隨選差異」備份會按照原則中所設的排程差異來保留備份。
- 「隨選記錄」備份會按照原則中所設的排程記錄保留期來保留備份。
az backup protection backup-now --resource-group SQLResourceGroup \
--item-name sqldatabase;mssqlserver;master \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--backup-type Full
--retain-until 01-01-2040
--output table
輸出會顯示為:
Name ResourceGroup
------------------------------------ -------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3 sqlResourceGroup
回應會提供您作業名稱。 您可以使用這個作業名稱,使用 az backup job show 命令來追蹤作業狀態。
下一步
相關內容
- 透過 REST API 使用 Azure 備份在 Azure VM 中備份 SQL Server 資料庫。
- 使用 REST API 在 Azure VM 中還原 SQL Server 資料庫。
- 使用 Azure 入口網站、 Azure CLI、 REST API 管理 Azure VM 中的 SQL Server 資料庫。