Cette page explique comment ajouter des scripts à un modèle de sauvegarde. Il décrit les différentes phases d'exécution d'un script lors d'un job de sauvegarde.
Vous pouvez écrire vos scripts et les exécuter pour effectuer une action au début d'un job de sauvegarde, pendant son exécution ou une fois qu'il est terminé. On les appelle également scripts pré- et post-instanciation.
Emplacement des scripts
Un dossier de script est créé automatiquement lors de l'installation de l'agent à l'emplacement où le système de fichiers ou la base de données à protéger est en cours d'exécution. Vous devez placer les scripts dans les dossiers suivants pour les exécuter :
- Pour un hôte Windows :
\Program Files\Google Cloud Backup and DR\scripts - Pour un hôte Linux :
/act/scriptset définissez le script comme exécutable (chmod 755 *.sh)
Phases du script
Les scripts s'exécutent au cours des phases suivantes. Si votre script ne s'exécute pas, vérifiez s'il se trouve dans le dossier des scripts.
- INIT : cette phase commence lorsque l'appareil de sauvegarde/récupération se connecte à l'agent. Au cours de cette phase, le job est initialisé et les identifiants sont vérifiés.
- PRE : cette phase commence juste avant l'opération principale du job. Pour les instantanés, cette phase commence avant que l'application ne soit figée. Pour les jobs de type "installation", cela se produit après le mappage des appareils à l'hôte, mais avant le démarrage des opérations basées sur l'agent, telles que la nouvelle analyse, l'importation et l'installation des systèmes de fichiers.
- POST : cette phase commence immédiatement après la fin de l'opération principale du job. Pour les jobs de type sauvegarde, cela se produit après le dégel de l'application. Pour les jobs de type "installation", cette phase commence une fois que toutes les opérations d'importation, d'installation ou de mise en ligne des applications sont terminées.
- FINAL : cette phase correspond à la fin du job. Sauf si le script renvoie un code différent de zéro qui entraîne l'échec du job, celui-ci est terminé.
- ABORT : cette phase gère les jobs abandonnés en cas d'échec.
Exemple : scripts
L'exemple suivant montre comment exécuter un script côté hôte à différentes phases du processus de job de sauvegarde. Il comporte cinq scripts qui affichent la date ou l'heure, le nom de l'application (nom du système de fichiers ou de la base de données), le type de job, le nom du job, la valeur de conservation des journaux en jours et le texte indiquant la phase du job de sauvegarde en cours de traitement.
```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
```
Dans l'exemple précédent, ACT_JOBTYPE = logbackup indique que le job en cours d'exécution est une tâche de sauvegarde de journaux, et non une tâche de sauvegarde complète de la base de données.
Il se peut que vous n'ayez pas besoin d'exécuter les cinq phases pour obtenir le résultat de journal souhaité. Vous ne pouvez utiliser que les phases "init" et "final" pour indiquer le début et la fin du processus de sauvegarde.
Vous pouvez également personnaliser les scripts pour effectuer d'autres tâches, telles que l'arrêt d'un service ou l'exécution d'autres commandes.
Ajouter des scripts à un modèle de sauvegarde
Suivez les instructions ci-dessous pour ajouter les scripts à un modèle de sauvegarde.
- Cliquez sur Plans de sauvegarde, puis sélectionnez Modèles dans la liste déroulante.
- Sélectionnez un modèle incluant une règle OnVault. La page Modèles s'ouvre avec le modèle de sauvegarde sélectionné.
- Dans la zone Règles de la page Modèles, cliquez sur + Ajouter à côté d'Instantané.
- Cliquez sur Paramètres avancés de la règle.
Faites défiler la page jusqu'à Nom du script, puis copiez et collez le script suivant :
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=abortCliquez sur Enregistrer les modifications.
-
Le résultat s'affiche pour deux bases de données différentes. L'un est un job de sauvegarde de journaux, et l'autre est un instantané incrémental.
$ 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
Transmettre des variables d'environnement dans un fichier journal
Vous pouvez exporter les informations d'environnement du job vers le script à l'aide des variables d'environnement de la liste suivante, qui sont précédées du préfixe ACT_.
Les variables d'environnement ne s'appliquent pas toutes à chaque type de mission.
ACT_APPID: ID de base de données de l'application.ACT_APPNAME: nom de l'application.ACT_HOSTNAME: nom de l'hôte cible de ce job.ACT_JOBNAME: nom du job.ACT_JOBTYPE: version textuelle de la classe de job.ACT_LOGSMART_TYPE: la seule valeur valide est "db". Ce paramètre doit être présent pour que les journaux de base de données soient capturés.ACT_OPTIONS: options de stratégie qui s'appliquent à ce jobACT_PHASE: chaîne de texte décrivant la phase du job.ACT_POLICY: nom de la stratégie associée à ce job.ACT_POLICYOPT_logbackupretention: nombre de jours de conservation des jobs de sauvegarde des journaux. Cela n'apparaît que dans les jobs de sauvegarde des journaux de base de données.ACT_PROFILE: nom du profil.ACT_SCRIPT_TMOUT: délai d'expiration de la mise en exposant. Si la réponse n'est pas reçue dans le délai imparti (60 secondes par défaut), le script échoue.ACT_SOURCEHOST: nom de l'hôte qui était la source de cette application.ACT_TEMPLATE: nom du modèle associé au job.ACT_TIMEOUT: durée définie du script, en secondes. Si le script ne se termine pas dans le délai imparti, le job échouera.ACT_VOLUMES: pour les applications génériques, liste des volumes configurés pour la sauvegarde. Si vous avez besoin d'aide pour connaître les variables d'environnement que vous pouvez utiliser, ajoutez cette ligne à votre script.echo printenv >> /tmp/backup_status.log