בדף הזה מוסבר איך להוסיף סקריפטים לתבנית גיבוי. במאמר הזה מתוארים השלבים השונים שסקריפט מבצע במהלך עבודת גיבוי.
אתם יכולים לכתוב סקריפטים ולהפעיל אותם כדי לבצע פעולה בתחילת עבודת הגיבוי, במהלך הגיבוי או אחרי שהוא מסתיים. הם נקראים גם סקריפטים לפני ואחרי.
מיקום הסקריפטים
תיקיית סקריפטים נוצרת אוטומטית במהלך התקנת הסוכן, במקום שבו פועלת מערכת הקבצים או מסד הנתונים שצריך להגן עליהם. כדי להריץ את הסקריפטים, צריך למקם אותם בתיקיות הבאות:
- במארח Windows:
\Program Files\Google Cloud Backup and DR\scripts - במארח Linux:
/act/scriptsומגדירים את הסקריפט כקובץ הפעלה (chmod 755 *.sh)
שלבי הסקריפט
הסקריפטים מופעלים בשלבים הבאים. אם הסקריפט לא מופעל, צריך לבדוק אם הוא נמצא בתיקיית הסקריפטים.
- INIT: השלב הזה מתחיל כשמכשיר הגיבוי או השחזור מתחבר לסוכן. בשלב הזה, המשימה מאותחלת והאישורים מאומתים.
- PRE: השלב הזה מתחיל ממש לפני הפעולה העיקרית של העבודה. במקרה של תמונות מצב, השלב הזה מתחיל לפני שהאפליקציה קופאת. במשימות מסוג mount, זה קורה אחרי שהמכשירים ממופים למארח אבל לפני שמתחילות פעולות שמבוססות על סוכן, כמו סריקה מחדש, ייבוא והרכבה של מערכות קבצים.
- POST: השלב הזה מתחיל מיד אחרי שהפעולה העיקרית של העבודה מסתיימת. למשימות מסוג גיבוי, זה קורה אחרי שהאפליקציה מפסיקה להיות קפואה. במשימות מסוג mount, השלב הזה מתחיל אחרי שכל הפעולות של ייבוא, mount או העברת אפליקציות אונליין מסתיימות.
- FINAL: השלב הזה הוא סוף העבודה. אלא אם הסקריפט מחזיר קוד שאינו אפס שגורם לכך שהעבודה תיכשל, העבודה הושלמה.
- ABORT: בשלב הזה מטופלות משימות שהופסקו כשהן נכשלות.
דוגמה: סקריפטים
בדוגמה הבאה מוצג איך להריץ סקריפט בצד המארח בשלבים שונים של תהליך עבודת הגיבוי. יש בו חמישה סקריפטים שמפיקים את התאריך או השעה, שם האפליקציה (שם מערכת הקבצים או שם מסד הנתונים), סוג העבודה, שם המשימה, ערך השמירה של היומן בימים וטקסט שמציין את השלב של משימת הגיבוי שמתבצעת.
```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
```
בדוגמה הקודמת, ACT_JOBTYPE = logbackup מציין שהעבודה שמופעלת היא משימת גיבוי של יומן, ולא משימת גיבוי מלא של מסד נתונים.
יכול להיות שלא תצטרכו להריץ את כל חמשת השלבים כדי להשיג את פלט היומן שבחרתם. אפשר להשתמש רק בשלבי ההתחלה והסיום כדי לציין את ההתחלה והסיום של תהליך הגיבוי.
אפשר גם להתאים אישית את הסקריפטים כדי לבצע משימות אחרות, כמו עצירה של שירות או הפעלה של פקודות אחרות.
הוספת סקריפטים לתבנית גיבוי
כדי להוסיף את הסקריפטים לתבנית גיבוי, פועלים לפי ההוראות הבאות.
- לוחצים על תוכניות גיבוי ובוחרים באפשרות תבניות מהרשימה הנפתחת.
- בוחרים תבנית שכוללת מדיניות OnVault. הדף Templates נפתח עם תבנית הגיבוי שנבחרה.
- באזור Policies (מדיניות) בדף Templates (תבניות), לוחצים על +Add (הוספה) לצד Snapshot (תמונת מצב).
- לוחצים על הגדרות מתקדמות של מדיניות.
גוללים אל שם הסקריפט, מעתיקים את הסקריפט הבא ומדביקים אותו:
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לוחצים על שמירת השינויים.
-
הפלט מוצג עבור שני מסדי נתונים שונים. אחת היא משימת גיבוי של יומן, והשנייה היא קובץ snapshot מצטבר.
$ 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
העברת משתני סביבה לקובץ יומן
אפשר לייצא את פרטי הסביבה מהעבודה לסקריפט באמצעות משתני הסביבה שמופיעים ברשימה הבאה עם הקידומת ACT_.
לא כל משתני הסביבה רלוונטיים לכל סוגי העבודות.
-
ACT_APPID: מזהה מסד הנתונים של האפליקציה. -
ACT_APPNAME: שם האפליקציה. -
ACT_HOSTNAME: השם של המארח שהוא היעד של המשימה הזו. -
ACT_JOBNAME: שם המשימה. -
ACT_JOBTYPE: גרסת טקסט של מחלקת המשימות. -
ACT_LOGSMART_TYPE: הערך התקין היחיד הוא 'db'. ההגדרה הזו צריכה להיות קיימת כדי שיומני מסד הנתונים יתועדו. -
ACT_OPTIONS: אפשרויות המדיניות שחלות על המשימה הזו -
ACT_PHASE: מחרוזת טקסט שמתארת את שלב העבודה. -
ACT_POLICY: השם של המדיניות שקשורה למשימה הזו. -
ACT_POLICYOPT_logbackupretention: מספר הימים לשמירת גיבויים של יומני רישום. ההודעה הזו מופיעה רק במשימות גיבוי של יומני מסדי נתונים. -
ACT_PROFILE: שם הפרופיל. -
ACT_SCRIPT_TMOUT: הזמן הקצוב לתפוגה של כתב עילי. אם התשובה לא מתקבלת בתוך ערך הזמן הקצוב לתפוגה (ברירת מחדל היא 60 שניות), הסקריפט ייכשל. -
ACT_SOURCEHOST: השם של המארח שהיה המקור של האפליקציה הזו. -
ACT_TEMPLATE: השם של התבנית שקשורה לעבודה. -
ACT_TIMEOUT: משך הזמן המוגדר של הסקריפט, בשניות. אם הסקריפט לא יסיים את הפעולה לפני שתפוג ההמתנה, העבודה תיכשל.
ACT_VOLUMES: לאפליקציות כלליות, רשימת אמצעי האחסון שהוגדרו לגיבוי. אם אתם צריכים עזרה בהכרת משתני הסביבה שאפשר להשתמש בהם, תוכלו להוסיף את השורה הזו לסקריפט.echo printenv >> /tmp/backup_status.log