共用方式為


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

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

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

如果您已 使用 CLI 在 Azure 中備份 SAP HANA 資料庫,請使用下列資源:

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

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

備註

若要深入了解支援的設定和案例,請參閱 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 資料庫備份的原則

若要變更 SAP HANA 備份設定基礎的原則,請使用 az backup 原則集 Cmdlet。 此 Cmdlet 中的 name 參數會參考我們想要變更其原則的備份項目。 在本教學課程中,我們將以新的原則 newsaphanaPolicy 取代 SAP HANA 資料庫 saphanadatabase;hxe;hxe 的原則。 您可以使用 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

建立SAP HANA資料庫的增量備份原則

若要建立累加備份原則,請使用下列參數執行 az backup policy create 命令:

  • --backup-management-type – Azure 工作負載
  • --工作負載類型 - 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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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 天
  • 只指定星期六作為 ScheduleRunDays
 {
  "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 命令。

停止保護而不保留資料

若要停止保護而不保留資料,請使用 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 命令。

繼續保護 SAP HANA 資料庫

當您停止對 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 命令。

後續步驟