Samouczek: zarządzanie bazami danych SAP HANA na maszynie wirtualnej platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure

Interfejs wiersza polecenia platformy Azure służy do tworzenia zasobów platformy Azure i zarządzania nimi z poziomu wiersza polecenia lub za pośrednictwem skryptów. Ta dokumentacja zawiera szczegółowe informacje na temat zarządzania bazą danych SAP HANA na maszynie wirtualnej platformy Azure — wszystkie przy użyciu interfejsu wiersza polecenia platformy Azure. Te kroki można również wykonać przy użyciu Azure Portal.

Uruchamianie poleceń interfejsu wiersza polecenia przy użyciu usługi Azure Cloud Shell.

Po ukończeniu tego samouczka będziesz wiedzieć, jak wykonać następujące czynności:

  • Monitorowanie zadań tworzenia kopii zapasowych i przywracania
  • Ochrona nowych baz danych dodanych do wystąpienia sap HANA
  • Zmienianie zasad
  • Zatrzymywanie ochrony
  • Wznawianie ochrony

Jeśli do tworzenia kopii zapasowej bazy danych SAP HANA na platformie Azure użyto interfejsu wiersza polecenia do utworzenia kopii zapasowej bazy danych SAP HANA, używasz następujących zasobów:

  • grupa zasobów o nazwie saphanaResourceGroup
  • magazyn o nazwie saphanaVault
  • kontener chroniony o nazwie VMAppContainer; Compute;saphanaResourceGroup;saphanaVM
  • kopia zapasowa bazy danych/elementu o nazwie saphanadatabase;hxe;hxe
  • zasoby w regionie westus2

Interfejs wiersza polecenia platformy Azure ułatwia zarządzanie bazą danych SAP HANA działającą na maszynie wirtualnej platformy Azure, która jest tworzona przy użyciu Azure Backup. W tym samouczku szczegółowo każdą operację zarządzania.

Uwaga

Zobacz macierz obsługi kopii zapasowych platformy SAP HANA , aby dowiedzieć się więcej o obsługiwanych konfiguracjach i scenariuszach.

Monitorowanie zadań tworzenia kopii zapasowych i przywracania

Aby monitorować ukończone lub aktualnie uruchomione zadania (tworzenie kopii zapasowej lub przywracanie), użyj polecenia cmdlet az backup job list . Interfejs wiersza polecenia umożliwia również zawieszenie aktualnie uruchomionego zadania lub oczekiwanie na zakończenie zadania.

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

Dane wyjściowe będą przypominać następujące:

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

Zmienianie zasad

Aby zmienić zasady dotyczące konfiguracji kopii zapasowej sap HANA, użyj polecenia cmdlet az backup policy set . Parametr name w tym poleceniu cmdlet odwołuje się do elementu kopii zapasowej, którego zasady chcemy zmienić. W tym samouczku zastąpimy zasady bazy danych SAP HANA saphanadatabase;hxe;hxe nową zasadą newsaphanaPolicy. Nowe zasady można utworzyć przy użyciu polecenia cmdlet az backup policy create .

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

Dane wyjściowe powinny wyglądać podobnie do poniższych:

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

Tworzenie zasad tworzenia przyrostowych kopii zapasowych

Aby utworzyć zasady tworzenia przyrostowych kopii zapasowych, wykonaj polecenie az backup policy create z następującymi parametrami:

  • --backup-management-type — Obciążenie platformy Azure
  • --workload-type — SAPHana
  • --name — nazwa zasad
  • --policy — plik JSON z odpowiednimi szczegółami dotyczącymi harmonogramu i przechowywania
  • --resource-group — grupa zasobów magazynu
  • --vault-name — nazwa magazynu

Przykład:

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

Przykładowy kod 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"
} 

Po pomyślnym utworzeniu zasad dane wyjściowe polecenia będą wyświetlać kod JSON zasad przekazany jako parametr podczas wykonywania polecenia.

Możesz zmodyfikować następującą sekcję zasad, aby określić żądaną częstotliwość tworzenia kopii zapasowych i przechowywanie dla przyrostowych kopii zapasowych.

Przykład:

{
  "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
  }
}

Przykład:

Jeśli chcesz mieć przyrostowe kopie zapasowe tylko w sobotę i zachować je przez 60 dni, wprowadź następujące zmiany w zasadach:

  • Liczba aktualizacji czasu przechowywania do 60 dni
  • Określ tylko sobotę jako 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
  }
}

Ochrona nowych baz danych dodanych do wystąpienia sap HANA

Zarejestrowanie wystąpienia SAP HANA w magazynie usługi Recovery Services automatycznie odnajduje wszystkie bazy danych w tym wystąpieniu.

Jednak w przypadku późniejszego dodania nowych baz danych do wystąpienia sap HANA użyj polecenia cmdlet az backup protectable-item initialize . To polecenie cmdlet odnajduje dodane nowe bazy danych.

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

Następnie użyj polecenia cmdlet az backup protectable-item list , aby wyświetlić listę wszystkich baz danych odnalezionych w wystąpieniu sap HANA. Ta lista nie obejmuje jednak tych baz danych, na których została już skonfigurowana kopia zapasowa. Po odnalezieniu kopii zapasowej bazy danych zobacz Włączanie tworzenia kopii zapasowej w bazie danych SAP HANA.

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

Nowa baza danych, której kopia zapasowa ma zostać utworzona, zostanie wyświetlona na tej liście, która będzie wyglądać następująco:

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

Zatrzymywanie ochrony bazy danych SAP HANA

Ochronę bazy danych SAP HANA można zatrzymać na kilka sposobów:

  • Zatrzymanie wszystkich przyszłych zadań tworzenia kopii zapasowych i usunięcie wszystkich punktów odzyskiwania.
  • Zatrzymaj wszystkie przyszłe zadania tworzenia kopii zapasowej i pozostaw punkty odzyskiwania bez zmian.

Jeśli zdecydujesz się pozostawić punkty odzyskiwania, pamiętaj o następujących kwestiach:

  • Wszystkie punkty odzyskiwania pozostaną nienaruszone na zawsze, a wszystkie oczyszczanie zatrzyma ochronę z zachowaniem danych.
  • Opłata zostanie naliczona za chronione wystąpienie i wykorzystany magazyn.
  • Jeśli usuniesz źródło danych bez zatrzymywania kopii zapasowych, nowe kopie zapasowe nie powiedzą się.

Przyjrzyjmy się każdemu ze sposobów, aby zatrzymać ochronę bardziej szczegółowo.

Zatrzymanie ochrony z zachowaniem danych

Aby zatrzymać ochronę z zachowaniem danych, użyj polecenia cmdlet az backup protection disable .

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

Dane wyjściowe powinny wyglądać podobnie do poniższych:

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

Aby sprawdzić stan tej operacji, użyj polecenia cmdlet az backup job show .

Zatrzymywanie ochrony bez zachowywania danych

Aby zatrzymać ochronę bez przechowywania danych, użyj polecenia cmdlet az backup protection disable .

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

Dane wyjściowe powinny wyglądać podobnie do poniższych:

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

Aby sprawdzić stan tej operacji, użyj polecenia cmdlet az backup job show .

Wznawianie ochrony

Po zatrzymaniu ochrony bazy danych SAP HANA z zachowaniem danych można później wznowić ochronę. Jeśli nie zachowasz danych kopii zapasowej, nie będzie można wznowić ochrony.

Aby wznowić ochronę, użyj polecenia cmdlet az backup protection resume .

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

Dane wyjściowe powinny wyglądać podobnie do poniższych:

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

Aby sprawdzić stan tej operacji, użyj polecenia cmdlet az backup job show .

Następne kroki