Nesta página, explicamos como adicionar scripts a um modelo de backup. Ele descreve as diferentes fases que um script executa durante um job de backup.
É possível 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 de pré e pós-processamento.
Local dos scripts
Uma pasta de script é criada automaticamente durante a instalação do agente, onde o sistema de arquivos ou o banco de dados que precisa de proteção está em execução. Coloque os scripts nas seguintes pastas para executá-los:
- Para organizadores do Windows:
\Program Files\Google Cloud Backup and DR\scripts - Para host Linux:
/act/scriptse defina 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. Nela, 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 de o aplicativo ser congelado. Para jobs do tipo montagem, isso acontece depois que os dispositivos são mapeados para o host, mas antes que as operações baseadas em agente, como nova verificação, importação e montagem de sistemas de arquivos, sejam iniciadas.
- POST: essa fase começa imediatamente após a conclusão da operação principal do job. Para jobs de tipo de backup, isso acontece depois que o aplicativo é descongelado. Para jobs do tipo montagem, essa fase começa depois que todas as operações de importação, montagem ou colocação de aplicativos on-line são concluídas.
- FINAL: esta fase é o fim do job. A menos que o script retorne um código diferente de zero que faça o job falhar, ele será concluído.
- ABORT: essa fase processa jobs cancelados 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 mostram a data ou hora, o nome do app (nome do sistema de arquivos ou do banco de dados), o tipo de serviço e o nome do job, o valor de retenção de registros em dias e o texto para indicar a fase do job de backup em processamento.
```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 registros, e não de backup completo do banco de dados.
Talvez não seja necessário executar todas as cinco fases para alcançar a saída de registro escolhida. Você pode usar apenas as fases inicial e final 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
Use as instruções a seguir 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 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=abortClique em Salvar alterações.
-
A saída é mostrada para dois bancos de dados diferentes. Um é um job de backup de registros 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 trabalho 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 serão aplicáveis a todos os tipos de serviço.
ACT_APPID: o ID do banco de dados do aplicativo.ACT_APPNAME: o nome do aplicativo.ACT_HOSTNAME: o nome do host que é o destino deste job.ACT_JOBNAME: o nome do job.ACT_JOBTYPE: uma versão de texto da classe de job.ACT_LOGSMART_TYPE: o único valor válido é "db". Isso precisa estar presente para que os registros do banco de dados sejam capturados.ACT_OPTIONS: as opções de política que se aplicam a este jobACT_PHASE: uma string de texto que descreve a fase do job.ACT_POLICY: o nome da política relacionada a este job.ACT_POLICYOPT_logbackupretention: o número de dias de retenção para jobs de backup de registros. Isso aparece apenas em jobs de backup de registros do banco de dados.ACT_PROFILE: o nome do perfil.ACT_SCRIPT_TMOUT: o tempo limite de sobrescrito. Se a resposta não for recebida dentro do valor de tempo limite (padrão de 60 segundos), o script vai falhar.ACT_SOURCEHOST: o nome do host que foi a origem desse 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 aprender as possíveis variáveis de ambiente que podem ser usadas, adicione esta linha ao script.echo printenv >> /tmp/backup_status.log