Adicionar scripts a um modelo de backup no console de gerenciamento do dispositivo

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 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. Para executar os scripts, coloque-os nas seguintes pastas:

  • Para host do Windows: \Program Files\Google Cloud Backup and DR\scripts
  • Para host Linux: /act/scripts e defina o script como executável (chmod 755 *.sh)

Fases do script

Os scripts são executados nas fases a seguir. 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 logo antes da operação principal do job. Para snapshots, essa fase começa antes do congelamento do aplicativo. Para jobs do tipo de montagem, isso ocorre 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 do tipo backup, isso ocorre depois que o aplicativo é descongelado. Para jobs do tipo de montagem, essa fase começa depois que todas as operações de importação, montagem ou ativação de aplicativos são concluídas.
  • FINAL: essa fase é o fim do job. A menos que o script retorne um código diferente de zero que cause uma falha no job, o job será concluído.
  • ABORT: essa fase lida com 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 do job de backup. Ele tem cinco scripts que mostram a data ou hora, o nome do app (sistema de arquivos ou nome do banco de dados), o tipo de serviço, o nome do job, o valor de retenção de registros 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 registros, e não uma tarefa de backup completo do banco de dados.

Talvez não seja necessário executar as cinco fases para alcançar a saída de registro escolhida. É possível usar apenas as fases init e final para indicar o início e o fim do processo de backup.

Também é possível personalizar os scripts para executar 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.

  1. Clique em Planos de backup e selecione Modelos na lista suspensa.
  2. Selecione um modelo que inclua uma política do OnVault. A página Modelos é aberta com o modelo de backup selecionado.
  3. Na área Políticas da página Modelos, clique em +Adicionar ao lado de Snapshot.
  4. Clique em Configurações avançadas da política.
  5. Role até Nome do script, 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
    
  6. Clique em Salvar alterações.

  7. Executar um job sob demanda.

    A saída é exibida 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 de 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 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 desse 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 esse job.
  • ACT_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 registros. Isso só aparece em jobs de backup de registros de 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 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 precisar de ajuda para saber quais variáveis de ambiente podem ser usadas, adicione esta linha ao script.

    echo printenv >> /tmp/backup_status.log