Partilhar via


Tutorial: Gerir bases de dados SAP HANA numa VM do Azure com a CLI do Azure

A CLI do Azure é utilizada para criar e gerir recursos do Azure a partir da Linha de Comandos ou através de scripts. Esta documentação detalha como gerir uma base de dados SAP HANA com cópia de segurança na VM do Azure, tudo com a CLI do Azure. Também pode executar estes passos com o portal do Azure.

Utilize o Azure Cloud Shell para executar comandos da CLI.

No final deste tutorial, será capaz de:

  • Monitorizar tarefas de cópia de segurança e restauro
  • Proteger novas bases de dados adicionadas a uma instância do SAP HANA
  • Alterar a política
  • Parar proteção
  • Retomar a proteção

Se utilizou a cópia de segurança de uma base de dados SAP HANA no Azure com a CLI para fazer uma cópia de segurança da base de dados SAP HANA, está a utilizar os seguintes recursos:

  • um grupo de recursos com o nome saphanaResourceGroup
  • um cofre com o nome saphanaVault
  • contentor protegido com o nome VMAppContainer; Computação;saphanaResourceGroup;saphanaVM
  • base de dados/item com o nome saphanadatabase;hxe;hxe
  • recursos na região westus2

A CLI do Azure facilita a gestão de uma base de dados SAP HANA em execução numa VM do Azure com uma cópia de segurança com Azure Backup. Este tutorial detalha cada uma das operações de gestão.

Nota

Veja a matriz de suporte da cópia de segurança sap HANA para saber mais sobre as configurações e cenários suportados.

Monitorizar tarefas de cópia de segurança e restauro

Para monitorizar tarefas concluídas ou atualmente em execução (cópia de segurança ou restauro), utilize o cmdlet az backup job list . A CLI também lhe permite suspender uma tarefa atualmente em execução ou aguardar até que uma tarefa seja concluída.

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

A saída será semelhante à seguinte:

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

Alterar política

Para alterar a política subjacente à configuração da cópia de segurança do SAP HANA, utilize o cmdlet az backup policy set . O parâmetro de nome neste cmdlet refere-se ao item de cópia de segurança cuja política queremos alterar. Neste tutorial, vamos substituir a política da nossa base de dados SAP HANA saphanadatabase;hxe;hxe por uma nova política newsaphanaPolicy. Podem ser criadas novas políticas com o 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 \

A saída deverá ter o seguinte aspeto:

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

Criar política de cópia de segurança incremental

Para criar uma política de cópia de segurança incremental, execute o comando az backup policy create com os seguintes parâmetros:

  • --backup-management-type – Carga de Trabalho do Azure
  • --workload-type - SAPHana
  • --name – Nome da política
  • --policy - ficheiro JSON com detalhes adequados para agendamento e retenção
  • --resource-group - Grupo de recursos do cofre
  • --vault-name – Nome do cofre

Exemplo:

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

JSON de exemplo (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"
} 

Assim que a política for criada com êxito, a saída do comando apresentará o JSON da política que passou como um parâmetro durante a execução do comando.

Pode modificar a secção seguinte da política para especificar a frequência e retenção de cópias de segurança pretendidas para cópias de segurança incrementais.

Por exemplo:

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

Exemplo:

Se quiser ter cópias de segurança incrementais apenas no sábado e mantê-las durante 60 dias, faça as seguintes alterações na política:

  • Retenção de atualização Contagem dedurações para 60 dias
  • Especifique apenas Sábado como 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
  }
}

Proteger novas bases de dados adicionadas a uma instância do SAP HANA

Registar uma instância do SAP HANA num cofre dos Serviços de Recuperação deteta automaticamente todas as bases de dados nesta instância.

No entanto, nos casos em que as novas bases de dados são adicionadas à instância do SAP HANA mais tarde, utilize o cmdlet az backup protectable-item initialize . Este cmdlet deteta as novas bases de dados adicionadas.

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

Em seguida, utilize o cmdlet az backup protectable-item list para listar todas as bases de dados que foram detetadas na instância do SAP HANA. No entanto, esta lista exclui as bases de dados nas quais a cópia de segurança já foi configurada. Depois de detetar a cópia de segurança da base de dados, veja Ativar a cópia de segurança na base de dados SAP HANA.

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

A nova base de dados que pretende criar uma cópia de segurança será apresentada nesta lista, que terá o seguinte aspeto:

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

Parar a proteção de uma base de dados SAP HANA

Pode parar de proteger uma base de dados SAP HANA de várias formas:

  • Pare todas as tarefas de cópia de segurança futuras e elimine todos os pontos de recuperação.
  • Pare todas as tarefas de cópia de segurança futuras e deixe os pontos de recuperação intactos.

Se optar por deixar pontos de recuperação, tenha estes detalhes em mente:

  • Todos os pontos de recuperação permanecerão intactos para sempre e toda a poda irá parar na proteção de paragem com dados de retenção.
  • Será cobrado pela instância protegida e pelo armazenamento consumido.
  • Se eliminar uma origem de dados sem parar as cópias de segurança, as novas cópias de segurança falharão.

Vamos analisar cada uma das formas de parar a proteção mais detalhadamente.

Parar a proteção com reter dados

Para parar a proteção com dados de retenção, utilize o cmdlet az backup protection para desativar .

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

A saída deverá ter o seguinte aspeto:

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

Para verificar o estado desta operação, utilize o cmdlet az backup job show .

Parar a proteção sem reter dados

Para parar a proteção sem reter dados, utilize o cmdlet az backup protection .

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

A saída deverá ter o seguinte aspeto:

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

Para verificar o estado desta operação, utilize o cmdlet az backup job show .

Retomar a proteção

Quando parar a proteção para a base de dados SAP HANA com dados de retenção, pode retomar a proteção mais tarde. Se não reter os dados de cópia de segurança, não poderá retomar a proteção.

Para retomar a proteção, utilize o 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

A saída deverá ter o seguinte aspeto:

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

Para verificar o estado desta operação, utilize o cmdlet az backup job show .

Passos seguintes