Fazer backup e recuperação do SAP HANA usando snapshots de disco

Neste guia, mostramos como executar operações de backup e recuperação do SAP HANA usando o recurso snapshot de disco do agente do Google Cloud para SAP.

Para informações sobre esse recurso, consulte Backup e recuperação baseados em snapshot de disco do SAP HANA.

Antes de começar

Definir permissões

Para usar o agente do Google Cloud para SAP ao executar backup e recuperação baseados em snapshot de disco do sistema SAP HANA, você precisa definir as seguintes permissões:

  • Para criar snapshots de disco, ative as seguintes permissões do IAM:
    • Para o projeto do Google Cloud em que o sistema SAP HANA é executado, ative a permissão compute.snapshots.create.
    • Para a conta de serviço usada pela instância de VM do Compute Engine, ative as seguintes permissões: compute.disks.createSnapshot, compute.snapshot.list e compute.disk.list.
  • Para criar backups baseados em snapshot de disco, o usuário do banco de dados SAP HANA usado pelo agente precisa ter o privilégio BACKUP OPERATOR ou BACKUP ADMIN. Para mais informações, consulte o documento da SAP Autorizações necessárias para backup e recuperação (em inglês).
  • Para executar as operações de backup e recuperação, o usuário do sistema operacional que executa os comandos do agente precisa ser o usuário root ou ter acesso sudo para executar os comandos a seguir. Também é possível fornecer acesso sudo criando um grupo no diretório /etc/sudoers.d. Por exemplo:

    %sapagent_snapshot_sudoers ALL=(ALL:ALL) NOPASSWD:/sbin/lvdisplay, /sbin/vgscan, /sbin/dmsetup, /sbin/lvscan, /usr/sbin/xfs_freeze, /usr/bin/google_cloud_sap_agent

Criar um backup baseado em snapshot de disco

  • Para criar um backup baseado em snapshot de disco para o volume /hana/data do banco de dados do SAP HANA, execute o comando hanadiskbackup do agente do Google Cloud para SAP:

    sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \
        -project=DESTINATION_PROJECT_ID \
        -host=HANA_HOST_ADDRESS \
        -port=HANA_PORT_NUMBER \
        -sid=SID \
        -hana-db-user=HANA_USERNAME \
        -password-secret=HANA_USER_PWD_SECRET_NAME \
        -source-disk=SOURCE_DISK_NAME \
        -source-disk-zone=SOURCE_DISK_ZONE

    Substitua:

    • DESTINATION_PROJECT_ID: o ID do projeto do Google Cloud em que você quer criar o snapshot de disco
    • HANA_HOST_ADDRESS: o nome do host ou endereço IP da instância de VM do Compute Engine que hospeda o banco de dados SAP HANA

      Em um sistema de alta disponibilidade (HA, na sigla em inglês), especifique o nome do host ou o endereço IP do host local no nó principal do SAP HANA. Não use o IP virtual (VIP, na sigla em inglês) usado no cluster para identificar o nó principal. Em uma implantação de recuperação de desastres (DR), especifique o nome do host ou o endereço IP do host local na instância principal do SAP HANA.

    • HANA_PORT_NUMBER: a porta do SAP HANA que aceita as solicitações de backup e recuperação

    • SID: o identificador do sistema SAP (SID, na sigla em inglês) do seu sistema SAP HANA

    • HANA_USERNAME: o nome de usuário do banco de dados SAP HANA que você quer usar para criar o backup

    • HANA_USER_PWD_SECRET_NAME: se você estiver usando o Secret Manager para armazenar a senha do usuário do banco de dados SAP HANA, especifique o nome do secret correspondente

    • SOURCE_DISK_NAME: o nome do volume Persistent Disk ou Hyperdisk que hospeda o volume /hana/data

    • SOURCE_DISK_ZONE: o nome da zona em que o disco que hospeda o volume /hana/data está implantado

    A tabela a seguir descreve os argumentos aceitos pelo comando hanadiskbackup:

    Argumento Descrição
    -port Especifique a porta do SAP HANA que aceita as solicitações de backup e recuperação.
    -sid Especifique o identificador do sistema SAP (SID, na sigla em inglês) do seu sistema SAP HANA.
    -hana-db-user Especifique o nome de usuário do banco de dados SAP HANA que você quer usar para criar o backup.
    -password

    Especifique a senha do usuário do banco de dados SAP HANA usada para criar o backup.

    Não especifique esse argumento se você estiver usando o argumento -password-secret. Recomendamos usar -password-secret.

    -password-secret

    Opcional. Se você estiver usando o Secret Manager para armazenar a senha do usuário do banco de dados SAP HANA, especifique o nome do secret correspondente.

    No Secret Manager, verifique se o valor do Secret, que é a senha, contém pelo menos oito caracteres e inclui pelo menos uma letra maiúscula, uma letra minúscula e um número.

    Não especifique esse argumento se você estiver usando o argumento -password.

    -host Opcional. Especifique o endereço IP da instância de VM do Compute Engine que hospeda o sistema SAP HANA. O valor padrão é localhost.
    -project Opcional. Especifique o ID do projeto do Google Cloud em que você quer criar o snapshot de disco. Por padrão, o snapshot é criado no projeto do Google Cloud em que o sistema SAP HANA está em execução.
    -abandon-prepared Opcional. Especifica se qualquer snapshot de disco já existente será ignorado ou não. O valor padrão é false.
    -snapshot-name

    Opcional. Especifique o nome do snapshot de disco que você está criando.

    Por padrão, o snapshot é nomeado no seguinte formato: snapshot-SOURCE_DISK_NAME-YYYYMMDD-HHMMSS.

    -source-disk Especifique o nome do volume Persistent Disk ou Hyperdisk que hospeda o volume /hana/data.
    -source-disk-zone Especifique a zona em que está o disco que hospeda o volume /hana/data.
    -source-disk-key-file Opcional. Se o disco que hospeda o volume /hana/data for criptografado por uma chave de criptografia fornecida pelo cliente, especifique o caminho absoluto para a chave.
    -storage-location Opcional. Especifique a multirregião ou região do Cloud Storage em que você quer armazenar o snapshot de disco.
    -snapshot-description Opcional. Especifique uma descrição para o snapshot de disco.
    -labels Opcional. Especifique um ou mais pares de rótulo-valor que você quer associar ao snapshot do disco que você está criando. Exemplo: -labels="label1=value1,label2=value2".
    -send-metrics-to-monitoring Opcional. Especifica se o status de execução da criação do snapshot será enviado ou não ao Cloud Monitoring. O valor padrão é TRUE.
    -loglevel Opcional. Especifique o nível de geração de registros para a operação de criação de snapshot. O nível de geração de registros padrão é info. Os níveis de registro disponíveis são: debug, info, warn e error.

Verificar o snapshot de disco

Use as seguintes opções para verificar se o snapshot de disco foi criado:

  • No console do Google Cloud, acesse a página Snapshots do Compute Engine e filtre as entradas usando o nome do snapshot ou disco.

    Acesse Snapshots

  • Outra possibilidade é ver os detalhes do snapshot de disco no arquivo de registro do agente do Google Cloud para SAP a seguir:

    /var/log/google-cloud-sap-agent/hanadiskbackup.log

Consulte o catálogo de backup do SAP HANA

Além de criar o snapshot de disco, o comando hanadiskbackup cria uma entrada para o snapshot no catálogo de backup do SAP HANA. Veja a seguir um exemplo de consulta SQL para ver as entradas de snapshot de disco no catálogo de backup do SAP HANA:

SELECT BACKUP_ID, STATE_NAME, COMMENT FROM M_BACKUP_CATALOG WHERE ENTRY_TYPE_NAME = 'data snapshot'

A resposta será semelhante a:

BACKUP_ID,STATE_NAME,COMMENT
BACKUP_ID,"successful","snapshot-SOURCE_DISK_NAME-YYYYMMDD-HHMMMSS"

Esta saída inclui os seguintes valores:

  • BACKUP_ID: o ID de backup atribuído ao snapshot de disco no catálogo de backup do SAP HANA
  • SOURCE_DISK_NAME: o nome do disco que hospeda o volume /hana/data para o qual você criou um snapshot
  • YYYYMMDD-HHMMMSS: a data e a hora em que o snapshot foi criado

Executar a recuperação usando um snapshot de disco

Para executar a recuperação baseada em snapshots de disco usando o agente do Google Cloud para SAP, consulte as instruções para seu cenário:

Recuperar o banco de dados para um sistema com escalonamento vertical

Para recuperar o banco de dados de um sistema SAP HANA com escalonamento vertical implantado no Google Cloud, conclua as seguintes etapas:

  1. Execute o comando hanadiskrestore do agente para recuperar o disco que hospeda o volume /hana/data:

    sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \
        -project=SOURCE_PROJECT_ID \
        -sid=SID \
        -source-snapshot=SOURCE_SNAPSHOT_NAME \
        -data-disk-name=SOURCE_DISK_NAME \
        -data-disk-zone=SOURCE_DISK_ZONE \
        -new-disk-type=NEW_DISK_TYPE \
        -new-disk-name=NEW_DISK_NAME

    Substitua:

    • SOURCE_PROJECT_ID: o ID do projeto do Google Cloud em que está o snapshot de disco
    • SID: o identificador do sistema SAP (SID, na sigla em inglês) do seu sistema SAP HANA
    • SOURCE_SNAPSHOT_NAME: o nome do snapshot de disco que você usará para criar o novo disco
    • SOURCE_DISK_NAME: o nome do disco de origem que hospedará o volume /hana/data
    • SOURCE_DISK_ZONE: o nome da zona em que o disco de origem é implantado

    Para informações sobre os argumentos que podem ser usados com o comando hanadiskrestore, consulte Argumentos aceitos para restauração de disco.

  2. Recupere seu banco de dados SAP HANA usando a opção necessária:

    Recuperar para o horário do snapshot

    Para recuperar o banco de dados SAP HANA restaurando-o para o horário em que o snapshot de disco foi criado, siga estas etapas:

    1. Mude para o usuário SIDadm.
      su - SID_LCadm

      Substitua SID_LC pelo SID do seu sistema SAP HANA. Todas as letras devem ser minúsculas.

    2. Recupere o banco de dados do sistema executando o seguinte comando:
      HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
    3. Conecte-se ao banco de dados do sistema. Por exemplo, execute o comando a seguir:
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      Substitua:

      • SYSTEM_DB_PASSWORD: a senha do banco de dados do sistema
      • INSTANCE_NUMBER: o número da instância do SAP HANA
    4. Para recuperar os bancos de dados de locatário, execute o comando a seguir para cada um deles:
      RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG

      Substitua TENANT_SID pelo SID do banco de dados do locatário.

    Recuperar para um momento específico

    Para recuperar o banco de dados SAP HANA restaurando-o para um momento específico, siga estas etapas:

    1. Verifique se você criou um backup do volume /hana/log no Cloud Storage usando o recurso Backint do agente do Google Cloud para SAP. Para mais informações sobre esse recurso, consulte Backup e recuperação baseados no Backint para o SAP HANA.
    2. Mude para o usuário SIDadm.
      su - SID_LCadm

      Substitua SID_LC pelo SID do seu sistema SAP HANA. Todas as letras devem ser minúsculas.

    3. Recupere o banco de dados do sistema executando o seguinte comando:
      HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
    4. Conecte-se ao banco de dados do sistema. Por exemplo, execute o comando a seguir:
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      Substitua:

      • SYSTEM_DB_PASSWORD: a senha do banco de dados do sistema
      • INSTANCE_NUMBER: o número da instância do SAP HANA
    5. Para recuperar os bancos de dados de locatário, execute o comando a seguir para cada um deles:
      RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT

      Substitua TENANT_SID pelo SID do banco de dados do locatário.

Argumentos aceitos para restauração de disco

A tabela a seguir descreve os argumentos aceitos pelo comando hanadiskrestore do agente:

Argumento Descrição
-sid Especifique o identificador do sistema SAP (SID, na sigla em inglês) do seu sistema SAP HANA.
-data-disk-name Especifique o nome do disco de origem que hospeda o volume /hana/data.
-data-disk-zone Especifique a zona em que o disco de origem que hospeda o volume /hana/data está implantado.
-source-snapshot Especifique o nome do snapshot de disco que você quer usar para recuperar o disco que hospeda seu volume de dados do SAP HANA.
-new-disk-name Especifique o nome que você quer definir para o novo disco.
-project Opcional. Especifique o ID do projeto do Google Cloud em que está o snapshot do disco de origem. Por padrão, o snapshot é criado no projeto do Google Cloud em que o sistema SAP HANA está em execução.
-new-disk-type

Opcional. Especifique o tipo de Persistent Disk ou Hyperdisk que você quer criar. Por padrão, o novo disco é do mesmo tipo do disco de origem.

Especifique um tipo de disco baseado em SSD que seja certificado pela SAP para uso com o SAP HANA. Para mais informações, consulte Tipos de disco compatíveis.

-hana-sidadm Opcional. Especifique SIDadm: o usuário do sistema operacional do seu sistema SAP HANA.
-force-stop-hana Opcional. Se você quiser forçar o fechamento do SAP HANA antes de iniciar a operação de recuperação, especifique esse argumento e defina o valor dele como true. O valor padrão é false.
-provisioned-iops Opcional. Se você estiver criando um volume Hyperdisk, especifique as IOPS (operações de entrada/saída por segundo) que ele precisa processar.
-provisioned-throughput Opcional. Se você estiver criando um volume Hyperdisk, especifique a capacidade de processamento necessária.
-disk-size-gb

Opcional. Especifique o tamanho do novo disco em GB. Por padrão, o novo disco é do mesmo tamanho que o atual.

O novo disco não pode ser menor que o atual.

-loglevel Opcional. Especifique o nível de geração de registros para todas as ações realizadas pelo comando hanadiskrestore. O nível de geração de registros padrão é info. Os níveis de registro disponíveis são: debug, info, warn e error.

Recuperar o banco de dados para um sistema de alta disponibilidade com escalonamento vertical

Para recuperar o banco de dados de um sistema SAP HANA com escalonamento vertical implantado em um cluster de alta disponibilidade (HA) no Google Cloud, conclua as etapas a seguir:

  1. Verifique se você tem um snapshot do disco que hospeda o volume /hana/data no nó principal do SAP HANA.

  2. Como usuário raiz, coloque o cluster de alta disponibilidade no modo de manutenção. Se você estiver usando o Pacemaker, execute o seguinte comando:

    RHEL

    pcs property set maintenance-mode=true

    SLES

    crm configure property maintenance-mode=true
  3. Interrompa as instâncias do banco de dados SAP HANA executando o seguinte comando nos nós principal e em espera do cluster de alta disponibilidade:

    HDB stop
  4. Alterne para o nó principal do sistema SAP HANA de alta disponibilidade.

  5. Execute o comando hanadiskrestore do agente para recuperar o disco que hospeda o volume /hana/data:

    sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \
        -project=SOURCE_PROJECT_ID \
        -sid=SID \
        -source-snapshot=SOURCE_SNAPSHOT_NAME \
        -data-disk-name=SOURCE_DISK_NAME \
        -data-disk-zone=SOURCE_DISK_ZONE \
        -new-disk-type=NEW_DISK_TYPE \
        -new-disk-name=NEW_DISK_NAME

    Substitua:

    • SOURCE_PROJECT_ID: o ID do projeto do Google Cloud em que está o snapshot de disco
    • SID: o identificador do sistema SAP (SID, na sigla em inglês) do seu sistema SAP HANA
    • SOURCE_SNAPSHOT_NAME: o nome do snapshot de disco que você usará para criar o novo disco
    • SOURCE_DISK_NAME: o nome do disco de origem que hospedará o volume /hana/data
    • SOURCE_DISK_ZONE: o nome da zona em que o disco de origem é implantado

    Para informações sobre os argumentos que podem ser usados com o comando hanadiskrestore, consulte Argumentos aceitos para restauração de disco.

  6. Cancele o registro do nó secundário do sistema SAP HANA de alta disponibilidade:

    hdbnsutil -sr_unregister
  7. No nó principal do sistema SAP HANA de alta disponibilidade, desative a replicação desse sistema:

    hdbnsutil -sr_disable
  8. No nó principal, recupere o banco de dados SAP HANA usando a opção necessária:

    Recuperar para o horário do snapshot

    Para recuperar o banco de dados SAP HANA restaurando-o para o horário em que o snapshot de disco foi criado, siga estas etapas:

    1. Mude para o usuário SIDadm.
      su - SID_LCadm

      Substitua SID_LC pelo SID do seu sistema SAP HANA. Todas as letras devem ser minúsculas.

    2. Recupere o banco de dados do sistema executando o seguinte comando:
      HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
    3. Conecte-se ao banco de dados do sistema. Por exemplo, execute o comando a seguir:
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      Substitua:

      • SYSTEM_DB_PASSWORD: a senha do banco de dados do sistema
      • INSTANCE_NUMBER: o número da instância do SAP HANA
    4. Para recuperar os bancos de dados de locatário, execute o comando a seguir para cada um deles:
      RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG

      Substitua TENANT_SID pelo SID do banco de dados do locatário.

    Recuperar para um momento específico

    Para recuperar o banco de dados SAP HANA restaurando-o para um momento específico, siga estas etapas:

    1. Verifique se você criou um backup do volume /hana/log no Cloud Storage usando o recurso Backint do agente do Google Cloud para SAP. Para mais informações sobre esse recurso, consulte Backup e recuperação baseados no Backint para o SAP HANA.
    2. Mude para o usuário SIDadm.
      su - SID_LCadm

      Substitua SID_LC pelo SID do seu sistema SAP HANA. Todas as letras devem ser minúsculas.

    3. Recupere o banco de dados do sistema executando o seguinte comando:
      HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
    4. Conecte-se ao banco de dados do sistema. Por exemplo, execute o comando a seguir:
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      Substitua:

      • SYSTEM_DB_PASSWORD: a senha do banco de dados do sistema
      • INSTANCE_NUMBER: o número da instância do SAP HANA
    5. Para recuperar os bancos de dados de locatário, execute o comando a seguir para cada um deles:
      RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT

      Substitua TENANT_SID pelo SID do banco de dados do locatário.

  9. No nó principal, ative a replicação do sistema SAP HANA:

    hdbnsutil -sr_enable --name=PRIMARY_SITE_NAME
  10. Registre novamente o nó em espera com o nó principal:

    hdbnsutil -sr_register
       --name=SECONDARY_SITE_NAME
       --remoteHost=PRIMARY_HOST_NAME
       --remoteInstance=INSTANCE_NUMBER
       --replicationMode=sync
       --operationMode=logreplay
  11. Verifique se o banco de dados no nó em espera está totalmente sincronizado com o banco de dados no nó principal.

  12. Como usuário raiz, saia do modo de manutenção do cluster de alta disponibilidade. Se você estiver usando o Pacemaker, execute o seguinte comando:

    RHEL

    pcs property set maintenance-mode=false

    SLES

    crm configure property maintenance-mode=false

Recuperar o banco de dados para uma implantação de DR com escalonamento vertical

Para recuperar o banco de dados de um sistema SAP HANA com escalonamento vertical implantado com uma solução de recuperação de desastres no Google Cloud, conclua as seguintes etapas:

  1. Interrompa os bancos de dados SAP HANA executando o seguinte comando nas instâncias principal e em espera da sua implantação de DR:

    HDB stop
  2. Alterne para a instância principal da sua implantação de DR do SAP HANA.

  3. Execute o comando hanadiskrestore do agente para recuperar o disco que hospeda o volume /hana/data:

    sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \
        -project=SOURCE_PROJECT_ID \
        -sid=SID \
        -source-snapshot=SOURCE_SNAPSHOT_NAME \
        -data-disk-name=SOURCE_DISK_NAME \
        -data-disk-zone=SOURCE_DISK_ZONE \
        -new-disk-type=NEW_DISK_TYPE \
        -new-disk-name=NEW_DISK_NAME

    Substitua:

    • SOURCE_PROJECT_ID: o ID do projeto do Google Cloud em que está o snapshot de disco
    • SID: o identificador do sistema SAP (SID, na sigla em inglês) do seu sistema SAP HANA
    • SOURCE_SNAPSHOT_NAME: o nome do snapshot de disco que você usará para criar o novo disco
    • SOURCE_DISK_NAME: o nome do disco de origem que hospedará o volume /hana/data
    • SOURCE_DISK_ZONE: o nome da zona em que o disco de origem é implantado

    Para informações sobre os argumentos que podem ser usados com o comando hanadiskrestore, consulte Argumentos aceitos para restauração de disco.

  4. Na instância principal, desative a replicação do sistema SAP HANA:

    hdbnsutil -sr_disable
  5. Na instância principal, recupere o banco de dados SAP HANA usando a opção necessária:

    Recuperar para o horário do snapshot

    Para recuperar o banco de dados SAP HANA restaurando-o para o horário em que o snapshot de disco foi criado, siga estas etapas:

    1. Mude para o usuário SIDadm.
      su - SID_LCadm

      Substitua SID_LC pelo SID do seu sistema SAP HANA. Todas as letras devem ser minúsculas.

    2. Recupere o banco de dados do sistema executando o seguinte comando:
      HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
    3. Conecte-se ao banco de dados do sistema. Por exemplo, execute o comando a seguir:
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      Substitua:

      • SYSTEM_DB_PASSWORD: a senha do banco de dados do sistema
      • INSTANCE_NUMBER: o número da instância do SAP HANA
    4. Para recuperar os bancos de dados de locatário, execute o comando a seguir para cada um deles:
      RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG

      Substitua TENANT_SID pelo SID do banco de dados do locatário.

    Recuperar para um momento específico

    Para recuperar o banco de dados SAP HANA restaurando-o para um momento específico, siga estas etapas:

    1. Verifique se você criou um backup do volume /hana/log no Cloud Storage usando o recurso Backint do agente do Google Cloud para SAP. Para mais informações sobre esse recurso, consulte Backup e recuperação baseados no Backint para o SAP HANA.
    2. Mude para o usuário SIDadm.
      su - SID_LCadm

      Substitua SID_LC pelo SID do seu sistema SAP HANA. Todas as letras devem ser minúsculas.

    3. Recupere o banco de dados do sistema executando o seguinte comando:
      HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
    4. Conecte-se ao banco de dados do sistema. Por exemplo, execute o comando a seguir:
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      Substitua:

      • SYSTEM_DB_PASSWORD: a senha do banco de dados do sistema
      • INSTANCE_NUMBER: o número da instância do SAP HANA
    5. Para recuperar os bancos de dados de locatário, execute o comando a seguir para cada um deles:
      RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT

      Substitua TENANT_SID pelo SID do banco de dados do locatário.

  6. Na instância principal, ative a replicação do sistema SAP HANA:

    hdbnsutil -sr_enable --name=PRIMARY_SITE_NAME
  7. Registre a instância em espera com a instância principal:

    hdbnsutil -sr_register
       --name=SECONDARY_SITE_NAME
       --remoteHost=PRIMARY_HOST_NAME
       --remoteInstance=INSTANCE_NUMBER
       --replicationMode=sync
       --operationMode=logreplay
  8. Verifique se o banco de dados na instância em espera está totalmente sincronizado com o banco de dados na instância principal.

Fazer uma cópia ou atualização do sistema

Para usar um backup baseado em snapshot de disco de um sistema SAP HANA para executar a recuperação em outro sistema SAP HANA, conclua as seguintes etapas:

  1. No sistema de origem, crie um backup baseado em snapshot executando o comando hanadiskbackup do agente. Para ver instruções, consulte Criar um backup baseado em snapshot de disco.
  2. Se os SIDs dos sistemas de origem e de destino forem diferentes, renomeie o diretório /hana/data/SID no sistema de origem para que corresponda ao sistema de destino:

    mv /hana/data/SOURCE_SID /hana/data/TARGET_SID

    Substitua:

    • SOURCE_SID: o SID do sistema SAP HANA de origem
    • TARGET_SID: o SID do sistema SAP HANA de destino
  3. No sistema de destino, recupere o disco que hospeda o volume /hana/data executando o comando hanadiskrestore do agente.

  4. No sistema de destino, recupere o banco de dados do sistema:

    HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SOURCE 'SYSTEMDB@SOURCE_SID' USING CATALOG BACKINT USING SNAPSHOT"
  5. Se você quiser que o banco de dados de locatário tenha o SID do sistema de origem, renomeie-o seguindo as instruções no documento do SAP HANA Renomear um banco de dados de locatário (em inglês).

  6. No sistema de destino, conecte-se ao banco de dados do sistema. Por exemplo, execute o comando a seguir:

    hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

    Substitua:

    • SYSTEM_DB_PASSWORD: a senha do banco de dados do sistema
    • INSTANCE_NUMBER: o número da instância do SAP HANA
  7. No sistema de destino, para recuperar os bancos de dados de locatário, execute o seguinte comando para cada um deles:

    RECOVER DATABASE FOR TARGET_SID UNTIL TIMESTAMP '2023-12-08 23:59:00' CLEAR LOG USING SOURCE 'TARGET_SID@SOURCE_SID' USING CATALOG BACKINT USING SNAPSHOT

Validar a consistência do snapshot

Nesta seção, descrevemos como validar a consistência dos dados no snapshot de disco usando a ferramenta hdbpersdiag da SAP. Para informações sobre outras práticas recomendadas do Google Cloud para operações de backup e recuperação baseadas em snapshot de disco, consulte Práticas recomendadas.

Para validar a consistência de um snapshot, siga estas etapas:

  1. Crie um disco com base em um snapshot que você criou usando o comando hanadiskbackup do agente. Use o comando gcloud compute disks create:

    gcloud compute disks create DISK_NAME \
       --size=SIZE \
       --source-snapshot=SNAPSHOT_NAME \
       --type=DISK_TYPE \
       --zone=ZONE
    

    Substitua:

    • DISK_NAME: o nome do disco temporário
    • SIZE: o tamanho do disco temporário
    • SNAPSHOT_NAME: o nome do snapshot de origem
    • DISK_TYPE: o tipo de disco do disco temporário
    • ZONE: a zona do Compute Engine em que você quer implantar o disco temporário
  2. Anexe o disco a uma VM diferente do host do SAP HANA. Use o comando gcloud compute instances attach-disk (em inglês).

    gcloud compute instances attach-disk VM_INSTANCE_NAME \
       --disk=DISK_NAME \
       --zone=ZONE
    

    Substitua:

    • VM_INSTANCE_NAME: o nome da VM em que você quer implantar o disco criado
    • DISK_NAME: o nome do disco que você criou
    • ZONE: a zona do Compute Engine em que a VM está implantada
  3. Conecte-se à VM usando o método SSH que preferir.

  4. Monte o novo disco como um sistema de arquivos temporário:

    1. No nível do SO, encontre o grupo de volumes em que não há volumes lógicos ativos:

      vgdisplay
      

      A resposta será semelhante a:

      --- Volume group ---
      VG Name               vg_hana_data
      System ID
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  2
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                1
      Open LV               0
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               250.00 GiB
      PE Size               4.00 MiB
      Total PE              63999
      Alloc PE / Size       63999 / 250.00 GiB
      Free  PE / Size       0 / 0
      VG UUID               Fa52zl-AROR-LH2k-aG4z-LbrB-cvTz-TZhEfR
    2. Renomeie o grupo de volumes usando o UUID do VG. No exemplo anterior, é Fa52zl-AROR-LH2k-aG4z-LbrB-cvTz-TZhEfR.

      vgrename Fa52zl-AROR-LH2k-aG4z-LbrB-cvTz-TZhEfR vg_hana_data_temp
      
    3. Ative o grupo de volumes e o volume lógico:

      vgchange -a y vg_hana_data_temp
      lvchange -a y /dev/vg_hana_data_temp/data
      
    4. Ative o volume lógico em um sistema de arquivos temporário, por exemplo, /hana/data_temp:

      mkdir /hana/data_temp
      mount /dev/vg_hana_data_temp/data /hana/data_temp
      
    5. Verifique se todos os discos estão montados corretamente:

      lsblk
      

      A resposta será semelhante a:

      NAME                     MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
      sda                        8:0    0   30G  0 disk
      ├─sda1                     8:1    0    2M  0 part
      ├─sda2                     8:2    0   20M  0 part /boot/efi
      └─sda3                     8:3    0   30G  0 part /
      sdb                        8:16   0  350G  0 disk
      └─vg_hana_data_temp-data 254:5    0  250G  0 lvm  /hana/data_temp
      sdc                        8:32   0  104G  0 disk
      └─vg_hana_log-log        254:2    0  104G  0 lvm  /hana/log
      sdd                        8:48   0  208G  0 disk
      └─vg_hana_shared-shared  254:0    0  208G  0 lvm  /hana/shared
      sde                        8:64   0   32G  0 disk
      └─vg_hana_usrsap-usrsap  254:3    0   32G  0 lvm  /usr/sap
      sdf                        8:80   0  416G  0 disk
      └─vg_hanabackup-backup   254:4    0  416G  0 lvm  /hanabackup
      sdh                        8:112  0  250G  0 disk
      └─vg_hana_data-data      254:1    0  250G  0 lvm  /hana/data
  5. Como usuário SIDadm, execute a ferramenta hdbpersdiag para os volumes de dados incluídos no sistema de arquivos temporário:

    for directory in $(find /hana/data_temp/SID/mnt00001/hdb* -type d); do hdbpersdiag -c -e 'check all' $directory; done
    
  6. Verifique a saída da ferramenta hdbpersdiag.

  7. Se você planeja realizar essa verificação de consistência no futuro, deixe o novo grupo de volumes como está. Caso contrário, exclua-o.

  8. Desconectar o disco da VM Use o comando gcloud compute instances detach-disk (em inglês).

    VM_INSTANCE_NAME \
       --disk=DISK_NAME \
       --zone=ZONE
    
  9. Exclua o disco. Use o comando gcloud compute disks delete (em inglês).

    gcloud compute disks delete DISK_NAME \
       --zone=ZONE
    

Solução de problemas

Embora o agente do Google Cloud para SAP tenha sido projetado para resolver a maioria dos problemas que podem ocorrer durante operações de backup e recuperação baseadas em snapshot de disco do SAP HANA, há alguns cenários em que é necessária uma intervenção manual.

Para resolver qualquer problema com o recurso de snapshot de disco do agente do Google Cloud para SAP, consulte Problema com uma operação de backup ou recuperação baseada em snapshot de disco.

Receba ajuda

Se você precisar de ajuda para resolver um problema com o agente do Google Cloud para SAP, colete as informações de diagnóstico necessárias e entre em contato com o Cloud Customer Care. Para mais informações, consulte Informações de diagnóstico do agente do Google Cloud para SAP para SAP HANA.