Compartir vía


Tutorial: Administración de las bases de datos de SAP HANA de una máquina virtual de Azure con la CLI de Azure

La CLI de Azure se usa para crear y administrar los recursos de Azure desde la línea de comandos o mediante scripts. En esta documentación se detalla cómo administrar una base de datos de SAP HANA con copia de seguridad en una máquina virtual de Azure, todo ello con la CLI de Azure. También puede llevar a cabo estos pasos con Azure Portal.

Use Azure Cloud Shell para ejecutar comandos de la CLI.

Al final de este tutorial podrá realizar lo siguiente:

  • Supervisar los trabajos de copia de seguridad y restauración
  • Proteger las nuevas bases de datos agregadas a una instancia de SAP HANA
  • Cambiar la directiva
  • Detener protección
  • Reanudar protección

Si ha usado Realización de una copia de seguridad de una base de datos de SAP HANA en Azure mediante la CLI para realizar la copia de seguridad de la base de datos de SAP HANA, estará usando los siguientes recursos:

  • un grupo de recursos denominado saphanaResourceGroup,
  • un almacén denominado saphanaVault,
  • un contenedor protegido denominado VMAppContainer;Compute;saphanaResourceGroup;saphanaVM,
  • el elemento o la base de datos con copia de seguridad denominado saphanadatabase;hxe;hxe y
  • los recursos de la región westus2.

La CLI de Azure facilita la administración de las bases de datos de SAP HANA que se ejecutan en una máquina virtual de Azure con copia de seguridad realizada mediante Azure Backup. En este tutorial se detallan todas las operaciones de administración.

Nota

Consulte la matriz de compatibilidad de copia de seguridad de SAP HANA para más información sobre las configuraciones y los escenarios admitidos.

Supervisar los trabajos de copia de seguridad y restauración

Para supervisar los trabajos completados o en ejecución (copia de seguridad o restauración), use el cmdlet az backup job list. La CLI también permite suspender un trabajo que se esté ejecutando actualmente o esperar hasta que se complete un trabajo.

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

El resultado tendrá un aspecto similar al siguiente:

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

Cambio de la directiva

Para cambiar la directiva subyacente a la configuración de copia de seguridad de SAP HANA, use el cmdlet az backup policy set. El parámetro name de este cmdlet hace referencia al elemento de copia de seguridad cuya directiva se desea cambiar. En este tutorial vamos a reemplazar la directiva de nuestra base de datos de SAP HANA saphanadatabase;hxe;hxe con una nueva directiva newsaphanaPolicy. Las nuevas directivas se pueden crear con el 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 \

El resultado debe ser similar al siguiente:

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

Directiva de creación de copias de seguridad incrementales

Para crear una directiva de copia de seguridad incremental, ejecute el comando az backup policy create con los parámetros siguientes:

  • --backup-management-type: carga de trabajo de Azure
  • --workload-type: SAPHana
  • --name: nombre de la directiva
  • --policy: archivo JSON con la información adecuada para la programación y la retención
  • --resource-group: grupo de recursos del almacén
  • --vault-name: nombre del almacén

Ejemplo:

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

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

Una vez que la directiva se crea correctamente, la salida del comando mostrará el JSON de la directiva que pasó como parámetro al ejecutar el comando.

Puede modificar la siguiente sección de la directiva para especificar la frecuencia de copia de seguridad deseada y la retención de las copias de seguridad incrementales.

Por ejemplo:

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

Ejemplo:

Si desea realizar copias de seguridad incrementales solo los sábados y conservarlas durante 60 días, realice los cambios siguientes en la directiva:

  • Actualice el número de retentionDuration a 60 días
  • Especifique solo el sábado en 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 las nuevas bases de datos agregadas a una instancia de SAP HANA

El registro de una instancia de SAP HANA con un almacén de Recovery Services detecta automáticamente todas las bases de datos de esta instancia.

Sin embargo, en casos en los que las nuevas bases de datos se agreguen a la instancia de SAP HANA posteriormente, use el cmdlet az backup protectable-item initialize. Este cmdlet detecta las nuevas bases de datos agregadas.

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

A continuación, use el cmdlet az backup protected-item list para eenumerar todas las bases de datos que se hayan detectado en la instancia de SAP HANA. Sin embargo, esta lista excluye las bases de datos en las que ya se haya configurado la copia de seguridad. Una vez detectada la base de datos de la que se va a realizar la copia de seguridad, consulte Habilitación de la copia de seguridad de la base de datos de SAP HANA.

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

La nueva base de datos de la que desea realizar una copia de seguridad se mostrará en esta lista, que tendrá el siguiente aspecto:

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

Detención de la protección para una base de datos de SAP HANA

Puede dejar de proteger una base de datos SAP HANA de dos maneras:

  • Detener todos los trabajos futuros de copia de seguridad y eliminar todos los puntos de recuperación.
  • Detener todos los trabajos futuros de copia de seguridad y dejar intactos los puntos de recuperación.

Si decide dejar los puntos de recuperación, tenga en cuenta estos detalles:

  • Todos los puntos de recuperación permanecerán intactos para siempre y, al detenerse la protección de los datos, se detendrá la eliminación de todos los puntos y se conservarán los datos.
  • Se le cobrará la instancia protegida y el almacenamiento consumido.
  • Si elimina un origen de datos sin detener las copias de seguridad, las nuevas copias de seguridad producirán errores.

Echemos un vistazo a cada una de las formas de detener la protección con más detalle.

Detener la protección con conservación de datos

Para detener la protección y conservar los datos, use el 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

El resultado debe ser similar al siguiente:

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

Para comprobar el estado de esta operación, utilice el cmdlet az backup job show.

Detención de la protección sin conservar los datos

Para detener la protección sin conservar los datos, use el cmdlet az backup protecion 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

El resultado debe ser similar al siguiente:

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

Para comprobar el estado de esta operación, utilice el cmdlet az backup job show.

Reanudar protección

Al detener la protección de la base de datos de SAP HANA y conservar los datos, se puede reanudar la protección más adelante. Si no conserva los datos de los que se realizó una copia de seguridad, no podrá reanudar la protección.

Para reanudar la protección, use el cmdlet az backup protectin resume.

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

El resultado debe ser similar al siguiente:

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

Para comprobar el estado de esta operación, utilice el cmdlet az backup job show.

Pasos siguientes