É possível enviar backups do SAP HANA diretamente para o Cloud Storage a partir de instâncias do SAP HANA em execução no Google Cloud, na Solução Bare Metal, no local ou em outras plataformas na nuvem usando o agente do Backint do Cloud Storage certificado para SAP (agente Backint).
O agente do Backint é integrado ao SAP HANA para que seja possível armazenar e recuperar backups diretamente do Cloud Storage usando as funções nativas de backup e recuperação do SAP.
Ao usar o agente do Backint, você não precisa usar o armazenamento em disco permanente para backups.
Para instruções de instalação do agente do Backint, consulte o Guia de instalação do agente do Cloud Storage para SAP HANA.
Para mais informações sobre a certificação SAP do agente do Backint, consulte:
Arquivo de configuração do agente do Backint
Para configurar o agente do Backint, especifique parâmetros em um arquivo de texto simples.
O arquivo de configuração padrão é chamado parameters.txt
e o local padrão é
/usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs/parameters.txt
.
É possível especificar vários arquivos de configuração dando a cada arquivo um nome diferente.
Por exemplo, é possível especificar uma configuração para backups de registros em um
arquivo chamado backint-log-backups.txt
e uma configuração para backups
de dados em um arquivo chamado backint-data-backups.txt
.
Como armazenar backups nos buckets do Cloud Storage
O agente do Backint armazena os backups do SAP HANA em um bucket do Cloud Storage.
Ao criar um bucket, escolha o local e a classe de armazenamento dele.
Um local de bucket pode ser regional, birregional ou multirregional. A escolha depende da sua necessidade de restringir o local dos dados, os requisitos de latência para backups e restaurações e a necessidade de proteção contra interrupções regionais. Para mais informações, consulte Locais de bucket.
Selecione buckets birregionais ou multirregionais em regiões que são iguais ou próximas às regiões em que as instâncias do SAP HANA estão em execução.
Escolha uma classe de armazenamento com base no tempo necessário para manter os backups, a frequência com que você espera acessá-los e o custo. Para mais informações, consulte Classes de armazenamento.
Como fazer multistreaming de backups de dados com o agente do Backint
Para versões anteriores ao SAP HANA 2.0 SP05, o SAP HANA é compatível com multistreaming para
bancos de dados maiores que 128 GB. A partir do SAP HANA 2.0 SP05, esse limite agora
pode ser configurado por meio do parâmetro
do SAP HANA parallel_data_backup_backint_size_threshold
, que especifica o tamanho mínimo
do backup do banco de dados em GB para que o multistreaming seja ativado.
O multistreaming é útil para aumentar a capacidade e fazer backup de bancos de dados maiores que 5 TB, que é o tamanho máximo de um único objeto no Cloud Storage.
O número ideal de canais usados para multistreaming depende do tipo de bucket do Cloud Storage que você está usando e do ambiente em que o SAP HANA está sendo executado. Considere também a capacidade do disco de dados anexado à instância do HANA, bem como a largura de banda alocada pelo administrador para as atividades de backup.
É possível ajustar a capacidade alterando o número de fluxos ou limitando a capacidade usando o parâmetro #RATE_LIMIT_MB
em parameters.txt
, o arquivo de configuração do agente
do Backint.
Para um bucket multirregional, comece com oito canais definindo o parâmetro parallel_data_backup_backint_channels
como 8
no arquivo de configuração global.ini
do SAP HANA.
Para um bucket regional, comece com 12 canais definindo o parallel_data_backup_backint_channels
no arquivo global.ini
como 12
.
Ajuste o número de canais conforme necessário para atingir seus objetivos de desempenho de backup.
Conforme declarado na documentação do SAP HANA, cada canal extra requer um buffer de E/S
de 512 MB. Especifique o tamanho do buffer de E/S usando
o parâmetro data_backup_buffer_size
corretamente na seção de backup
do arquivo global.ini
. Para mais informações sobre o efeito do tamanho do buffer
de E/S em tempos de backup, consulte a
Nota SAP 24657261.
A partir dp SAP HANA 2.0 SP05, especificamos um valor máximo para esse parâmetro de 4 GB.
O teste no Google Cloud não oferece benefícios em aumentar o tamanho do buffer
significativamente além do padrão, mas isso pode variar de acordo com sua carga de trabalho.
Para mais informações sobre multistreaming, no Guia de administração do SAP HANA específico para sua versão do SAP HANA, consulte Backups de dados de multistream com ferramentas de backup de terceiros.
Uploads paralelos
É possível melhorar o desempenho do upload de arquivos de backup de registro ativando o recurso de upload paralelo do agente do Backint. Isso é especialmente útil para arquivos de backup de registro, porque eles não podem ser transmitidos para vários streams do SAP HANA.
Para backups de dados, é possível ajustar o número de canais de backup
do SAP HANA usando apenas o parâmetro do SAP HANA
parallel_data_backup_backint_channels
.
Quando o upload paralelo está ativado, o agente do Backint divide cada arquivo de backup individual recebido do SAP HANA em várias partes. Em seguida, ele é carregado em paralelo, o que melhora o desempenho do upload.
Como as partes são recebidas pelo Cloud Storage, elas são remontadas e armazenadas como o único arquivo original recebido pelo agente do Backint do SAP HANA. O único arquivo está sujeito ao limite de tamanho de 5 TB de objetos no Cloud Storage.
Como configurar o upload paralelo
O recurso de upload paralelo é ativado no arquivo de configuração parameters.txt
especificando o número máximo de linhas de execução de upload
paralelo no parâmetro #PARALLEL_FACTOR
.
Os parâmetros #PARALLEL_PART_SIZE_MB
,
que definem o tamanho de cada parte, e #THREADS
, que
determinam o número de linhas de execução de worker, são apenas para ajuste avançado.
Não altere essas configurações, a menos que você seja instruído a fazer isso pelo
Cloud Customer Care. Raramente os valores padrão precisam ser alterados.
Para mais informações sobre os parâmetros de upload paralelo, consulte Opções de configuração para o agente do Backint.
Restrições do upload paralelo
As seguintes restrições se aplicam ao recurso de upload paralelo:
- Se você ativar a criptografia com o parâmetro de configuração
#ENCRYPTION_KEY
ou#KMS_KEY_NAME
, não será possível usar o upload paralelo. A criptografia é incompatível com o upload paralelo. Se você especificar o parâmetro#PARALLEL_FACTOR
com um desses parâmetros de criptografia, o agente do Backint será encerrado com um status1
. - Se você ativar a compactação, não será possível usar o upload paralelo. A compactação é
incompatível com o upload paralelo. A partir da versão 1.0.22, se você especificar o parâmetro
#PARALLEL_FACTOR
e omitir o parâmetro#DISABLE_COMPRESSION
na sua configuração, o agente do Backint será encerrado com o status de1
. - Se o bucket do Cloud Storage implementar uma política de retenção, o bucket não será compatível com uploads paralelos. A política de retenção evita a remontagem das partes em um único arquivo, o que faz com que o upload falhe.
Para mais informações sobre os parâmetros de upload paralelo, consulte Opções de configuração para o agente do Backint.
Como ajustar o upload paralelo
Para backups, os uploads paralelos podem melhorar significativamente a capacidade de
backup, porque o SAP HANA não faz backups de registros de multistream. Na maioria dos casos,
especificar um #PARALLEL_FACTOR
de 16 ou menos é suficiente. Para
volumes de registros muito grandes, maximize a capacidade usando um
valor de #PARALLEL_FACTOR
alto, como 16
, e aumentando os valores dos
parâmetros log_segment_size_mb
e max_log_backup_size
do SAP HANA.
Em alguns casos, o uso de um valor #PARALLEL_FACTOR
alto pode diminuir a
capacidade geral, como pode acontecer se você também
estiver usando um número alto de canais de backup paralelo.
Para limitar a largura de banda da rede que seus backups usam, use #RATE_LIMIT_MB
para definir a quantidade máxima de largura de banda que os uploads paralelos podem usar.
Para encontrar uma boa configuração para seu ambiente, carga de trabalho e tipo de backup específicos, faça testes com configurações diferentes e meça a capacidade do backup.
Autenticação e controle de acesso para o agente do Backint
O Google Cloud usa contas de serviço para identificar programas como o agente do Backint e controlar quais recursos do Google Cloud os programas podem acessar.
Permissões necessárias do Cloud Storage
Uma conta de serviço para o agente do Backint precisa receber permissões para os recursos do Google Cloud que o agente do Backint acessa. O papel Administrador de objetos do Storage fornece permissões para listar, receber, criar e excluir objetos de buckets do Cloud Storage.
É possível definir as permissões da conta de serviço no nível do projeto ou do bucket. Se você configurá-lo no nível do projeto, concederá ao agente do Backint acesso a todos os buckets no projeto. Se você configurá-lo no nível do bucket, concederá ao agente do Backint acesso apenas a um único bucket. Para mais informações sobre as permissões de bucket do Cloud Storage, consulte:
Opções de conta de serviço para o agente do Backint
Se o SAP HANA estiver em execução em uma VM do Compute Engine, por padrão, o agente do Backint usará a conta de serviço da VM.
Se você usa a conta de serviço da VM, o agente do Backint tem as mesmas permissões no nível do projeto que todos os outros programas e processos que usam a conta do serviço da VM.
Para ter o controle de acesso mais rigoroso, crie uma conta de serviço separada para o agente do Backint e conceda à conta de serviço acesso no nível do bucket.
Se o SAP HANA não estiver em execução em uma VM do Compute Engine, você precisará criar uma conta de serviço para o agente do Backint. Crie a conta de serviço no projeto do Google Cloud que contém o bucket do Cloud Storage que o agente do Backint usará.
Ao criar uma conta de serviço para o agente do Backint, você também precisa criar uma chave de conta de serviço.
Você armazena a chave na VM do SAP HANA e especifica o caminho para a chave no
arquivo parameters.txt
. Quando o SAP HANA está sendo executado em uma VM do Compute Engine, a especificação do caminho para uma chave direciona o agente do Backint para usar a conta de serviço associada à chave em vez da conta de serviço da VM.
Se você usar uma chave de criptografia gerenciada pelo cliente que é gerada pelo Cloud Key Management Service para criptografar seus backups no Cloud Storage, será preciso conceder à conta de serviço acesso à chave de criptografia. Para mais informações, consulte Como atribuir uma chave do Cloud KMS a uma conta de serviço.
Acesso a APIs do Google Cloud e servidores de metadados
O agente do Backint requer acesso aos seguintes endereços IP e hosts do Google Cloud durante as operações de backup e recuperação:
- Para acessar o Cloud Storage:
- Versão 1.0.14 e posterior do agente:
storage.googleapis.com
- Versão 1.0.13 e anteriores:
www.googleapis.com
- Versão 1.0.14 e posterior do agente:
- Se você especificar uma conta de serviço na propriedade #SERVICE_ACCOUNT,
oauth2.googleapis.com
para autenticação. 169.254.169.254
para o servidor de metadados da instância do Compute Engine que, por padrão, resolve nomes de DNS internos.metadata.google.internal
também para metadados de instância de VM.
Se o agente do Backint e o SAP HANA estiverem em execução em uma VM do Compute Engine que não tem acesso à Internet, você precisará configurar o Acesso privado do Google para que o agente do Backint possa interagir com o Cloud Storage e, se usar uma conta de serviço dedicada, autenticar-se com o Google Cloud.
Consulte Como configurar o Acesso privado do Google para mais informações sobre esse processo.
Servidores proxy e o agente do Backint
Por padrão, o agente do Backint ignora qualquer proxy HTTP e não lê variáveis de ambiente de proxy no sistema operacional, como http_proxy
, https_proxy
ou no_proxy
.
Se você não tem alternativa ou sua organização entende as implicações de desempenho e tem a experiência necessária para auxiliar o desempenho do roteamento de backups por meio de um servidor proxy, é possível configurar o agente do Backint para usar um proxy.
As configurações de proxy do agente do Backint estão contidas no arquivo net.properties
:
/usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs/jre/conf/net.properties
Como ignorar um servidor proxy para backups e recuperações
Embora o agente do Backint ignore os servidores proxy por padrão, é possível torná-lo explícito especificando os nomes de domínio e endereços IP necessários do Google Cloud nohttp.nonProxyHosts
no parâmetro/usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs/jre/conf/net.properties
. Exemplo:
http.nonProxyHosts=localhost|127.|[::1]|.googleapis.com|169.254.169.254|metadata.google.internal
Como usar um servidor proxy para backups e recuperações
Para configurar o agente do Backint para enviar backups por meio de um servidor proxy, especifique os parâmetros do host de proxy e do número da porta no arquivo /usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs/jre/conf/net.properties
.
Em consultas nos metadados da instância de VM, o agente do Backint não pode usar um proxy. Portanto, você precisa especificar o nome de domínio e o endereço IP para os metadados da instância no parâmetro http.nonProxyHosts
.
O exemplo a seguir mostra uma configuração de proxy válida para o agente do Backint:
http.proxyHost=proxy-host http.proxyPort=proxy-port http.nonProxyHosts=localhost|127.*|[::1]|169.254.169.254|metadata.google.internal https.proxyHost=proxy-host https.proxyPort=proxy-port
Atualizações do agente do Backint
Periodicamente, o Google Cloud lança novas versões do agente do Backint e faz o download delas sem custo adicional.
Antes de atualizar o agente do Backint para uma nova versão no ambiente de produção, teste a nova versão em um ambiente de não produção.
Para atualizar o agente do Backint, o host do SAP HANA precisa ser compatível com solicitações HTTP remotas para https://www.googleapis.com/
.
Para atualizar uma instância atual do agente do Backint para uma nova versão, consulte Como atualizar o agente do Backint para uma nova versão.
Criptografia para backups
O Cloud Storage sempre criptografa os dados antes de gravá-los em disco. Para aplicar uma camada extra de criptografia, é possível fornecer suas próprias chaves para a criptografia no servidor dos backups do agente do Backint.
Você tem duas opções para fornecer suas próprias chaves com o agente do Backint:
Para usar uma chave de criptografia gerenciada pelo cliente, especifique o caminho para a chave no
parâmetro #KMS_KEY_NAME
no arquivo parameters.txt
.
Além disso, conceda à chave a VM ou a conta de serviço do agente do Backint.
Para mais informações sobre como conceder a uma conta de serviço acesso a uma chave de criptografia,
consulte Como atribuir uma chave do Cloud KMS a uma conta de serviço.
Para usar uma chave de criptografia fornecida pelo cliente, especifique o caminho para a chave no parâmetro
#ENCRYPTION_KEY
arquivo
parameters.txt
. no A chave precisa ser
uma string de chave AES-256 codificada em base64, conforme descrito em
Chaves de criptografia fornecidas pelo cliente.
Restrições de criptografia
As seguintes restrições se aplicam ao recurso de criptografia:
Se
#KMS_KEY_NAME
e#ENCRYPTION_KEY
forem especificados, o agente do Backint falhará e será encerrado com um status de 1.Se
#PARALLEL_FACTOR
for especificado com#KMS_KEY_NAME
ou#ENCRYPTION_KEY
, o agente do Backint falhará e será encerrado com um status de 1.
Referência de parâmetro de configuração
É possível especificar várias opções para o agente do Backint no arquivo de configuração parameters.txt
.
Quando você faz o download do agente do Backint pela primeira vez, o arquivo parameters.txt
contém apenas dois parâmetros:
#BUCKET
#DISABLE_COMPRESSION
Observe que #
faz parte do parâmetro, e não um indicador de comentário.
Especifique cada parâmetro em uma nova linha. Separe os parâmetros e valores com um espaço.
Os parâmetros de configuração do agente do Backint são mostrados na tabela a seguir.
Parâmetro e valor | Descrição |
---|---|
#BUCKET bucket-name |
Um parâmetro obrigatório que especifica o nome do bucket do Cloud Storage em que o agente do Backint grava e lê. O agente do Backint cria objetos de backup com a classe de armazenamento do bucket e é compatível com todas as classes de armazenamento. O agente do Backint usa a criptografia padrão do Compute Engine para criptografar dados em repouso. |
#CHUNK_SIZE_MB MB |
Parâmetro de ajuste avançado.
Controla o tamanho das solicitações HTTPS para o Cloud Storage durante as operações de backup ou restauração. O tamanho padrão do bloco é 100 MB, o que significa que um fluxo de solicitação HTTP para ou do Cloud Storage é mantido aberto até que 100 MB de dados sejam transferidos. Não modifique essa configuração, a menos que seja instruído pelo Customer Care. A configuração padrão, que equilibra a capacidade e a confiabilidade, raramente precisa ser alterada. Como o agente do Backint tenta realizar solicitações HTTP com falha várias vezes antes de falhar em uma operação, tamanhos de bloco menores resultam em menos dados que precisam ser retransmitidos se uma solicitação falhar. Tamanhos maiores de blocos podem melhorar a capacidade, mas exigem mais uso de memória e mais tempo para reenviar dados em caso de falha na solicitação. |
#DISABLE_COMPRESSION |
Parâmetro opcional que desativa a compactação padrão quando o
agente do Backint grava backups no bucket
do Cloud Storage.
É recomendável especificar Independentemente dessa configuração, o agente do Backint é compatível com arquivos de backup compactados ou descompactados durante uma operação de restauração. |
#ENCRYPTION_KEY path/to/key/file |
Especifica um caminho para uma chave de criptografia fornecida pelo cliente que o Cloud Storage usa para criptografar backups. O caminho precisa ser especificado como um caminho totalmente qualificado para uma chave AES-256 codificada em base64.
Não é possível especificar #ENCRYPTION_KEY com #KMS_KEY_NAME ou #PARALLEL_FACTOR. Para mais informações sobre como usar suas próprias chaves de criptografia no Google Cloud, consulte Chaves de criptografia fornecidas pelo cliente. |
#KMS_KEY_NAME path/to/key/file |
Especifica um caminho para uma chave de criptografia gerenciada pelo cliente que é gerada pelo Cloud Key Management Service. O Cloud Storage usa essa chave para criptografar backups.
Se o SAP HANA estiver em execução em uma VM do Compute Engine, a chave precisará ser acessível para a VM. Se o SAP HANA não estiver em execução no Google Cloud, a chave do Cloud KMS precisará ser vinculada à conta de serviço do agente do Backint. Consulte mais informações em Contas de serviço. Especifique o caminho usando o seguinte formato: Em que:
Não é possível especificar #KMS_KEY_NAME com #ENCRYPTION_KEY ou #PARALLEL_FACTOR. Para mais informações sobre como gerenciar suas próprias chaves de criptografia no Google Cloud, consulte Chaves de criptografia gerenciadas pelo cliente |
#MAX_GCS_RETRY integer |
Define o número máximo de vezes que o agente do Backint repete uma tentativa de leitura e gravação no Cloud Storage. O padrão é 5, que é o valor recomendado. |
#PARALLEL_FACTOR integer |
Parâmetro opcional que ativa o upload paralelo e define o número máximo de uploads paralelos. O valor "1" desativa os uploads paralelos. O padrão é "1". Não ative o upload paralelo se:
|
#PARALLEL_PART_SIZE_MB integer |
Parâmetro de ajuste avançado.
Define o tamanho, em MB, de cada parte que é carregada em paralelo. O padrão é 128 MB. Não modifique essa configuração, a menos que seja instruído pelo Customer Care. Raramente, é necessário alterar a configuração padrão. |
#RATE_LIMIT_MB integer |
Parâmetro opcional que define um limite superior na largura de banda de saída para o Compute Engine durante operações de backup ou restauração. Por padrão, o Google Cloud não limita a largura de banda da rede para o agente do Backint. Quando definida, a capacidade pode variar, mas não excederá o limite especificado. |
#SERVICE_ACCOUNT path/to/key/file |
Parâmetro opcional que especifica o caminho totalmente qualificado para a chave da conta de serviço do Google Cloud codificada em JSON quando a autenticação padrão do Compute Engine não é usada. A especificação de #SERVICE_ACCOUNT direciona o agente do Backint para usar a chave ao autenticar no serviço do Cloud Storage.
A autenticação padrão do Compute Engine é recomendada. |
#THREADS integer |
Parâmetro de ajuste avançado.
Define o número de linhas de execução de worker. O padrão é o número de processadores na máquina. Não modifique essa configuração, a menos que seja instruído pelo Customer Care. Raramente, é necessário alterar a configuração padrão. |
#READ_IDLE_TIMEOUT integer |
Parâmetro de ajuste avançado.
Define o tempo máximo em milissegundos que o agente do Backint vai aguardar para abrir o arquivo de backup. O padrão é 1000. Não modifique essa configuração, a menos que seja instruído pelo Customer Care. Raramente, é necessário alterar a configuração padrão. |
#HTTP_READ_TIMEOUT integer |
Parâmetro de ajuste avançado.
Define o tempo limite em milissegundos para ler as respostas das solicitações da API Cloud Storage. O padrão é -1; sem tempo limite. Não modifique essa configuração, a menos que seja instruído pelo Customer Care. Raramente, é necessário alterar a configuração padrão. |
Geração de registros para o agente do Backint
Além dos registros mantidos pelo SAP HANA em backup.log
, o agente do Backint grava eventos operacionais e de erro de comunicação nos arquivos de registro no subdiretório logs
em /usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs
.
Quando o tamanho de um arquivo de registro atinge 10 MB, o agente do Backint faz a rotação dos arquivos de registro.
Se necessário, edite a configuração de geração de registros do agente do Backint em /usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs/logging.properties
.
O agente do Backint também é compatível com o Cloud Logging. Para ativar o Cloud Logging, consulte o Guia de instalação do agente do Cloud Storage para SAP HANA.
Como usar o agente do Backint nas implantações de alta disponibilidade do SAP HANA
Em um cluster de alta disponibilidade do SAP HANA, é preciso instalar o agente do Backint em cada nó do cluster.
Use a mesma configuração do agente do Backint com as mesmas especificações de bucket do Cloud Storage para cada instância do SAP HANA no cluster de alta disponibilidade. É possível usar as mesmas especificações de bucket porque, durante as operações normais, somente a instância ativa do SAP HANA em uma configuração de alta disponibilidade grava backups no Cloud Storage. O sistema secundário está no modo de replicação. Isso é válido para backups de dados, registros e catálogos.
Além disso, o software de clustering de aplicativos, como o Pacemaker, impede cenários de divisão dupla, em que mais de um sistema SAP HANA em um cluster acha que é a instância principal.
No entanto, durante as atividades de manutenção, quando o clustering pode ser desativado, se o banco de dados em espera for removido da replicação e on-line novamente, será necessário garantir que os backups sejam acionados somente no banco de dados primário.
Como o agente do Backint não sabe qual sistema SAP HANA é atualmente o sistema ativo e não tem programação ou acionamento de mecanismos, é necessário gerenciar os acionadores de agendamento e backup usando mecanismos SAP, como o DB13 da transação SAP ABAP
Os aplicativos SAP ABAP se conectam ao cluster de alta disponibilidade por meio do IP virtual, para que o acionador seja sempre encaminhado para a instância ativa do SAP HANA.
Se o acionador de backup for definido localmente em cada servidor, por exemplo, como um script de sistema operacional local e os sistemas principal e secundário acharem que eles são o sistema ativo, ambos poderão tentar gravar backups no bucket de armazenamento.
Como usar o agente do Backint nas implantações de DR do SAP HANA
Em uma configuração de recuperação de desastres, em que uma instância de recuperação do SAP HANA em outra região do Google Cloud é sincronizada usando a replicação assíncrona do sistema SAP HANA, especifique um bucket diferente para a instância de recuperação em relação ao usado pelo sistema principal do SAP HANA.
Enquanto o sistema de DR geralmente está no modo de replicação e, portanto, não pode executar um backup, durante a execução de testes de recuperação de desastres regulares, a instância de recuperação é colocada on-line e pode acionar backups. Caso isso ocorra, e o sistema de recuperação não usar um bucket separado, os backups poderão substituir os dados do banco de dados primário.
No caso de um desastre real que exija a recuperação de um backup para sua região de DR, é possível atualizar a configuração do agente do Backint para fazer referência ao bucket multirregional que seu sistema de HA principal usa.
Como usar o agente do Backint em sistemas de escalonamento horizontal do SAP HANA
Nos sistemas de escalonamento horizontal do SAP HANA, é necessário instalar o agente do Backint em cada nó do sistema.
Para simplificar o gerenciamento do arquivo de configuração parameters.txt
e, se você estiver usando uma, a chave da conta de serviço do agente do Backint, coloque esses arquivos em um diretório NFS compartilhado.