Scripts para um modelo de backup

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.

  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 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
    
  6. Clique em Salvar alterações.

  7. Executar um job sob demanda.

    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 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 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