Fazer backup e recuperar o SAP HANA usando snapshots de disco

Neste guia, mostramos como fazer backup e recuperar o banco de dados do SAP HANA usando o recurso de snapshot de disco do agente do Google Cloudpara SAP.

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

Antes de começar

Definir permissões

Para fazer backup e recuperar o banco de dados SAP HANA usando o recurso de snapshot de disco do agente do Google Cloudpara SAP, defina as seguintes permissões:

  • Para criar snapshots de disco, conceda as seguintes permissões do IAM:

    Disco único

    Se o volume /hana/data estiver hospedado em um Persistent Disk ou Hyperdisk, conceda as seguintes permissões à instância do Compute Engine:

    compute.disks.create
    compute.disks.createSnapshot
    compute.disks.get
    compute.disks.setLabels
    compute.disks.use
    compute.globalOperations.get
    compute.instances.attachDisk
    compute.instances.detachDisk
    compute.instances.get
    compute.snapshots.create
    compute.snapshots.get
    compute.snapshots.setLabels
    compute.snapshots.useReadOnly
    compute.zoneOperations.get
    

    Disco em faixa

    Se o volume /hana/data estiver hospedado em mais de um volume do Persistent Disk ou Hyperdisk, conceda as seguintes permissões à instância do Compute Engine:

    compute.disks.addResourcePolicies
    compute.disks.create
    compute.disks.get
    compute.disks.list
    compute.disks.removeResourcePolicies
    compute.disks.use
    compute.disks.useReadOnly
    compute.globalOperations.get
    compute.instances.attachDisk
    compute.instances.detachDisk
    compute.instances.get
    compute.instantSnapshotGroups.create
    compute.instantSnapshotGroups.delete
    compute.instantSnapshotGroups.get
    compute.instantSnapshotGroups.list
    compute.instantSnapshots.list
    compute.instantSnapshots.useReadOnly
    compute.resourcePolicies.create
    compute.resourcePolicies.use
    compute.resourcePolicies.useReadOnly
    compute.snapshots.create
    compute.snapshots.get
    compute.snapshots.list
    compute.snapshots.setLabels
    compute.snapshots.useReadOnly
    compute.zoneOperations.get
    
  • 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 fazer backup e recuperar o banco de dados SAP HANA, 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 grupo de consistência de disco

Se o volume /hana/data estiver hospedado em um disco, pule esta seção.

Se o volume /hana/data estiver hospedado em mais de um disco, será necessário criar um grupo de consistência e adicionar os discos que hospedam o volume /hana/data a esse grupo. É necessário criar o grupo de consistência na mesma região dos discos.

Para mais informações, consulte Criar um grupo de consistência.

Anote o nome do grupo de consistência. Ele é usado pelo agente ao criar o backup baseado em snapshot.

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 SAP HANA, execute o comando hanadiskbackup do agente do Google Cloudpara SAP:

    A partir da versão 3.3, os argumentos -source-disk e -source-disk-zone são opcionais para uso com o comando hanadiskbackup. Isso ocorre porque o agente pode detectar automaticamente o disco que hospeda seu diretório /hana/data. No entanto, se você especificar esses argumentos, eles vão substituir a detecção automática do agente.

    • Se você quiser usar uma chave hdbuserstore para a autenticação do SAP HANA, execute o seguinte comando:
      sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \
            -project=DESTINATION_PROJECT_ID \
            -sid=SID \
            -hdbuserstore-key=HDB_USERSTORE_KEY
    • Se você quiser usar um nome de usuário e um secret do Secret Manager para a autenticação do SAP HANA, execute o comando a seguir:
      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
    • Se você quiser usar um nome de usuário e uma senha para a autenticação do SAP HANA, execute o seguinte comando:
      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=HANA_PASSWORD

    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 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

    • HDB_USERSTORE_KEY: se você criou uma chave hdbuserstore para autenticar o usuário especificado do SAP HANA, especifique essa chave.

    • 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

    • HANA_PASSWORD: se você estiver usando uma senha de texto simples para a autenticação do SAP HANA, especifique essa senha

    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.

    Se você especificar -hdbuserstore-key, poderá pular a especificação do argumento -hana-db-user.

    -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 ou o -hdbuserstore-key. Recomendamos que você use um deles em vez de -password.

    Para a autenticação do SAP HANA, o agente usa a seguinte ordem de preferência: se especificado, o argumento -hdbuserstore-key é preferido em vez do -password, que é preferido em vez do -password-secret. Recomendamos que você especifique apenas uma opção de autenticação ao executar o comando hanadiskbackup.

    -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.

    Para a autenticação do SAP HANA, o agente usa a seguinte ordem de preferência: se especificado, o argumento -hdbuserstore-key é preferido em vez do -password, que é preferido em vez do -password-secret. Recomendamos que você especifique apenas uma opção de autenticação ao executar o comando hanadiskbackup.

    -hdbuserstore-key

    Para se conectar com segurança a um sistema SAP HANA, especifique um Proteger a chave do repositório de usuários (hdbuserstore) que você criou para esse item em todo o sistema.

    Para usar uma chave hdbuserstore para autenticação, verifique o seguinte:

    • As ferramentas SAP hdbsql e hdbuserstore estão instaladas na instância da computação que hospeda o agente.
    • A chave hdbuserstore corresponde a uma instância específica do SAP HANA. Não é possível usar chaves que contenham nomes de host de várias instâncias do SAP HANA.
    • O usuário SIDadm pode consultar o banco de dados SAP HANA usando esta chave. Aqui, SID se refere ao valor especificado para o parâmetro sid. Você pode verificar isso executando o seguinte comando como o usuário SIDadm:
      hdbsql -U HDB_USERSTORE_KEY "SELECT * FROM DUMMY"

    Esse parâmetro de configuração é compatível com a versão 3.3 do agente.

    Se você especificar -hdbuserstore-key, poderá pular a especificação dos argumentos -host, -port e -hana-db-user.

    Para a autenticação do SAP HANA, o agente usa a seguinte ordem de preferência: se especificado, o argumento -hdbuserstore-key é preferido em vez do -password, que é preferido em vez do -password-secret. Recomendamos que você especifique apenas uma opção de autenticação ao executar o comando hanadiskbackup.

    -host Opcional. Especifique o endereço IP da instância 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 a instância do SAP HANA está sendo executada.
    -abandon-prepared Opcional. Especifica se qualquer backup com base em snapshot será ignorado ou não. O valor padrão é false.
    -snapshot-name

    Opcional. Especifique o nome do snapshot de disco que você está criando. Esse argumento só é aplicável quando o volume de /hana/data é hospedado em um disco.

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

    -snapshot-description Opcional. Especifique uma descrição para o snapshot de disco. Esse argumento só é aplicável quando o volume /hana/data é hospedado em um disco.
    -snapshot-type

    Opcional. Especifique o tipo de snapshots que você quer criar para os discos que hospedam o volume /hana/data. Esse argumento é aplicável apenas quando o volume /hana/data está hospedado em mais de um disco.

    Por padrão, o agente cria snapshots padrão. Valores aceitos para esse argumento: STANDARD, ARCHIVE. Para informações sobre esses tipos de snapshots, consulte Sobre snapshots de disco padrão e de arquivamento.

    Esse argumento tem suporte a partir da versão 3.6 do agente.

    -group-snapshot-name

    Opcional. Especifique o nome do grupo de snapshots para os snapshots dos discos que hospedam o volume /hana/data.

    Por padrão, o nome do grupo de snapshots é definido usando o seguinte formato: CONSISTENCY_GROUP_NAME-YYYYMMDD-HHMMSS. Aqui, CONSISTENCY_GROUP_NAME é o nome do grupo de consistência de disco que você criou na seção Criar um grupo de consistência de disco.

    Esse argumento tem suporte a partir da versão 3.6 do agente.

    -labels Opcional. Especifique um ou mais pares de rótulo-valor que você quer associar aos snapshots do disco que você está criando. Exemplo: -labels="label1=value1,label2=value2".
    -source-disk Especifique o nome do volume Persistent Disk ou Hyperdisk que hospeda o volume /hana/data.

    A partir da versão 3.3, os argumentos -source-disk e -source-disk-zone são opcionais para uso com o comando hanadiskbackup. Isso ocorre porque o agente pode detectar automaticamente o disco que hospeda seu diretório /hana/data. No entanto, se você especificar esses argumentos, eles vão substituir a detecção automática do agente.

    -source-disk-zone Especifique a zona em que está o disco que hospeda o volume /hana/data.

    A partir da versão 3.3, os argumentos -source-disk e -source-disk-zone são opcionais para uso com o comando hanadiskbackup. Isso ocorre porque o agente pode detectar automaticamente o disco que hospeda seu diretório /hana/data. No entanto, se você especificar esses argumentos, eles vão substituir a detecção automática do agente.

    -source-disk-key-file Opcional. Se o disco que hospeda o volume /hana/data for criptografado por uma chave de criptografia envolta em RSA fornecida pelo cliente, especifique o caminho absoluto para o arquivo JSON dessa chave.

    Esse argumento tem suporte a partir da versão 3.2 do agente.

    -storage-location Opcional. Especifique a multirregião ou região do Cloud Storage em que você quer armazenar o snapshot de disco.
    -freeze-file-system

    Opcional. Especifica se o agente deve ou não congelar o sistema de arquivos do banco de dados do SAP HANA. O valor padrão é false.

    Esse argumento tem suporte a partir da versão 3.2 do agente.

    -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.
    -confirm-data-snapshot-after-create

    Opcional. Se você quiser confirmar a criação do snapshot no SAP HANA imediatamente após a criação, mas sem confirmar que ele foi enviado para o bucket do Cloud Storage especificado para o argumento -storage-location, especifique o valor TRUE.

    O valor padrão é FALSE, que faz com que o agente confirme a criação do snapshot após a conclusão das operações CREATE e UPLOAD.

    Esse argumento tem suporte a partir da versão 3.4 do agente.

Verificar os snapshots de disco

Use as seguintes opções para verificar se os snapshots de disco foram criados:

  • No console do Google Cloud, acesse a página Snapshots do Compute Engine e filtre as entradas usando o nome do disco. Se o volume /hana/data for hospedado em um disco, você também poderá filtrar usando o nome do snapshot. Se o volume /hana/data estiver hospedado em mais de um disco, também será possível filtrar usando o nome do grupo de snapshots.

    Acessar Snapshots

  • Como alternativa, você pode conferir os detalhes do snapshot de disco no seguinte arquivo de registro do agente:

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

Consulte o catálogo de backup do SAP HANA

Além de criar o backup baseado em snapshot de disco, o comando hanadiskbackup cria uma entrada para ele no catálogo de backup do SAP HANA. Confira a seguir um exemplo de consulta SQL para conferir as entradas de backup baseadas em snapshot 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_IDENTIFIER"

Esta saída inclui os seguintes valores:

  • BACKUP_ID: o ID de backup atribuído ao backup baseado em snapshot de disco no catálogo de backup do SAP HANA
  • SNAPSHOT_IDENTIFIER:
    • Para um volume /hana/data em um disco, o valor desse identificador é determinado pelo uso do argumento -snapshot-name com o comando hanadiskbackup. Se você não especificar esse argumento, o valor padrão dele será definido, que é: snapshot-SOURCE_DISK_NAME-YYYYMMDD-HHMMSS.
    • Se o volume /hana/ estiver hospedado em mais de um disco, o valor desse identificador será determinado pelo uso do argumento -group-snapshot-name com o comando hanadiskbackup. Se você não especificar esse argumento, o valor padrão dele será definido, que é CONSISTENCY_GROUP_NAME-YYYYMMDD-HHMMMSS.
  • SOURCE_DISK_NAME: esse valor é determinado pelo uso do argumento -source-disk com o comando hanadiskbackup.
  • CONSISTENCY_GROUP_NAME: esse valor é determinado pelo uso do argumento -group-snapshot-name com o comando hanadiskbackup.
  • YYYYMMDD-HHMMMSS: a data e a hora em que o snapshot foi criado.

Recuperar o banco de dados usando um backup baseado em snapshot de disco

Para recuperar o banco de dados SAP HANA usando o recurso de snapshot de disco do agenteGoogle Cloudpara 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:

    • Se o volume /hana/data estiver hospedado em um disco, execute o seguinte comando:

      sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \
      -project=SOURCE_PROJECT_ID \
      -sid=SID \
      -source-snapshot=SOURCE_SNAPSHOT_NAME \
      [-new-disk-type=NEW_DISK_TYPE \
      -new-disk-name=NEW_DISK_NAME]
    • Se o volume /hana/data estiver hospedado em mais de um disco, execute o comando abaixo:

      sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \
      -project=SOURCE_PROJECT_ID \
      -sid=SID \
      -group-snapshot-name=SOURCE_SNAPSHOT_GROUP_NAME \
      [-new-disk-type=NEW_DISK_TYPE ]

    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: se o volume /hana/data estiver hospedado em um disco, especifique o nome do snapshot de disco que você vai usar para criar o novo disco.
    • SOURCE_SNAPSHOT_GROUP_NAME: se o volume /hana/data estiver hospedado em mais de um disco, especifique o nome do grupo de snapshots que você está usando para criar os novos discos
    • NEW_DISK_TYPE: o tipo de disco que você quer criar. Para mais informações, consulte a descrição de -new-disk-type em Argumentos aceitos para restauração de disco.
    • NEW_DISK_NAME: o nome que você quer definir para o novo disco. Para mais informações, consulte a descrição de -new-disk-name em Argumentos aceitos para restauração de disco.

    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 Cloudpara SAP. Para mais informações sobre esse recurso, consulte Backup e recuperação do SAP HANA usando o Backint.
    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 Opcional. Especifique o nome do disco de origem que hospeda o volume /hana/data.

A partir da versão 3.4, os argumentos -data-disk-name e -data-disk-zone são opcionais para uso com o comando hanadiskrestore. Isso ocorre porque o agente pode detectar automaticamente o disco que hospeda o volume /hana/data. No entanto, se você especificar esses argumentos, eles vão substituir a detecção automática do agente.

-data-disk-zone Opcional. Especifique a zona em que o disco de origem que hospeda o volume /hana/data está implantado.

A partir da versão 3.4, os argumentos -data-disk-name e -data-disk-zone são opcionais para uso com o comando hanadiskrestore. Isso ocorre porque o agente pode detectar automaticamente o disco que hospeda o volume /hana/data. No entanto, se você especificar esses argumentos, eles vão substituir a detecção automática do agente.

-source-snapshot Se o volume /hana/data estiver hospedado em um disco, especifique o nome do snapshot de disco que você quer usar para fazer a recuperação.
-new-disk-name Especifique o nome que você quer definir para o novo disco. Esse argumento não é aplicável se o volume /hana/data for hospedado em mais de um disco.
-group-snapshot-name

Se o volume /hana/data estiver hospedado em mais de um disco, especifique o nome do grupo de snapshots que você quer usar para realizar a recuperação.

Esse argumento tem suporte a partir da versão 3.6 do agente.

-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.
-csek-key-file Opcional. Se você criptografou o instantâneo do disco de origem usando o argumento -source-disk-key-file com o comando hanadiskbackup, especifique o caminho absoluto para o arquivo JSON da chave de criptografia fornecida pelo cliente envolta em RSA que corresponde ao instantâneo do disco de origem. Confira abaixo um exemplo de arquivo de chave:
[
  {
    "uri": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots/SNAPSHOT_NAME",
    "key": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==",
    "key-type": "rsa-encrypted"
  }
]

Esse argumento tem suporte a partir da versão 3.2 do agente.

-new-disk-type

Opcional. Especifique o tipo de Persistent Disk ou Hyperdisk que você quer criar. Por padrão, os novos discos são do mesmo tipo dos discos 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.
-labels-on-detached-disk

Opcional. Se você estiver criando um novo disco para hospedar o diretório /hana/data recuperado, use esse argumento para especificar pares de rótulo-valor que você quer associar ao disco desconectado. Use uma vírgula para separar os rótulos. Por exemplo: -labels-on-detached-disk="label1=value1,label2=value2".

Esse argumento tem suporte a partir da versão 3.4 do agente.

-send-metrics-to-monitoring

Opcional. Especifica se a duração da restauração do snapshot será enviada ou não ao Cloud Monitoring. O valor padrão é TRUE.

Esse argumento tem suporte a partir da versão 3.4 do agente.

-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, siga estas etapas:

  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:

    • Se o volume /hana/data estiver hospedado em um disco, execute o seguinte comando:

      sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \
      -project=SOURCE_PROJECT_ID \
      -sid=SID \
      -source-snapshot=SOURCE_SNAPSHOT_NAME \
      [-new-disk-type=NEW_DISK_TYPE \
      -new-disk-name=NEW_DISK_NAME]
    • Se o volume /hana/data estiver hospedado em mais de um disco, execute o comando abaixo:

      sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \
      -project=SOURCE_PROJECT_ID \
      -sid=SID \
      -group-snapshot-name=SOURCE_SNAPSHOT_GROUP_NAME \
      [-new-disk-type=NEW_DISK_TYPE ]

    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: se o volume /hana/data estiver hospedado em um disco, especifique o nome do snapshot de disco que você vai usar para criar o novo disco.
    • SOURCE_SNAPSHOT_GROUP_NAME: se o volume /hana/data estiver hospedado em mais de um disco, especifique o nome do grupo de snapshots que você está usando para criar os novos discos
    • NEW_DISK_TYPE: o tipo de disco que você quer criar. Para mais informações, consulte a descrição de -new-disk-type em Argumentos aceitos para restauração de disco.
    • NEW_DISK_NAME: o nome que você quer definir para o novo disco. Para mais informações, consulte a descrição de -new-disk-name em Argumentos aceitos para restauração de disco.

    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 Cloudpara SAP. Para mais informações sobre esse recurso, consulte Backup e recuperação do SAP HANA usando o Backint.
    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:

    • Se o volume /hana/data estiver hospedado em um disco, execute o seguinte comando:

      sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \
      -project=SOURCE_PROJECT_ID \
      -sid=SID \
      -source-snapshot=SOURCE_SNAPSHOT_NAME \
      [-new-disk-type=NEW_DISK_TYPE \
      -new-disk-name=NEW_DISK_NAME]
    • Se o volume /hana/data estiver hospedado em mais de um disco, execute o comando abaixo:

      sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \
      -project=SOURCE_PROJECT_ID \
      -sid=SID \
      -group-snapshot-name=SOURCE_SNAPSHOT_GROUP_NAME \
      [-new-disk-type=NEW_DISK_TYPE ]

    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: se o volume /hana/data estiver hospedado em um disco, especifique o nome do snapshot de disco que você vai usar para criar o novo disco.
    • SOURCE_SNAPSHOT_GROUP_NAME: se o volume /hana/data estiver hospedado em mais de um disco, especifique o nome do grupo de snapshots que você está usando para criar os novos discos
    • NEW_DISK_TYPE: o tipo de disco que você quer criar. Para mais informações, consulte a descrição de -new-disk-type em Argumentos aceitos para restauração de disco.
    • NEW_DISK_NAME: o nome que você quer definir para o novo disco. Para mais informações, consulte a descrição de -new-disk-name em Argumentos aceitos para restauração de disco.

    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 Cloudpara SAP. Para mais informações sobre esse recurso, consulte Backup e recuperação do SAP HANA usando o Backint.
    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 recuperar 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

Esta seção descreve como validar a consistência dos dados nos snapshots 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 snapshots 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 instância do Compute Engine diferente do host do SAP HANA. Use o comando gcloud compute instances attach-disk (em inglês).

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

    Substitua:

    • COMPUTE_INSTANCE_NAME: o nome da instância de computação 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 instância de computação é implantada
  3. Conecte-se à instância de computação usando seu método SSH preferido.

  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. Desanexe o disco da instância de computação. Use o comando gcloud compute instances detach-disk (em inglês).

    COMPUTE_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 Cloudpara 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 doGoogle Cloudpara SAP, consulte Problema com uma operação de backup ou recuperação baseada em snapshot de disco.

Receber suporte

Se você precisar de ajuda para resolver um problema com o agente do Google Cloudpara 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 doGoogle Cloudpara SAP para SAP HANA.