Esta página explica como adicionar scripts a um modelo de backup. Ele descreve as diferentes fases que um script executa durante um job de backup.
Você pode escrever e executar scripts para realizar uma ação no início, durante ou após a conclusão de um job de backup. Eles também são chamados de scripts pré e pós.
Local dos scripts
Uma pasta de script é criada automaticamente durante a instalação do agente, em que o sistema de arquivos ou o banco de dados que precisa de proteção está em execução. Você precisa colocar os scripts nas seguintes pastas para executá-los:
- Para o host do Windows:
\Program Files\Google Cloud Backup and DR\scripts
- Para host Linux:
/act/scripts
e definir o script como executável (chmod 755 *.sh)
Fases do script
Os scripts são executados nas seguintes fases. Se o script não estiver sendo executado, verifique se ele está na pasta de scripts.
- INIT: essa fase começa quando o dispositivo de backup/recuperação se conecta ao agente. Nessa fase, o job é inicializado e as credenciais são verificadas.
- PRE: essa fase começa pouco antes da operação principal do job. Para snapshots, essa fase começa antes que o aplicativo seja congelado. Para jobs do tipo mount, isso ocorre depois que os dispositivos são mapeados para o host, mas antes que as operações baseadas em agentes, como reescanear, importar e montar sistemas de arquivos, sejam iniciadas.
- POST: essa fase começa imediatamente após a operação principal do job ser concluída. Para jobs do tipo backup, isso ocorre depois que o aplicativo é descongelado. Para jobs do tipo "mount", essa fase começa depois que todas as operações de importação, montagem ou ativação de aplicativos são concluídas.
- FINAL: esta fase é o fim do job. A menos que o script retorne um código diferente de zero que cause a falha do job, ele será concluído.
- ABORT: essa fase processa jobs abortados quando eles falham.
Exemplo: scripts
O exemplo a seguir mostra como executar um script do lado do host em várias fases do processo de job de backup. Ele tem cinco scripts que geram a data ou hora, o nome do app (nome do sistema de arquivos ou do banco de dados), o tipo de job, o nome do job, o valor de retenção de registro em dias e o texto para indicar a fase do job de backup que está sendo processado.
```sh
$ cat /act/scripts/init.sh
#!/bin/sh
if [ "${ACT_JOBTYPE}" = "logbackup" ]; then
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_ARCHIVELOG_BACKUP JobPhase:INIT" >> /tmp/backup_status.log
else
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_INCREMENTAL_BACKUP JobPhase:INIT" >> /tmp/backup_status.log
fi
$ cat /act/scripts/pre.sh
#!/bin/sh
if [ "${ACT_JOBTYPE}" = "logbackup" ]; then
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_ARCHIVELOG_BACKUP JobPhase:PRE" >> /tmp/backup_status.log
else
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_INCREMENTAL_BACKUP JobPhase:PRE" >> /tmp/backup_status.log
fi
$ cat /act/scripts/post.sh
#!/bin/sh
if [ "${ACT_JOBTYPE}" = "logbackup" ]; then
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_ARCHIVELOG_BACKUP JobPhase:POST" >> /tmp/backup_status.log
else
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_INCREMENTAL_BACKUP JobPhase:POST" >> /tmp/backup_status.log
fi
$ cat /act/scripts/fini.sh
#!/bin/sh
if [ "${ACT_JOBTYPE}" = "logbackup" ]; then
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_ARCHIVELOG_BACKUP JobPhase:FINAL" >> /tmp/backup_status.log
else
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_INCREMENTAL_BACKUP JobPhase:FINAL" >> /tmp/backup_status.log
fi
$ cat /act/scripts/abort.sh
#!/bin/sh
if [ "${ACT_JOBTYPE}" = "logbackup" ]; then
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_ARCHIVELOG_BACKUP JobPhase:ABORT" >> /tmp/backup_status.log
else
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_INCREMENTAL_BACKUP JobPhase:ABORT" >> /tmp/backup_status.log
fi
```
No exemplo anterior, ACT_JOBTYPE = logbackup
indica que o job em execução
é uma tarefa de backup de registro, e não uma tarefa de backup completo do banco de dados.
Talvez não seja necessário executar as cinco fases para conseguir a saída de registro escolhida. Você só pode usar as fases de inicialização e finalização para indicar o início e o fim do processo de backup.
Também é possível personalizar os scripts para realizar outras tarefas, como interromper um serviço ou executar outros comandos.
Adicionar scripts a um modelo de backup
Siga as instruções abaixo para adicionar os scripts a um modelo de backup.
- Clique em Planos de backup e selecione Modelos na lista suspensa.
- Selecione um modelo que inclua uma política do OnVault. A página Modelos é aberta com o modelo de backup selecionado.
- Na área Políticas da página Modelos, clique em +Adicionar ao lado de Snapshot.
- Clique em Configurações avançadas da política.
Role até Nome do script e copie e cole o seguinte script:
path=init.sh:phase=init;path=pre.sh:phase=pre;path=post.sh:phase=post;path=fini.sh:phase=final:timeout=300;path=abort.sh:phase=abort
Clique em Salvar alterações.
-
A saída é mostrada para dois bancos de dados diferentes. Um é um job de backup de registro e o outro é um snapshot incremental.
$ cat /tmp/backup_status.log Wed Nov 22 06:11:49 UTC 2023 Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:INIT Wed Nov 22 06:13:52 UTC 2023 Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:PRE Wed Nov 22 06:15:01 UTC 2023 Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:POST Wed Nov 22 06:15:01 UTC 2023 Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:FINAL Wed Nov 22 06:18:00 UTC 2023 Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:INIT Wed Nov 22 06:20:15 UTC 2023 Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:PRE Wed Nov 22 06:22:06 UTC 2023 Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:POST Wed Nov 22 06:22:06 UTC 2023 Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:FINAL
Como transmitir variáveis de ambiente para um arquivo de registro
É possível exportar as informações do ambiente do job para o script usando
as variáveis de ambiente na lista a seguir que têm o prefixo ACT_
.
Nem todas as variáveis de ambiente são aplicáveis a todos os tipos de job.
ACT_APPID
: o ID do banco de dados do aplicativo.ACT_APPNAME
: o nome do aplicativo.ACT_HOSTNAME
: o nome do host de destino desse job.ACT_JOBNAME
: o nome do job.ACT_JOBTYPE
: uma versão de texto da classe de trabalho.ACT_LOGSMART_TYPE
: o único valor válido é "db". Ela precisa estar presente para que os registros do banco de dados sejam capturados.ACT_OPTIONS
: as opções de política aplicáveis a esse jobACT_PHASE
: uma string de texto que descreve a fase do job.ACT_POLICY
: o nome da política relacionada a esse job.ACT_POLICYOPT_logbackupretention
: o número de dias de retenção para jobs de backup de registro. Isso aparece apenas em jobs de backup de registro de banco de dados.ACT_PROFILE
: o nome do perfil.ACT_SCRIPT_TMOUT
: o tempo limite da superscrita. Se a resposta não for recebida dentro do valor do tempo limite (padrão de 60 segundos), o script vai falhar.ACT_SOURCEHOST
: o nome do host que foi a origem do aplicativo.ACT_TEMPLATE
: o nome do modelo relacionado ao job.ACT_TIMEOUT
: a duração definida do script, em segundos. Se o script não for concluído dentro do período de tempo limite, o job vai falhar.ACT_VOLUMES
: para aplicativos genéricos, a lista de volumes configurados para backup. Se você precisar de ajuda para saber quais variáveis de ambiente pode usar, adicione esta linha ao script.echo printenv >> /tmp/backup_status.log