Share via


教學課程:使用 Azure CLI 在 Azure VM 中管理 SAP HANA 資料庫

Azure CLI 可用來從命令列或透過指令碼建立和管理 Azure 資源。 本文件將詳細說明如何在 Azure VM 上管理已備份的 SAP Hana 資料庫 - 全部都使用 Azure CLI。 您也可以使用 Azure 入口網站來執行這些步驟。

使用 Azure Cloud Shell 來執行 CLI 命令。

完成本教學課程時,您將能夠:

  • 監視備份和還原作業
  • 保護新增至 SAP Hana 執行個體的新資料庫
  • 變更原則
  • 停止保護
  • 繼續保護

如果您已使用 使用 CLI 在 Azure 中備份 SAP Hana 資料庫來備份 SAP Hana 資料庫,則您使用的是下列資源:

  • 名為 saphanaResourceGroup 的資源群組
  • 名為 saphanaVault 的保存庫
  • 名為 VMAppContainer;Compute;saphanaResourceGroup;saphanaVM 的受保護容器
  • 名為 saphanadatabase;hxe;hxe 的已備份資料庫/項目
  • westus2 區域中的資源

Azure CLI 可讓您輕鬆地管理在 Azure VM 上執行且使用 Azure 備份進行備份的 SAP Hana 資料庫。 本教學課程會詳細說明每個管理作業。

注意

若要深入了解支援的設定和案例,請參閱 SAP HANA 備份支援矩陣圖

監視備份和還原作業

若要監視已完成或目前正在執行的作業 (備份或還原),請使用 az backup job list Cmdlet。 CLI 也可讓您暫停目前執行中的工作等候作業完成

az backup job list --resource-group saphanaResourceGroup \
    --vault-name saphanaVault \
    --output table

輸出會如下所示:

Name                                  Operation              Status      Item Name       Start Time UTC
------------------------------------  ---------------        ---------   ----------      -------------------  
e0f15dae-7cac-4475-a833-f52c50e5b6c3  ConfigureBackup        Completed   hxe             2019-12-03T03:09:210831+00:00  
ccdb4dce-8b15-47c5-8c46-b0985352238f  Backup (Full)          Completed   hxe [hxehost]   2019-12-01T10:30:58.867489+00:00
4980af91-1090-49a6-ab96-13bc905a5282  Backup (Differential)  Completed   hxe [hxehost]   2019-12-01T10:36:00.563909+00:00
F7c68818-039f-4a0f-8d73-e0747e68a813  Restore (Log)          Completed   hxe [hxehost]   2019-12-03T05:44:51.081607+00:00

變更原則

若要變更 SAP Hana 備份設定的基礎原則,請使用 az backup policy set Cmdlet。 此 Cmdlet 中的 name 參數會參考我們想要變更其原則的備份項目。 在本教學課程中,我們會將 SAP Hana 資料庫 saphanadatabase;hxe;hxe 的原則取代為新的原則 newsaphanaPolicy。 您可以使用 az backup policy create Cmdlet 來建立新的原則。

az backup item set policy --resource-group saphanaResourceGroup \
    --vault-name saphanaVault \
    --container-name VMAppContainer;Compute;saphanaResourceGroup;saphanaVM \
    --policy-name newsaphanaPolicy \
    --name saphanadatabase;hxe;hxe \

輸出應該看起來像這樣:

Name                                  Resource Group
------------------------------------- --------------
cb110094-9b15-4c55-ad45-6899200eb8dd  SAPHANA

建立增量備份原則

若要建立增量備份原則,請搭配下列參數執行 az backup policy create 命令:

  • --backup-management-type – Azure 工作負載
  • --workload-type - SAPHana
  • --name – 原則的名稱
  • --policy - JSON 檔案,其中含有適當的排程和保留詳細資料
  • --resource-group - 保存庫的資源群組
  • --vault-name – 保存庫的名稱

範例:

az backup policy create --resource-group saphanaResourceGroup --vault-name saphanaVault --name sappolicy --backup-management-type AzureWorkload --policy sappolicy.json --workload-type SAPHana

範例 JSON (sappolicy.json):

  "eTag": null,
  "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/saphanaResourceGroup/providers/Microsoft.RecoveryServices/vaults/saphanaVault/backupPolicies/sappolicy",
  "location": null,
  "name": "sappolicy",
  "properties": {
    "backupManagementType": "AzureWorkload",
    "makePolicyConsistent": null,
    "protectedItemsCount": 0,
    "settings": {
      "isCompression": false,
      "issqlcompression": false,
      "timeZone": "UTC"
    },
    "subProtectionPolicy": [
      {
        "policyType": "Full",
        "retentionPolicy": {
          "dailySchedule": null,
          "monthlySchedule": {
            "retentionDuration": {
              "count": 60,
              "durationType": "Months"
            },
            "retentionScheduleDaily": null,
            "retentionScheduleFormatType": "Weekly",
            "retentionScheduleWeekly": {
              "daysOfTheWeek": [
                "Sunday"
              ],
              "weeksOfTheMonth": [
                "First"
              ]
            },
            "retentionTimes": [
              "2021-01-19T00:30:00+00:00"
            ]
          },
          "retentionPolicyType": "LongTermRetentionPolicy",
          "weeklySchedule": {
            "daysOfTheWeek": [
              "Sunday"
            ],
            "retentionDuration": {
              "count": 104,
              "durationType": "Weeks"
            },
            "retentionTimes": [
              "2021-01-19T00:30:00+00:00"
            ]
          },
          "yearlySchedule": {
            "monthsOfYear": [
              "January"
            ],
            "retentionDuration": {
              "count": 10,
              "durationType": "Years"
            },
            "retentionScheduleDaily": null,
            "retentionScheduleFormatType": "Weekly",
            "retentionScheduleWeekly": {
              "daysOfTheWeek": [
                "Sunday"
              ],
              "weeksOfTheMonth": [
                "First"
              ]
            },
            "retentionTimes": [
              "2021-01-19T00:30:00+00:00"
            ]
          }
        },
        "schedulePolicy": {
          "schedulePolicyType": "SimpleSchedulePolicy",
          "scheduleRunDays": [
            "Sunday"
          ],
          "scheduleRunFrequency": "Weekly",
          "scheduleRunTimes": [
            "2021-01-19T00:30:00+00:00"
          ],
          "scheduleWeeklyFrequency": 0
        }
      },
      {
        "policyType": "Incremental",
        "retentionPolicy": {
          "retentionDuration": {
            "count": 30,
            "durationType": "Days"
          },
          "retentionPolicyType": "SimpleRetentionPolicy"
        },
        "schedulePolicy": {
          "schedulePolicyType": "SimpleSchedulePolicy",
          "scheduleRunDays": [
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday",
            "Saturday"
          ],
          "scheduleRunFrequency": "Weekly",
          "scheduleRunTimes": [
            "2017-03-07T02:00:00+00:00"
          ],
          "scheduleWeeklyFrequency": 0
        }
      },
      {
        "policyType": "Log",
        "retentionPolicy": {
          "retentionDuration": {
            "count": 15,
            "durationType": "Days"
          },
          "retentionPolicyType": "SimpleRetentionPolicy"
        },
        "schedulePolicy": {
          "scheduleFrequencyInMins": 120,
          "schedulePolicyType": "LogSchedulePolicy"
        }
      }
    ],
    "workLoadType": "SAPHanaDatabase"
  },
  "resourceGroup": "saphanaResourceGroup",
  "tags": null,
  "type": "Microsoft.RecoveryServices/vaults/backupPolicies"
} 

一旦成功建立了原則,命令的輸出就會顯示您在執行命令時當作參數傳遞的原則 JSON。

您可以修改原則的下列區段,以指定增量備份所需的備份頻率和保留期。

例如:

{
  "policyType": "Incremental",
  "retentionPolicy": {
    "retentionDuration": {
      "count": 30,
      "durationType": "Days"
    },
    "retentionPolicyType": "SimpleRetentionPolicy"
  },
  "schedulePolicy": {
    "schedulePolicyType": "SimpleSchedulePolicy",
    "scheduleRunDays": [
      "Monday",
      "Tuesday",
      "Wednesday",
      "Thursday",
      "Friday",
      "Saturday"
    ],
    "scheduleRunFrequency": "Weekly",
    "scheduleRunTimes": [
      "2017-03-07T02:00:00+00:00"
    ],
    "scheduleWeeklyFrequency": 0
  }
}

範例:

如果您只想要在星期六執行增量備份並保留 60 天,請在原則中進行下列變更:

  • retentionDuration 計數更新為 60 天
  • 僅指定星期六做為 schedulepolicy
 {
  "policyType": "Incremental",
  "retentionPolicy": {
    "retentionDuration": {
      "count": 60,
      "durationType": "Days"
    },
    "retentionPolicyType": "SimpleRetentionPolicy"
  },
  "schedulePolicy": {
    "schedulePolicyType": "SimpleSchedulePolicy",
    "scheduleRunDays": [
      "Saturday"
    ],
    "scheduleRunFrequency": "Weekly",
    "scheduleRunTimes": [
      "2017-03-07T02:00:00+00:00"
    ],
    "scheduleWeeklyFrequency": 0
  }
}

保護新增至 SAP Hana 執行個體的新資料庫

向復原服務保存庫註冊 SAP Hana 執行個體會自動探索此執行個體上的所有資料庫。

不過,如果之後有新的資料庫新增至 SAP Hana 執行個體,則應使用 az backup protectable-item initializeCmdlet。 此 Cmdlet 會探索新增的新資料庫。

az backup protectable-item initialize --resource-group saphanaResourceGroup \
    --vault-name saphanaVault \
    --container-name VMAppContainer;Compute;saphanaResourceGroup;saphanaVM \
    --workload-type SAPHANA

然後使用 az backup protectable-item list Cmdlet 來列出在您 SAP Hana 執行個體上探索到的所有資料庫。 不過,這份清單會排除已設定備份的資料庫。 一旦探索到要備份的資料庫,請參閱在 SAP Hana 資料庫上啟用備份

az backup protectable-item list --resource-group saphanaResourceGroup \
    --vault-name saphanaVault \
    --workload-type SAPHANA \
    --output table

此清單中上會顯示您要備份的新資料庫,如下所示:

Name                            Protectable Item Type    ParentName    ServerName    IsProtected
---------------------------     ----------------------   ------------  -----------   ------------
saphanasystem;hxe               SAPHanaSystem            HXE           hxehost       NotProtected  
saphanadatabase;hxe;systemdb    SAPHanaDatabase          HXE           hxehost       NotProtected
saphanadatabase;hxe;newhxe      SAPHanaDatabase          HXE           hxehost       NotProtected

停止 SAP Hana 資料庫的保護

您可以用幾種方式來停止保護 SAP Hana 資料庫:

  • 停止所有未來的備份作業並刪除所有復原點。
  • 停止所有未來的備份作業但保留復原點不變。

如果您選擇保留復原點,請記住下列詳細資料:

  • 所有復原點會永遠保持不變,而停止保護但保留資料時,所有清除作業都應該停止。
  • 您需支付受保護執行個體和已使用儲存體的費用。
  • 如果您刪除資料來源,但沒有停止備份,新的備份將會失敗。

讓我們深入查看每一種停止保護的方式。

停止使用保留資料來進行保護

若要停止保護但保留資料,請使用 az backup protection disable Cmdlet。

az backup protection disable --resource-group saphanaResourceGroup \
    --vault-name saphanaVault \
    --container-name VMAppContainer;Compute;saphanaResourceGroup;saphanaVM \
    --item-name saphanadatabase;hxe;hxe \
    --workload-type SAPHANA \
    --output table

輸出應該看起來像這樣:

Name                                  ResourceGroup
------------------------------------  ---------------  
g0f15dae-7cac-4475-d833-f52c50e5b6c3  saphanaResourceGroup

若要檢查此作業的狀態,請使用 az backup job show Cmdlet。

停止保護且不保留資料

若要停止保護且不保留資料,請使用 az backup protection disable Cmdlet。

az backup protection disable --resource-group saphanaResourceGroup \
    --vault-name saphanaVault \
    --container-name VMAppContainer;Compute;saphanaResourceGroup;saphanaVM \
    --item-name saphanadatabase;hxe;hxe \
    --workload-type SAPHANA \
    --delete-backup-data true \
    --output table

輸出應該看起來像這樣:

Name                                  ResourceGroup
------------------------------------  ---------------  
g0f15dae-7cac-4475-d833-f52c50e5b6c3  saphanaResourceGroup

若要檢查此作業的狀態,請使用 az backup job show Cmdlet。

繼續保護

當您停止保護 SAP Hana 資料庫但保留資料時,您可以在稍後恢復保護。 如果您沒有保留備份的資料,就無法恢復保護。

若要恢復保護,請使用 az backup protection resume Cmdlet。

az backup protection resume --resource-group saphanaResourceGroup \
    --vault-name saphanaVault \
    --container-name VMAppContainer;Compute;saphanaResourceGroup;saphanaVM \
    --policy-name saphanaPolicy \
    --output table

輸出應該看起來像這樣:

Name                                  ResourceGroup
------------------------------------  ---------------  
b2a7f108-1020-4529-870f-6c4c43e2bb9e  saphanaResourceGroup

若要檢查此作業的狀態,請使用 az backup job show Cmdlet。

下一步