Script a un modello di backup

Questa pagina spiega come aggiungere script a un modello di backup. Descrive le diverse fasi che uno script esegue durante un job di backup.

Puoi scrivere gli script ed eseguirli per eseguire un'azione all'inizio di un job di backup, durante o al termine. Sono chiamati anche script pre e post.

Posizione degli script

Durante l'installazione dell'agente viene creata automaticamente una cartella di script in cui è in esecuzione il file system o il database che necessita di protezione. Per poterli eseguire, devi posizionare gli script nelle seguenti cartelle:

  • Per l'organizzatore Windows: \Program Files\Google Cloud Backup and DR\scripts
  • Per l'host Linux: /act/scripts e imposta lo script come eseguibile (chmod 755 *.sh)

Fasi dello script

Gli script vengono eseguiti nelle seguenti fasi. Se lo script non viene eseguito, controlla se si trova nella cartella degli script.

  • INIT: questa fase inizia quando l'appliance di backup/recupero si connette all'agente. In questa fase, il job viene inizializzato e le credenziali vengono verificate.
  • PRE: questa fase inizia appena prima dell'operazione principale del job. Per gli snapshot, questa fase inizia prima del blocco dell'applicazione. Per i job di tipo mount, questo avviene dopo che i dispositivi sono stati mappati all'host, ma prima dell'avvio di operazioni basate su agenti come la nuova scansione, l'importazione e il montaggio dei file system.
  • POST: questa fase inizia immediatamente dopo il completamento dell'operazione principale del job. Per i job di tipo di backup, questo avviene dopo lo sblocco dell'applicazione. Per i job di tipo mount, questa fase inizia al termine di tutte le operazioni di importazione, montaggio o messa online delle applicazioni.
  • FINAL: questa fase è la fine del job. A meno che lo script non restituisca un codice diverso da zero che causa l'errore del job, il job è completato.
  • ABORT: questa fase gestisce i job interrotti in caso di errore.

Esempio: script

L'esempio seguente mostra come eseguire uno script lato host nelle varie fasi del processo del job di backup. Contiene cinque script che stampano la data o l'ora, il nome dell'app (nome del file system o del database), il tipo di job, il nome del job, il valore di conservazione dei log in giorni e il testo per indicare la fase del job di backup in elaborazione.

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

Nell'esempio precedente, ACT_JOBTYPE = logbackup indica che il job in esecuzione è un'attività di backup dei log anziché un'attività di backup completo del database.

Potrebbe non essere necessario eseguire tutte e cinque le fasi per ottenere l'output del log scelto. Puoi utilizzare solo le fasi di inizializzazione e finale per indicare l'inizio e la fine della procedura di backup.

Puoi anche personalizzare gli script per eseguire altre attività, ad esempio interrompere un servizio o eseguire altri comandi.

Aggiungere script a un modello di backup

Segui le istruzioni riportate di seguito per aggiungere gli script a un modello di backup.

  1. Fai clic su Piani di backup e seleziona Modelli dall'elenco a discesa.
  2. Seleziona un modello che includa un criterio OnVault. Viene visualizzata la pagina Modelli con il modello di backup selezionato.
  3. Nell'area Criteri della pagina Modelli, fai clic su + Aggiungi accanto a Istantanea.
  4. Fai clic su Impostazioni criteri avanzate.
  5. Scorri fino a Nome script, quindi copia e incolla il seguente 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. Fai clic su Salva modifiche.

  7. Esegui un job on demand.

    L'output viene visualizzato per due diversi database. Uno è un job di backup dei log e l'altro è uno snapshot incrementale.

    $ 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

Passaggio delle variabili di ambiente a un file di log

Puoi esportare le informazioni sull'ambiente dal job allo script utilizzando le variabili di ambiente nell'elenco seguente che hanno il prefisso ACT_. Non tutte le variabili di ambiente sono applicabili a ogni tipo di job.

  • ACT_APPID: l'ID database dell'applicazione.
  • ACT_APPNAME: il nome dell'applicazione.
  • ACT_HOSTNAME: il nome dell'host che è il target di questo job.
  • ACT_JOBNAME: il nome del job.
  • ACT_JOBTYPE: una versione di testo della classe di lavoro.
  • ACT_LOGSMART_TYPE: l'unico valore valido è "db". Questo parametro deve essere presente per acquisire i log del database.
  • ACT_OPTIONS: le opzioni dei criteri che si applicano a questo job
  • ACT_PHASE: una stringa di testo che descrive la fase del job.
  • ACT_POLICY: il nome del criterio relativo a questo job.
  • ACT_POLICYOPT_logbackupretention: il numero di giorni di conservazione per i job di backup dei log. Viene visualizzato solo nei job di backup dei log del database.
  • ACT_PROFILE: il nome del profilo.
  • ACT_SCRIPT_TMOUT: il timeout della sovrascrittura. Se la risposta non viene ricevuta entro il valore del timeout (60 secondi per impostazione predefinita), lo script non andrà a buon fine.
  • ACT_SOURCEHOST: il nome dell'host che è stato l'origine di questa applicazione.
  • ACT_TEMPLATE: il nome del modello relativo al job.
  • ACT_TIMEOUT: la durata definita dello script, in secondi. Se lo script non viene completato entro il periodo di timeout, il job non va a buon fine.
  • ACT_VOLUMES: per le applicazioni generiche, l'elenco dei volumi configurati per il backup. Se hai bisogno di aiuto per conoscere le possibili variabili di ambiente che puoi utilizzare, aggiungi questa riga allo script.

    echo printenv >> /tmp/backup_status.log