Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo fornece dicas que podem ser úteis quando você usa o AzAcSnap.
Configurações de substituição global para controlar o comportamento do azacsnap
AzAcSnap 8 introduziu um novo arquivo de configurações globais (.azacsnaprc) que deve estar localizado no mesmo diretório (trabalho atual) em que o azacsnap é executado. O nome do arquivo é .azacsnaprc e usando o caractere ponto '.' como o início do nome do arquivo torna-o oculto para listagens de diretório padrão. O arquivo permite que as configurações globais que controlam o comportamento do AzAcSnap sejam definidas. O formato é uma entrada por linha com uma variável de personalização suportada e um novo valor de substituição.
As configurações, que podem ser controladas adicionando/editando o arquivo de configurações de substituição global ou definindo-as como variáveis de ambiente são:
AZURE_ENVIRONMENT (do AzAcSnap 11b) para personalizar a conectividade ao endpoint de gestão correto. Os valores podem ser: AzurePublicCloud, AzureGovernment, AzureChina, AzureGermany - o padrão é 'AzurePublicCloud'. Por exemplo, para configurar o AzAcSnap de modo a garantir que todas as chamadas de gestão vão ao Azure Management Endpoint para o US Government Cloud, adicione o seguinte ao
.azacsnaprcficheiro:AZURE_ENVIRONMENT=AzureGovernment
Observação
AZURE_ENVIRONMENTaplica-se apenas ao AzAcSnap 11b (ou posterior).AZURE_MANAGEMENT_ENDPOINT (apenas para AzAcSnap 9a, 10, 10a) para personalizar a localização do Endpoint de Gestão Azure para onde o AzAcSnap faz chamadas à API REST do Azure foi introduzido no AzAcSnap 9a. Os valores devem ser caminhos de URL e o valor padrão = 'https://management.azure.com'. Por exemplo, para configurar o AzAcSnap para garantir que todas as chamadas de gestão vão ao Azure Management Endpoint para a US Government Cloud (ref: Azure Government Guidance para programadores), adicione o seguinte ao
.azacsnaprcficheiro:AZURE_MANAGEMENT_ENDPOINT=https://management.usgovcloudapi.net
Observação
AZURE_MANAGEMENT_ENDPOINTAplica-se apenas ao AzAcSnap 9a, 10, 10a, não defina isto para AzAcSnap 11 ou posteriores.EXTERNAL_CMD_TIMEOUT_SECS personaliza o tempo limite para comandos de shell externos. Os valores devem ser inteiros e o valor padrão = 300. Por exemplo, para definir o timeout de comando externo para 10 minutos (600 segundos), adicione o seguinte ao
.azacsnaprcficheiro:EXTERNAL_CMD_TIMEOUT_SECS=600
Observação
A partir do AzAcSnap 11, o
EXTERNAL_CMD_TIMEOUT_SECSúnico se aplica aos comandos do banco de dados DB2.MAINLOG_LOCATION que personaliza o local do arquivo de saída "main-log", que é chamado
azacsnap.loge foi introduzido no AzAcSnap 8. Os valores devem ser caminhos absolutos e o valor padrão = '.' (que é o diretório de trabalho atual). Por exemplo, para garantir que o ficheiro de saída "main-log" vá para/home/azacsnap/bin/logs, adicione o seguinte ao ficheiro.azacsnaprc.MAINLOG_LOCATION=/home/azacsnap/bin/logs
Observação
A partir do AzAcSnap 9a, todos esses valores podem ser definidos como variáveis de ambiente de linha de comando também, ou em vez de, o .azacsnaprc arquivo. Por exemplo, no Linux o AZURE_MANAGEMENT_ENDPOINT pode ser definido com export AZURE_MANAGEMENT_ENDPOINT=https://management.usgovcloudapi.net antes de executar AzAcSnap.
Análise de main-log
AzAcSnap 8 introduziu um novo "main-log" para fornecer uma análise mais simples de execuções do AzAcSnap. A inspiração para esse arquivo é o catálogo de backup do SAP HANA, que mostra quando o AzAcSnap foi iniciado, quanto tempo levou e qual é o nome do snapshot. Com o AzAcSnap, essa ideia é levada mais longe para incluir informações para cada um dos comandos do AzAcSnap, especificamente as -c opções, e o arquivo tem os seguintes cabeçalhos:
DATE_TIME,OPERATION_NAME,STATUS,SID,DATABASE_TYPE,DURATION,SNAPSHOT_NAME,AZACSNAP_VERSION,AZACSNAP_CONFIG_FILE,VOLUME
Quando AzAcSnap é executado, ele acrescenta ao log as informações apropriadas, dependendo do -c comando usado, exemplos de saída são os seguintes:
2023-03-29T16:10:57.8643546+13:00,about,started,,,,,8,azacsnap.json,
2023-03-29T16:10:57.8782148+13:00,about,SUCCESS,,,0:00:00.0258013,,8,azacsnap.json,
2023-03-29T16:11:55.7276719+13:00,backup,started,PR1,Hana,,pr1_hourly__F47B181A117,8,PR1.json,(data)HANADATA_P;(data)HANASHARED_P;(data)VGvol01;
2023-03-29T16:13:03.3774633+13:00,backup,SUCCESS,PR1,Hana,0:01:07.7558663,pr1_hourly__F47B181A117,8,PR1.json,(data)HANADATA_P;(data)HANASHARED_P;(data)VGvol01;
2023-03-29T16:13:30.1312963+13:00,details,started,PR1,Hana,,,8,PR1.json,(data)HANADATA_P;(data)HANASHARED_P;(data)VGvol01;(other)HANALOGBACKUP_P;
2023-03-29T16:13:33.1806098+13:00,details,SUCCESS,PR1,Hana,0:00:03.1380686,,8,PR1.json,(data)HANADATA_P;(data)HANASHARED_P;(data)VGvol01;(other)HANALOGBACKUP_P;
Esse formato torna o arquivo analisável com os comandos watchdo Linux , grep, head, tail, e column para obter atualizações contínuas dos backups do AzAcSnap. Um exemplo de combinação desses comandos em um único shell script para monitorar o AzAcSnap é o seguinte:
#!/bin/bash
#
# mainlog-watcher.sh
# Monitor execution of AzAcSnap backup commands
#
# These values can be modified as appropriate.
# Mainlog header fields:
# 1. DATE_TIME,
# 2. OPERATION_NAME,
# 3. STATUS,
# 4. SID,
# 5. DATABASE_TYPE,
# 6. DURATION,
# 7. SNAPSHOT_NAME,
# 8. AZACSNAP_VERSION,
# 9. AZACSNAP_CONFIG_FILE,
# 10. VOLUME
FIELDS_TO_INCLUDE="1,2,3,5,4,6,7"
SCREEN_REFRESH_SECS=2
#
# Use AzAcSnap global settings file (.azacsnaprc) if available,
# otherwise use the default location of the current working directory.
AZACSNAP_RC=".azacsnaprc"
if [ -f ${AZACSNAP_RC} ]; then
source ${AZACSNAP_RC} 2> /dev/null
else
MAINLOG_LOCATION="."
fi
cd ${MAINLOG_LOCATION}
echo "Changing current working directory to ${MAINLOG_LOCATION}"
#
# Default MAINLOG filename.
HOSTNAME=$(hostname)
MAINLOG_FILENAME="azacsnap.log"
#
# High-level explanation of how commands used.
# `watch` - continuously monitoring the command output.
# `grep` - filter only backup runs.
# `head` and `tail` - add/remove column headers.
# `sed` to remove millisecs from date.
# `awk` format output for `column`.
# `column` - provide pretty output.
FIELDS_FOR_AWK=$(echo "${FIELDS_TO_INCLUDE}" | sed 's/^/\\\$/g' | sed 's/,/,\\\$/g')
PRINTOUT="{OFS=\\\",\\\";print ${FIELDS_FOR_AWK}}"
#
echo -n "Parsing '${MAINLOG_FILENAME}' for field #s ${FIELDS_TO_INCLUDE} = "
bash -c "cat ${MAINLOG_FILENAME} | grep -e \"DATE\" | head -n1 - | awk -F\",\" \"${PRINTOUT}\" "
#
watch -t -n ${SCREEN_REFRESH_SECS} \
"\
echo -n \"Monitoring AzAcSnap on '${HOSTNAME}' @ \" ; \
date ; \
echo ; \
cat ${MAINLOG_FILENAME} \
| grep -e \"DATE\" -e \",backup,\" \
| ( sleep 1; head -n1 - ; sleep 1; tail -n+2 - | tail -n20 \
| sed 's/\(:[0-9][0-9]\)\.[0-9]\{7\}/\1/' ; sleep 1 ) \
| awk -F\",\" \"${PRINTOUT}\" \
| column -s\",\" -t \
"
exit 0
Produz a seguinte saída atualizada a cada dois segundos.
Monitoring AzAcSnap on 'azacsnap' @ Thu Sep 21 11:27:40 NZST 2023
DATE_TIME OPERATION_NAME STATUS DATABASE_TYPE SID DURATION SNAPSHOT_NAME
2023-09-21T07:00:02+12:00 backup started Oracle ORATEST1 all-volumes__F6B07A2D77A
2023-09-21T07:02:10+12:00 backup SUCCESS Oracle ORATEST1 0:02:08.0338537 all-volumes__F6B07A2D77A
2023-09-21T08:00:03+12:00 backup started Oracle ORATEST1 all-volumes__F6B09C83210
2023-09-21T08:02:12+12:00 backup SUCCESS Oracle ORATEST1 0:02:09.9954439 all-volumes__F6B09C83210
2023-09-21T09:00:03+12:00 backup started Oracle ORATEST1 all-volumes__F6B0BED814B
2023-09-21T09:00:03+12:00 backup started Hana PR1 pr1_hourly__F6B0BED817F
2023-09-21T09:01:10+12:00 backup SUCCESS Hana PR1 0:01:07.8575664 pr1_hourly__F6B0BED817F
2023-09-21T09:02:12+12:00 backup SUCCESS Oracle ORATEST1 0:02:09.4572157 all-volumes__F6B0BED814B
Noções básicas sobre o sufixo do nome do instantâneo
O nome do instantâneo AzAcSnap tem um sufixo gerado especificamente para evitar colisões de nomes e garantir nomes de instantâneos exclusivos. O sufixo baseia-se no tempo em que o AzAcSnap é executado para criar o instantâneo até o dez milésimo de segundo mais próximo, que é convertido para hexadecimal a fim de minimizar o comprimento do nome do instantâneo. O seguinte exemplo de script shell pode ser usado para converter o sufixo hexadecimal para o momento em que o nome do snapshot foi gerado.
#!/bin/sh
# hex-to-datetime.sh
# Prompt for hex number if not provided
if [ -z "$1" ]; then
echo "Type a hex number:"
read hex_num
else
hex_num="$1"
fi
# Convert hex to decimal
dec_num=$(echo "ibase=16; $hex_num" | bc)
printf "The decimal value of %s = %d\n" "$hex_num" "$dec_num"
# Determine how many digits to shift (if needed)
len_decnum=$(echo "$dec_num" | wc -c)
len_decnum=$((len_decnum - 1)) # Remove newline
# If the decimal number is longer than 10 digits, scale it down
if [ "$len_decnum" -gt 10 ]; then
num_of_zeros=$((len_decnum - 10))
divide_by="1$(printf "%0${num_of_zeros}d" 0)"
echo "Divide $dec_num / $divide_by"
dec_num_seconds=$(echo "$dec_num / $divide_by" | bc)
else
dec_num_seconds="$dec_num"
fi
# Convert to human-readable date
date --date="@$dec_num_seconds"
Ele pode ser executado para converter o sufixo no exemplo a seguir.
$ hex-to-datetime.sh FFF1C5E5CE8
The decimal value of FFF1C5E5CE8 = 17588367023336
Divide 17588367023336 / 10000
Thu Sep 25 21:45:02 UTC 2025
Limitar permissões da entidade de serviço
Pode ser necessário limitar o escopo da entidade de serviço AzAcSnap. Consulte a documentação do Controle de Acesso Baseado em Função do Azure para obter mais detalhes sobre o gerenciamento de acesso refinado dos recursos do Azure.
O exemplo de CLI do Azure a seguir fornece uma definição de função com as ações mínimas necessárias para que o AzAcSnap funcione.
az role definition create --role-definition '{ \
"Name": "Azure Application Consistent Snapshot tool", \
"IsCustom": "true", \
"Description": "Perform snapshots on ANF volumes.", \
"Actions": [ \
"Microsoft.NetApp/*/read", \
"Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots/write", \
"Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots/delete" \
], \
"NotActions": [], \
"DataActions": [], \
"NotDataActions": [], \
"AssignableScopes": ["/subscriptions/<insert your subscription id>"] \
}'
Para que as opções de restauração funcionem com êxito, a entidade de serviço AzAcSnap também precisa ser capaz de criar volumes. Nesse caso, a definição de função precisa de uma cláusula "Actions" extra adicionada, portanto, a entidade de serviço completa deve se parecer com o exemplo a seguir.
az role definition create --role-definition '{ \
"Name": "Azure Application Consistent Snapshot tool", \
"IsCustom": "true", \
"Description": "Perform snapshots and restores on ANF volumes.", \
"Actions": [ \
"Microsoft.NetApp/*/read", \
"Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots/write", \
"Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots/delete", \
"Microsoft.NetApp/netAppAccounts/capacityPools/volumes/write" \
], \
"NotActions": [], \
"DataActions": [], \
"NotDataActions": [], \
"AssignableScopes": ["/subscriptions/<insert your subscription id>"] \
}'
Tire instantâneos manualmente
Antes de executar qualquer comando de backup (azacsnap -c backup), verifique a configuração executando os comandos de teste e verifique se eles são executados com êxito. A execução correta desses testes comprovados azacsnap pode se comunicar com o banco de dados SAP HANA instalado e o sistema de armazenamento subjacente do SAP HANA no Azure Large Instance ou no sistema Azure NetApp Files .
azacsnap -c test --test hanaazacsnap -c test --test storage
Em seguida, para fazer um backup manual de instantâneo do banco de dados, execute o seguinte comando:
azacsnap -c backup --volume data --prefix hana_TEST --retention=1
Configurar backup automático de snapshot
É prática comum em sistemas Unix/Linux usar cron para automatizar a execução de comandos em um sistema. A prática padrão para as ferramentas de snapshot é configurar o crontab.
Segue-se um exemplo de um crontab para o utilizador azacsnap automatizar instantâneos.
MAILTO=""
# =============== TEST snapshot schedule ===============
# Data Volume Snapshots - taken every hour.
@hourly (. /home/azacsnap/.profile ; cd /home/azacsnap/bin ; azacsnap -c backup --volume data --prefix hana_TEST --retention=9)
# Other Volume Snapshots - taken every 5 minutes, excluding the top of the hour when hana snapshots taken
5,10,15,20,25,30,35,40,45,50,55 * * * * (. /home/azacsnap/.profile ; cd /home/azacsnap/bin ; azacsnap -c backup --volume other --prefix logs_TEST --retention=9)
# Other Volume Snapshots - using an alternate config file to snapshot the boot volume daily.
@daily (. /home/azacsnap/.profile ; cd /home/azacsnap/bin ; azacsnap -c backup --volume other --prefix DailyBootVol --retention=7 --configfile boot-vol.json)
Explicação do exemplo de saída crontab.
-
MAILTO="": por ter um valor vazio para MAILTO cron não tentará enviar um e-mail para o usuário Linux local ao executar a entrada crontab. - As versões abreviadas de tempo para entradas crontab são autoexplicativas:
-
@monthly= Executar uma vez por mês, ou seja, "0 0 1 * *". -
@weekly= Executar uma vez por semana, ou seja, "0 0 * * 0". -
@daily= Executar uma vez por dia, ou seja, "0 0 * * *". -
@hourly= Executar uma vez por hora, ou seja, "0 * * * *".
-
- As cinco primeiras colunas são usadas para designar tempos. Consulte os seguintes exemplos de coluna:
-
0,15,30,45: A cada 15 minutos -
0-23: A cada hora -
*:Todos os dias -
*: Todos os meses -
*: Todos os dias da semana
-
- Linha de comando a ser executada entre colchetes "()"
-
. /home/azacsnap/.profile= puxe o .profile do usuário para configurar seu ambiente, incluindo $PATH, etc. -
cd /home/azacsnap/bin= altere o diretório de execução para o local "/home/azacsnap/bin" onde estão os arquivos de configuração. -
azacsnap -c .....= o comando azacsnap completo a ser executado, incluindo todas as opções.
-
Para obter mais informações sobre cron e o formato do arquivo crontab, consulte cron.
Observação
Os usuários são responsáveis por monitorar os trabalhos cron para garantir que os snapshots estejam sendo gerados com sucesso.
Gerenciar arquivos de log do AzAcSnap
AzAcSnap grava a saída de sua operação em arquivos de log para ajudar com a depuração e validar a operação correta. Esses arquivos de log continuam a crescer, a menos que sejam gerenciados ativamente. Felizmente, os sistemas baseados em UNIX têm uma ferramenta para gerenciar e arquivar arquivos de log chamada logrotate.
A saída a seguir fornece um exemplo de configuração para logrotate. Esta configuração mantém um máximo de 31 logs, aproximadamente um mês. Quando os arquivos de log são maiores que 10k, ele os gira renomeando com um número adicionado ao nome do arquivo e os compacta.
# azacsnap logrotate configuration file
compress
~/bin/azacsnap*.log {
rotate 31
size 10k
}
Depois que o logrotate.conf arquivo é criado, o logrotate comando deve ser executado regularmente para arquivar os arquivos de log do AzAcSnap de acordo. A automatização do logrotate comando pode ser feita usando cron. A saída a seguir é uma linha do crontab do usuário azacsnap, este exemplo executa logrotate diariamente usando o arquivo ~/logrotate.confde configuração .
@daily /usr/sbin/logrotate -s ~/logrotate.state ~/logrotate.conf >> ~/logrotate.log
Observação
No exemplo acima, o arquivo logrotate.conf está no diretório home (~) do usuário.
Após vários dias, os arquivos de log azacsnap devem ser semelhantes à seguinte listagem de diretórios.
ls -ltra ~/bin/logs
-rw-r--r-- 1 azacsnap users 127431 Mar 14 23:56 azacsnap-backup-azacsnap.log.6.gz
-rw-r--r-- 1 azacsnap users 128379 Mar 15 23:56 azacsnap-backup-azacsnap.log.5.gz
-rw-r--r-- 1 azacsnap users 129272 Mar 16 23:56 azacsnap-backup-azacsnap.log.4.gz
-rw-r--r-- 1 azacsnap users 128010 Mar 17 23:56 azacsnap-backup-azacsnap.log.3.gz
-rw-r--r-- 1 azacsnap users 128947 Mar 18 23:56 azacsnap-backup-azacsnap.log.2.gz
-rw-r--r-- 1 azacsnap users 128971 Mar 19 23:56 azacsnap-backup-azacsnap.log.1.gz
-rw-r--r-- 1 azacsnap users 167921 Mar 20 01:21 azacsnap-backup-azacsnap.log
Monitore os instantâneos
As seguintes condições devem ser monitorizadas para garantir um sistema saudável:
- Espaço disponível em disco. Os snapshots consomem lentamente espaço em disco com base na taxa de alteração no nível do bloco, pois a manutenção de blocos de disco mais antigos é retida no snapshot.
- Para ajudar a automatizar o gerenciamento de espaço em disco, use as
--retentionopções e--trimpara limpar automaticamente os instantâneos antigos e os arquivos de log do banco de dados.
- Para ajudar a automatizar o gerenciamento de espaço em disco, use as
- Execução bem-sucedida das ferramentas de snapshot
- Verifique o
*.resultarquivo para o sucesso ou falha da última execução doazacsnap. - Verifique
/var/log/messagesa saída doazacsnapcomando.
- Verifique o
- Consistência dos snapshots restaurando-os para outro sistema periodicamente.
Observação
Para listar detalhes do instantâneo, execute o comando azacsnap -c details.
Excluir um instantâneo
Para excluir um instantâneo, use o comando azacsnap -c delete. Não é possível excluir instantâneos do nível do sistema operacional. Você deve usar o comando correto (azacsnap -c delete) para excluir os instantâneos de armazenamento.
Important
Esteja atento ao excluir um instantâneo. Uma vez excluído, é IMPOSSÍVEL recuperar os instantâneos excluídos.
Restaurar um instantâneo
Um instantâneo de volume de armazenamento pode ser restaurado para um novo volume (-c restore --restore snaptovol). Para a Instância Grande do Azure, o volume pode ser revertido para um instantâneo (-c restore --restore revertvolume).
Observação
Não há nenhum comando de recuperação de banco de dados fornecido.
Um snapshot pode ser copiado de volta para a área de dados do SAP HANA, mas o SAP HANA não deve estar em execução quando uma cópia é feita (cp /hana/data/H80/mnt00001/.snapshot/hana_hourly.2020-06-17T113043.1586971Z/*).
Para a Instância Grande do Azure, você pode entrar em contato com a equipe de operações da Microsoft abrindo uma solicitação de serviço para restaurar um instantâneo desejado a partir dos instantâneos disponíveis existentes. Você pode abrir uma solicitação de serviço por meio do portal do Azure.
Se você decidir executar o failover de recuperação de desastres, o azacsnap -c restore --restore revertvolume comando no site de recuperação de desastres (DR) disponibilizará automaticamente os snapshots de volume ( e /hana/data) mais recentes/hana/logbackups para permitir uma recuperação do SAP HANA. Use este comando com cuidado, pois ele interrompe a replicação entre os locais de produção e de DR.
Configurar instantâneos apenas para volumes de 'inicialização'
Important
Esta operação aplica-se apenas à Instância Grande do Azure.
Em alguns casos, os clientes já têm ferramentas para proteger o SAP HANA e só querem configurar snapshots de volume de 'inicialização'. Nesse caso, apenas as etapas a seguir precisam ser concluídas.
Conclua as etapas 1 a 4 dos pré-requisitos para a instalação.
Habilite a comunicação com o armazenamento.
Baixe e execute o instalador para instalar as ferramentas de snapshot.
Configuração completa de ferramentas de snapshot.
Obtenha a lista de volumes a serem adicionados ao arquivo de configuração azacsnap, neste exemplo, o Nome de Usuário de Armazenamento é
cl25h50backupe o Endereço IP de Armazenamento é10.1.1.10ssh cl25h50backup@10.1.1.10 "volume show -volume *boot*"Last login time: 7/20/2021 23:54:03 Vserver Volume Aggregate State Type Size Available Used% --------- ------------ ------------ ---------- ---- ---------- ---------- ----- ams07-a700s-saphan-1-01v250-client25-nprod t250_sles_boot_sollabams07v51_vol aggr_n01_ssd online RW 150GB 57.24GB 61% ams07-a700s-saphan-1-01v250-client25-nprod t250_sles_boot_sollabams07v52_vol aggr_n01_ssd online RW 150GB 81.06GB 45% ams07-a700s-saphan-1-01v250-client25-nprod t250_sles_boot_sollabams07v53_vol aggr_n01_ssd online RW 150GB 79.56GB 46% 3 entries were displayed.Observação
Neste exemplo, esse host faz parte de um sistema de Scale-Out de três nós e todos os 3 volumes de inicialização podem ser vistos a partir desse host. Essa configuração significa que todos os três volumes de inicialização podem ser instantâneos desse host, e todos os três devem ser adicionados ao arquivo de configuração na próxima etapa.
Crie um novo arquivo de configuração da seguinte maneira. Os detalhes do volume de inicialização devem estar na sub-rotina OtherVolume:
azacsnap -c configure --configuration new --configfile BootVolume.jsonBuilding new config file Add comment to config file (blank entry to exit adding comments): Boot only config file. Add comment to config file (blank entry to exit adding comments): Add database to config? (y/n) [n]: y HANA SID (for example, H80): X HANA Instance Number (for example, 00): X HANA HDB User Store Key (for example, `hdbuserstore List`): X HANA Server's Address (hostname or IP address): X Add ANF Storage to database section? (y/n) [n]: Add HLI Storage to database section? (y/n) [n]: y Add DATA Volume to HLI Storage section of Database section? (y/n) [n]: Add OTHER Volume to HLI Storage section of Database section? (y/n) [n]: y Storage User Name (for example, clbackup25): cl25h50backup Storage IP Address (for example, 192.168.1.30): 10.1.1.10 Storage Volume Name (for example, hana_data_soldub41_t250_vol): t250_sles_boot_sollabams07v51_vol Add OTHER Volume to HLI Storage section of Database section? (y/n) [n]: y Storage User Name (for example, clbackup25): cl25h50backup Storage IP Address (for example, 192.168.1.30): 10.1.1.10 Storage Volume Name (for example, hana_data_soldub41_t250_vol): t250_sles_boot_sollabams07v52_vol Add OTHER Volume to HLI Storage section of Database section? (y/n) [n]: y Storage User Name (for example, clbackup25): cl25h50backup Storage IP Address (for example, 192.168.1.30): 10.1.1.10 Storage Volume Name (for example, hana_data_soldub41_t250_vol): t250_sles_boot_sollabams07v53_vol Add OTHER Volume to HLI Storage section of Database section? (y/n) [n]: Add HLI Storage to database section? (y/n) [n]: Add database to config? (y/n) [n]: Editing configuration complete, writing output to 'BootVolume.json'.Verifique o arquivo de configuração. Consulte o seguinte exemplo:
Use
cato comando para exibir o conteúdo do arquivo de configuração:cat BootVolume.json{ "version": "5.0", "logPath": "./logs", "securityPath": "./security", "comments": [ "Boot only config file." ], "database": [ { "hana": { "serverAddress": "X", "sid": "X", "instanceNumber": "X", "hdbUserStoreName": "X", "savePointAbortWaitSeconds": 600, "hliStorage": [ { "dataVolume": [], "otherVolume": [ { "backupName": "cl25h50backup", "ipAddress": "10.1.1.10", "volume": "t250_sles_boot_sollabams07v51_vol" }, { "backupName": "cl25h50backup", "ipAddress": "10.1.1.10", "volume": "t250_sles_boot_sollabams07v52_vol" }, { "backupName": "cl25h50backup", "ipAddress": "10.1.1.10", "volume": "t250_sles_boot_sollabams07v53_vol" } ] } ], "anfStorage": [] } } ] }Testar um backup de volume de inicialização
azacsnap -c backup --volume other --prefix TestBootVolume --retention 1 --configfile BootVolume.jsonVerifique se o snapshot foi criado listando os snapshots usando a
-c detailsopção. Observe a--snapshotfilteradição da opção para limitar a lista de instantâneos retornada.azacsnap -c details --snapshotfilter TestBootVolume --configfile BootVolume.jsonSaída do comando:
List snapshot details called with snapshotFilter 'TestBootVolume' #, Volume, Snapshot, Create Time, HANA Backup ID, Snapshot Size #1, t250_sles_boot_sollabams07v51_vol, TestBootVolume.2020-07-03T034651.7059085Z, "Fri Jul 03 03:48:24 2020", "otherVolume Backup|azacsnap version: 5.0 (Build: 20210421.6349)", 200KB , t250_sles_boot_sollabams07v51_vol, , , Size used by Snapshots, 1.31GB #1, t250_sles_boot_sollabams07v52_vol, TestBootVolume.2020-07-03T034651.7059085Z, "Fri Jul 03 03:48:24 2020", "otherVolume Backup|azacsnap version: 5.0 (Build: 20210421.6349)", 200KB , t250_sles_boot_sollabams07v52_vol, , , Size used by Snapshots, 1.31GB #1, t250_sles_boot_sollabams07v53_vol, TestBootVolume.2020-07-03T034651.7059085Z, "Fri Jul 03 03:48:24 2020", "otherVolume Backup|azacsnap version: 5.0 (Build: 20210421.6349)", 200KB , t250_sles_boot_sollabams07v53_vol, , , Size used by Snapshots, 1.31GBOpcional Configure o backup automático de snapshot com
crontabo , ou um agendador adequado capaz de executar osazacsnapcomandos de backup.
Observação
Não é necessário configurar a comunicação com o SAP HANA.
Restaurar um instantâneo de 'inicialização'
Important
Esta operação é apenas para a Instância Grande do Azure. O servidor é restaurado até o ponto em que o instantâneo foi tirado.
Um instantâneo de 'inicialização' pode ser recuperado da seguinte maneira:
- O cliente precisa desligar o servidor.
- Depois que o servidor for desligado, o cliente precisará abrir uma solicitação de serviço que contenha o ID da máquina e o instantâneo a serem restaurados.
Os clientes podem abrir uma solicitação de serviço por meio do portal do Azure.
- A Microsoft restaura o LUN do sistema operacional usando o ID da máquina e o instantâneo especificados e, em seguida, inicializa o servidor.
- Em seguida, o cliente precisa confirmar se o servidor está inicializado e íntegro.
Nenhuma outra etapa a ser executada após a restauração.
Principais fatos a saber sobre instantâneos
Principais atributos dos snapshots de volume de armazenamento:
Localização dos instantâneos: os instantâneos podem ser encontrados em um diretório virtual (
.snapshot) dentro do volume. Veja os seguintes exemplos para a Instância Grande do Azure (ALI):- Base de dados:
/hana/data/<SID>/mnt00001/.snapshot - Partilhado:
/hana/shared/<SID>/.snapshot - Registos:
/hana/logbackups/<SID>/.snapshot - Inicialização: os instantâneos de inicialização para ALI não são visíveis no nível do sistema operacional, mas podem ser listados usando
azacsnap -c detailso .
Observação
.snapshoté uma pasta virtual oculta somente leitura que fornece acesso somente leitura aos instantâneos.- Base de dados:
Max instantâneo: O hardware pode suportar até 250 snapshots por volume. O comando snapshot mantém um número máximo de snapshots para o prefixo com base no conjunto de retenção na linha de comando. Mais instantâneos, além do número de retenção com o mesmo prefixo, são excluídos.
Nome do instantâneo: O nome do instantâneo inclui o rótulo de prefixo fornecido pelo cliente.
Tamanho do instantâneo: Depende do tamanho/alterações no nível do banco de dados.
Localização do ficheiro de registo: Os arquivos de log gerados pelos comandos são enviados para pastas conforme definido no arquivo de configuração JSON, que por padrão é uma subpasta sob a qual o comando é executado (por exemplo,
./logs).