Scripts a um modelo de reserva

Esta página explica como adicionar scripts a um modelo de cópia de segurança. Descreve as diferentes fases que um script executa durante uma tarefa de cópia de segurança.

Pode escrever os seus scripts e executá-los para realizar uma ação no início de uma tarefa de cópia de segurança, durante a mesma ou após a sua conclusão. Também são denominados scripts pré-execução e pós-execução.

Localização dos scripts

É criada automaticamente uma pasta de scripts durante a instalação do agente onde o sistema de ficheiros ou a base de dados que precisa de proteção está em execução. Tem de colocar os scripts nas seguintes pastas para os executar:

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

Fases do script

Os scripts são executados nas seguintes fases. Se o seu script não estiver a ser executado, verifique se está na pasta de scripts.

  • INIT: esta fase começa quando o dispositivo de cópia de segurança/recuperação se liga ao agente. Nesta fase, a tarefa é inicializada e as credenciais são validadas.
  • PRE: esta fase começa imediatamente antes da operação principal da tarefa. Para as imagens instantâneas, esta fase começa antes de a aplicação ser congelada. Para tarefas do tipo de montagem, isto ocorre depois de os dispositivos serem mapeados para o anfitrião, mas antes de serem iniciadas operações baseadas em agentes, como a nova análise, a importação e a montagem de sistemas de ficheiros.
  • POST: esta fase começa imediatamente após a conclusão da operação principal da tarefa. Para tarefas do tipo de cópia de segurança, isto ocorre depois de a aplicação ser descongelada. Para tarefas do tipo de montagem, esta fase começa depois de todas as operações de importação, montagem ou colocação de aplicações online estarem concluídas.
  • FINAL: esta fase é o fim da tarefa. A menos que o script devolva um código diferente de zero que faça com que a tarefa falhe, a tarefa é concluída.
  • ABORT: esta fase processa tarefas anuladas quando falham.

Exemplo: scripts

O exemplo seguinte mostra como executar um script do lado do anfitrião em várias fases do processo da tarefa de cópia de segurança. Tem cinco scripts que produzem a data ou a hora, o nome da app (nome do sistema de ficheiros ou da base de dados), o tipo de tarefa, o nome da tarefa, o valor de retenção de registos em dias e o texto para indicar a fase da tarefa de cópia de segurança que está a ser processada.

    ```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 a tarefa que está a ser executada é uma tarefa de cópia de segurança do registo e não uma tarefa de cópia de segurança completa da base de dados.

Pode não ter de executar todas as cinco fases para alcançar a saída de registo escolhida. Só pode usar as fases init e final para indicar o início e o fim do processo de cópia de segurança.

Também pode personalizar os scripts para realizar outras tarefas, como parar um serviço ou executar outros comandos.

Adicione scripts a um modelo de cópia de segurança

Siga as instruções abaixo para adicionar os scripts a um modelo de cópia de segurança.

  1. Clique em Planos de contingência e selecione Modelos na lista pendente.
  2. Selecione um modelo que inclua uma política OnVault. A página Modelos é aberta com o modelo de cópia de segurança selecionado.
  3. Na área Políticas da página Modelos, clique em +Adicionar junto a Instantâneo.
  4. Clique em Definições avançadas de políticas.
  5. Desloque a página até Nome do script e, em seguida, 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 Guardar alterações.

  7. Execute uma tarefa a pedido.

    O resultado é apresentado para duas bases de dados diferentes. Um é uma tarefa de cópia de segurança de registos e o outro é um resumo 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

Transmitir variáveis de ambiente para um ficheiro de registo

Pode exportar as informações do ambiente da tarefa para o script através das variáveis de ambiente na seguinte lista com o prefixo ACT_. Nem todas as variáveis de ambiente são aplicáveis a todos os tipos de tarefas.

  • ACT_APPID: o ID da base de dados da aplicação.
  • ACT_APPNAME: o nome da aplicação.
  • ACT_HOSTNAME: o nome do anfitrião que é o destino desta tarefa.
  • ACT_JOBNAME: o nome da tarefa.
  • ACT_JOBTYPE: uma versão de texto da classe de emprego.
  • ACT_LOGSMART_TYPE: o único valor válido é "db". Tem de estar presente para que os registos da base de dados sejam captados.
  • ACT_OPTIONS: as opções de políticas que se aplicam a este trabalho
  • ACT_PHASE: uma string de texto que descreve a fase do trabalho.
  • ACT_POLICY: o nome da política relacionada com esta tarefa.
  • ACT_POLICYOPT_logbackupretention: o número de dias de retenção para trabalhos de cópia de segurança de registos. Esta opção só aparece em tarefas de cópia de segurança de registos da base de dados.
  • ACT_PROFILE: o nome do perfil.
  • ACT_SCRIPT_TMOUT: o limite de tempo para a colocação em sobrescrito. Se a resposta não for recebida dentro do valor de limite de tempo (predefinição de 60 segundos), o script falha.
  • ACT_SOURCEHOST: o nome do anfitrião que foi a origem desta aplicação.
  • ACT_TEMPLATE: o nome do modelo relacionado com o trabalho.
  • ACT_TIMEOUT: a duração definida do guião, em segundos. Se o script não for concluído dentro do período de limite de tempo, a tarefa falha.
  • ACT_VOLUMES: para aplicações genéricas, a lista de volumes configurados para a cópia de segurança. Se precisar de ajuda para saber as variáveis de ambiente possíveis que pode usar, adicione esta linha ao seu script.

    echo printenv >> /tmp/backup_status.log