בדף הזה מוסבר איך להוסיף סקריפטים לתבנית לגיבוי נתונים. הוא מתאר את השלבים השונים שסקריפט מבצע במהלך משימת גיבוי.
אתם יכולים לכתוב סקריפטים ולהריץ אותם כדי לבצע פעולה בתחילת משימת הגיבוי, במהלכה או אחרי שהיא מסתיימת. הם נקראים גם סקריפטים לפני ואחרי.
מיקום הסקריפטים
תיקיית סקריפטים נוצרת באופן אוטומטי במהלך התקנת הסוכן, שבה פועלת מערכת הקבצים או מסד הנתונים שצריך להגן עליהם. כדי להריץ את הסקריפטים, צריך להציב אותם בתיקיות הבאות:
- למארח ב-Windows:
\Program Files\Google Cloud Backup and DR\scripts - במארח Linux:
/act/scriptsומגדירים את הסקריפט כקובץ הפעלה (chmod 755 *.sh)
שלבי הסקריפט
הסקריפטים פועלים בשלבים הבאים. אם הסקריפט לא פועל, בדקו אם הוא נמצא בתיקיית הסקריפטים.
- INIT: השלב הזה מתחיל כשהמכשיר לגיבוי או לשחזור מתחבר לסוכן. בשלב הזה, המשימה מאותחלת ופרטי הכניסה מאומתים.
- PRE: השלב הזה מתחיל ממש לפני הפעולה העיקרית של המשימה. ב-snapshots, השלב הזה מתחיל לפני שהאפליקציה מוקפאת. במשימות מסוג טעינה, זה קורה אחרי שהמכשירים ממופים למארח, אבל לפני שמתחילות פעולות שמבוססות על סוכנים, כמו סריקה מחדש, ייבוא וטעינה של מערכות קבצים.
- POST: השלב הזה מתחיל מיד אחרי שהפעולה העיקרית של המשימה מסתיימת. במשימות מסוג גיבוי, זה קורה אחרי שהאפליקציה מופשרת. במשימות מסוג טעינה, השלב הזה מתחיל אחרי שכל פעולות הייבוא, הטעינה או העברת האפליקציות למצב אונליין מסתיימות.
- 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 מציין שהמשימה שמופעלת היא משימת גיבוי של יומן, ולא משימת גיבוי מלאה של מסד נתונים.
יכול להיות שלא תצטרכו להריץ את כל חמשת השלבים כדי להגיע לפלט היומן שבחרתם. אפשר להשתמש רק בשלבים init ו-final כדי לציין את ההתחלה והסיום של תהליך הגיבוי.
אתם יכולים גם להתאים אישית את הסקריפטים כדי לבצע משימות אחרות, כמו עצירת שירות או הפעלת פקודות אחרות.
הוספת סקריפטים לתבנית לגיבוי נתונים
כדי להוסיף את הסקריפטים לתבנית לגיבוי נתונים:
- לוחצים על תוכניות גיבוי ובוחרים באפשרות תבניות מהרשימה הנפתחת.
- בוחרים תבנית שכוללת מדיניות 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