גיבוי ושחזור נתונים באמצעות RPM Orchestrator

בוחרים גרסה של מאמר העזרה:

כדי להגן על הנתונים, AlloyDB Omni מספק גיבוי נתונים אוטומטי ושחזור באמצעות מניפסטים דקלרטיביים. הכלי לתזמור של AlloyDB Omni פועל עם alloydbctl ו-Ansible כדי להחיל את ההגדרות האלה של קובץ המניפסט ולבצע אוטומציה של גיבויים ל-Cloud Storage, לקטגוריות רגילות של Amazon S3 או לתוכנה שתואמת ל-S3, כמו MinIO.

כדי להפעיל גיבוי ושחזור רציפים של AlloyDB Omni, צריך ליצור תוכנית גיבוי לכל אשכול מסד נתונים. הגיבויים מתבצעים על סמך לוחות הזמנים לגיבוי שמוגדרים במשאב BackupPlan. אפשר לשחזר באמצעות משאב גיבוי או כל חותמת זמן בחלון השחזור ברמת דיוק של שניות.

‫AlloyDB Omni מנהל גיבויים ושחזורים אוטומטיים באמצעות קובצי מניפסט:

  • ‫BackupPlan: לכל אשכול מסדי נתונים יכול להיות מניפסט אחד או יותר של BackupPlan עם הגדרות ולוחות זמנים שונים ברמות גיבוי שונות.
  • ‫Backup: יוזם גיבויים מלאים, דיפרנציאליים או מצטברים על סמך המניפסטים שלכם.BackupPlan
  • ‫Restore: מפעיל שחזור במקום של אשכול מסדי הנתונים באמצעות גיבוי ספציפי או נקודת זמן מסוימת.

לפני שמתחילים

לפני שמגדירים את תוכנית הגיבוי, חשוב לוודא שיש לכם את הדברים הבאים:

  • מיקום אחסון לגיבויים: AlloyDB Omni מאחסן גיבויים באחת מאפשרויות האחסון הבאות:

    • ‫Cloud Storage: קטגוריה של Cloud Storage. במאמר יצירת קטגוריה מוסבר איך ליצור קטגוריות.
    • ‫Amazon S3: קטגוריה ב-Amazon S3. במאמר יצירת קטגוריה מוסבר איך ליצור קטגוריות S3.
    • אחסון שתואם ל-S3: קטגוריה בתוכנה שתואמת ל-S3, כמו MinIO. מידע על יצירת קטגוריות MinIO זמין במסמכי MinIO.
  • אמצעי אימות: אם אפשרות האחסון שלכם דורשת מפתחות אימות כמו Amazon S3,‏ MinIO או Cloud Storage עם חשבון שירות ספציפי, אתם צריכים ליצור משאב Secret שמכיל את אמצעי האימות האלה לפני שאתם יוצרים את תוכנית הגיבוי. הוראות מפורטות מופיעות במאמר יצירת משאב Secret לאימות אחסון.

יצירת משאב Secret לאימות אחסון

אם האחסון שבו אתם משתמשים דורש אימות, אתם צריכים ליצור משאב Secret לפני שאתם יוצרים את תוכנית הגיבוי.

יצירת משאב Secret ל-Cloud Storage

  1. יוצרים חשבון שירות כדי להוסיף גיבויים לדלי.
  2. מקצים לחשבון השירות את התפקיד roles/storage.objectAdmin לניהול זהויות והרשאות גישה בקטע.
  3. יצירת מפתח לחשבון שירות בפורמט JSON.
  4. מקודדים את התוכן של קובץ מפתח ה-JSON שהורדתם בקידוד base64. מריצים את base64 -w 0 או מוודאים שהטקסט המוצפן הוא שורה רציפה אחת.
  5. יוצרים מניפסט של משאב Secret. שם המפתח בקטע data חייב להיות key.json.

    Secret:
      metadata:
        name: SECRET_NAME
      spec:
        type: Opaque
        data:
          key.json: "BASE64_ENCODED_JSON_KEY"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫SECRET_NAME: השם של משאב Secret.
    • ‫BASE64_ENCODED_JSON_KEY: התוכן בקידוד base64 של קובץ מפתח ה-JSON של חשבון השירות.

יצירת משאב Secret לאחסון S3 או לאחסון שתואם ל-S3

  1. מקודדים את מזהה מפתח הגישה ל-S3 ב-base64.
  2. מקודדים את מפתח הגישה הסודי של S3 ב-base64.
  3. יוצרים מניפסט של משאב Secret. שמות המפתחות בקטע data צריכים להיות access-key-id ו-access-key.

    Secret:
      metadata:
        name: SECRET_NAME
      spec:
        type: Opaque
        data:
          access-key-id: "BASE64_ENCODED_ACCESS_KEY_ID"
          access-key: "BASE64_ENCODED_SECRET_ACCESS_KEY"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫SECRET_NAME: השם של משאב Secret.
    • ‫BASE64_ENCODED_ACCESS_KEY_ID: מזהה מפתח הגישה ל-S3 בקידוד base64.
    • ‫BASE64_ENCODED_SECRET_ACCESS_KEY: מפתח הגישה הסודי של S3 בקידוד base64.

החלת משאב Secret

מחילים את מניפסט המשאבים Secret לפני שמחילים את מניפסט BackupPlan. אפשר להחיל את מניפסט המשאבים Secret באחת מהשיטות הבאות:

alloydbctl

כדי להחיל את מניפסט המשאבים Secret באמצעות alloydbctl, מריצים את הפקודה הבאה:

alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "SECRET_MANIFEST"

מחליפים את המשתנים הבאים:

  • ‫DEPLOYMENT_SPEC_PATH: הנתיב למפרט הפריסה שיצרתם בקטע התקנת רכיבי AlloyDB Omni.
  • ‫SECRET_MANIFEST: הנתיב למניפסט המשאב Secret שיצרתם.

Ansible

כדי להחיל את מניפסט המשאבים Secret באמצעות Ansible, מבצעים את הפעולות הבאות:

  1. יוצרים מדריך הפעלה למניפסט המשאבים של Secret:

    - name: Create Secret
      hosts: localhost
      become: true
      vars:
        ansible_user: ANSIBLE_USER
        ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE
      roles:
        - role: google.alloydbomni_orchestrator.backup
    

    מחליפים את המשתנים הבאים:

    • ‫ANSIBLE_USER: משתמש במערכת ההפעלה שמשמש את Ansible כדי להתחבר לצמתים של AlloyDB Omni.
    • ‫ANSIBLE_SSH_PRIVATE_KEY_FILE: המפתח הפרטי שמשמש את Ansible לחיבור לצמתים של AlloyDB Omni באמצעות SSH.
  2. מחילים את מניפסט המשאבים Secret:

    ansible-playbook SECRET_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" \
      -e resource_spec="SECRET_MANIFEST"

    מחליפים את המשתנים הבאים:

    • ‫SECRET_PLAYBOOK: הנתיב ל-playbook שיצרתם עבור מניפסט המשאבים של Secret.
    • ‫DEPLOYMENT_SPEC_PATH: הנתיב למפרט הפריסה שיצרתם בקטע התקנת רכיבי AlloyDB Omni.
    • ‫SECRET_MANIFEST: הנתיב למניפסט המשאב Secret שיצרתם.

יצירת תוכנית גיבוי

  1. יוצרים קובץ BackupPlan מניפסט בפורמט של אפשרות האחסון:

    Cloud Storage

    השדה gcsOptions הוא חובה.

    BackupPlan:
      metadata:
        name: BACKUP_PLAN_NAME
      spec:
        dbclusterRef: DBCLUSTER_NAME
        backupLocation:
          type: GCS
          gcsOptions:
            bucket: BUCKET_NAME
            key: BUCKET_PATH
            secretRef:
              name: SECRET_NAME
        backupRetainDays: RETAIN_DAYS
        backupSchedules:
          full: "FULL_SCHEDULE"
          differential: "DIFF_SCHEDULE"
          incremental: "INC_SCHEDULE"
    

    מחליפים את המשתנים הבאים:

    • ‫BACKUP_PLAN_NAME: השם של קובץ המניפסט BackupPlan. לדוגמה, my-backup-plan-1.

    • ‫DBCLUSTER_NAME: השם של אשכול מסד הנתונים שהגדרתם בשלב יצירת אשכול.

    • ‫BUCKET_NAME: השם של הקטגוריה שיצרתם ב-Cloud Storage.

    • ‫BUCKET_PATH: הנתיב לספרייה ב-Cloud Storage שאליה הגיבויים צריכים להיכתב. חובה לציין נתיב מוחלט שמתחיל ב-/. לדוגמה, /backups.

    • SECRET_NAME (אופציונלי): שם משאב Secret שבו מאוחסנים מפתחות האימות.

    • RETAIN_DAYS (אופציונלי): מספר הימים לשמירת הגיבויים לפני שהם יימחקו אוטומטית.

    • FULL_SCHEDULE (אופציונלי): ביטוי לתזמון cron לגיבויים מלאים. לדוגמה, 0 2 * * *.

    • DIFF_SCHEDULE (אופציונלי): ביטוי ללוח זמנים של cron לגיבויים דיפרנציאליים. לדוגמה, 0 2 * * *.

    • INC_SCHEDULE (אופציונלי): ביטוי לתיזמון cron לגיבויים מצטברים. לדוגמה, 0 2 * * *.

    ‫Amazon S3 או תואם ל-S3

    השדה s3Options הוא חובה.

    BackupPlan:
      metadata:
        name: BACKUP_PLAN_NAME
      spec:
        dbclusterRef: DBCLUSTER_NAME
        backupLocation:
          type: S3
          s3Options:
            bucket: BUCKET_NAME
            key: BUCKET_PATH
            endpoint: ENDPOINT_URL
            region: REGION
            secretRef:
              name: SECRET_NAME
        backupRetainDays: RETAIN_DAYS
        backupSchedules:
          full: "FULL_SCHEDULE"
          differential: "DIFF_SCHEDULE"
          incremental: "INC_SCHEDULE"
    

    מחליפים את המשתנים הבאים:

    • ‫BACKUP_PLAN_NAME: השם של קובץ המניפסט BackupPlan. לדוגמה, my-backup-plan-1.

    • ‫DBCLUSTER_NAME: השם של אשכול מסד הנתונים שהגדרתם בשלב יצירת אשכול.

    • ‫BUCKET_NAME: השם של קטגוריית ה-S3 שיצרתם.

    • ‫BUCKET_PATH: הנתיב לספרייה בקטגוריית S3 שאליה הגיבויים ייכתבו. חובה לציין נתיב מוחלט שמתחיל ב-/. לדוגמה, /backups.

    • ‫ENDPOINT_URL: כתובת URL של נקודת קצה בהתאמה אישית לחיבור לתוכנה שתואמת ל-S3, כמו MinIO. לדוגמה, http://minio.example.com:9000. בקטגוריות של Amazon S3, לא צריך לספק כתובת URL של נקודת קצה.

    • ‫REGION_ (אופציונלי): אזור של קטגוריית האחסון. נדרש כשמתחברים לקטגוריות סטנדרטיות ב-Amazon S3 או לתוכנה שתואמת ל-S3, שבה נאכפת אימות האזור.

    • ‫SECRET_NAME: הפניה למשאב Secret שיצרתם קודם, שמכיל את ACCESS_KEY_ID ו-SECRET_ACCESS_KEY.

    • RETAIN_DAYS (אופציונלי): מספר הימים לשמירת הגיבויים לפני שהם יימחקו אוטומטית.

    • FULL_SCHEDULE (אופציונלי): ביטוי לתזמון cron לגיבויים מלאים. לדוגמה, 0 2 * * *.

    • DIFF_SCHEDULE (אופציונלי): ביטוי ללוח זמנים של cron לגיבויים דיפרנציאליים. לדוגמה, 0 2 * * *.

    • INC_SCHEDULE (אופציונלי): ביטוי לתיזמון cron לגיבויים מצטברים. לדוגמה, 0 2 * * *.

  2. מיישמים את תוכנית הגיבוי באחת מהשיטות הבאות:

    alloydbctl

    1. מימוש המשאב BackupPlan:

      alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "BACKUP_PLAN_MANIFEST"

      מחליפים את המשתנים הבאים:

      • ‫DEPLOYMENT_SPEC_PATH: הנתיב למפרט הפריסה שיצרתם בקטע התקנת רכיבי AlloyDB Omni.

      • ‫BACKUP_PLAN_MANIFEST: הנתיב אל BackupPlan המניפסט שיצרתם קודם.

    2. מוודאים ששדה הסטטוס, status.phase, של קובץ המניפסט BackupPlan הוא Ready. אם קובץ המניפסט לא מוכן, צריך לחכות עד שהוא יהיה מוכן:

      alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t BackupPlan -n BACKUP_PLAN_NAME -o yaml

    Ansible

    1. יוצרים מדריך הפעלה למניפסט BackupPlan:

      - name: BACKUP_PLAN_PLAYBOOK_NAME
        hosts: localhost
        vars:
          ansible_user: ANSIBLE_USER
          ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE
        roles:
          - role: google.alloydbomni_orchestrator.backup
      

      מחליפים את המשתנים הבאים:

      • ‫BACKUP_PLAN_PLAYBOOK_NAME: השם של קובץ ה-playbook של Ansible. לדוגמה, My BackupPlan. חשוב לשים לב לנתיב של ספר ההפעלה, כי תצטרכו אותו בשלב הבא.

      • ‫ANSIBLE_USER: השם של משתמש מערכת ההפעלה שמשמש את Ansible כדי להתחבר לצמתים של AlloyDB Omni.

      • ‫ANSIBLE_SSH_PRIVATE_KEY_FILE: המפתח הפרטי שמשמש את Ansible לחיבור לצמתים של AlloyDB Omni באמצעות SSH.

    2. מימוש המשאב BackupPlan:

      ansible-playbook BACKUP_PLAN_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" \
        -e resource_spec="BACKUP_PLAN_MANIFEST"

      מחליפים את המשתנים הבאים:

      • ‫BACKUP_PLAN_PLAYBOOK: הנתיב ל-playbook שיצרתם בשביל BackupPlan קובץ המניפסט קודם.

      • ‫DEPLOYMENT_SPEC_PATH: הנתיב למפרט הפריסה שיצרתם בקטע התקנת רכיבי AlloyDB Omni.

      • ‫BACKUP_PLAN_MANIFEST: הנתיב אל BackupPlan המניפסט שיצרתם קודם.

    3. יוצרים status.yaml playbook אם עדיין לא עשיתם את זה. מידע על יצירת תוכנית הפעולה זמין במאמר הצגת הסטטוס ורשימת משאבי הגיבוי.

    4. מוודאים ששדה הסטטוס, status.phase, של קובץ המניפסט BackupPlan הוא Ready. אם קובץ המניפסט לא מוכן, צריך לחכות עד שהוא יהיה מוכן:

      ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=BackupPlan \
        -e resource_name=BACKUP_PLAN_NAME

עדכון של תוכנית גיבוי

כדי לעדכן תוכנית גיבוי ולשנות את לוח הזמנים של הגיבוי, לשנות את תקופת השמירה או להשהות גיבויים מתוזמנים, צריך לשנות את קובץ המניפסט BackupPlan ואז להחיל אותו מחדש.

  1. פותחים את קובץ המניפסט BackupPlan שיצרתם במאמר יצירת תוכנית גיבוי.

  2. משנים את השדות שרוצים לעדכן.

    • כדי לעדכן את תזמון הגיבויים, משנים את ביטויי ה-cron בקטע backupSchedules.
    • כדי לעדכן את תקופת השמירה, משנים את הערך של backupRetainDays.
    • כדי להשהות גיבויים מתוזמנים, מוסיפים את השדה paused לקטע spec ומגדירים אותו לערך true. כדי להמשיך את הגיבויים, צריך להגדיר את השדה לערך false או להסיר את השדה.

    לדוגמה, בדוגמה הבאה מעדכנים את מספר ימי השמירה ל-30, משנים את לוחות הזמנים full ו-differential, מוסיפים לוח זמנים incremental ומשהים את תוכנית הגיבוי:

    BackupPlan:
      metadata:
        name: BACKUP_PLAN_NAME
      spec:
        dbclusterRef: DBCLUSTER_NAME
        backupLocation:
          type: GCS
          gcsOptions:
            bucket: BUCKET_NAME
            key: BUCKET_PATH
            secretRef:
              name: SECRET_NAME
        backupRetainDays: 30
        backupSchedules:
          full: "0 4 * * *"
          differential: "0 0 * * 0"
          incremental: "0 12 * * *"
        paused: true
    
  3. כדי להחיל את תוכנית הגיבוי המעודכנת, משתמשים באחת מהשיטות הבאות:

    alloydbctl

    1. מימוש המשאב BackupPlan:

      alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "BACKUP_PLAN_MANIFEST"

      מחליפים את המשתנים הבאים:

      • ‫DEPLOYMENT_SPEC_PATH: הנתיב למפרט הפריסה שיצרתם בקטע התקנת רכיבי AlloyDB Omni.

      • ‫BACKUP_PLAN_MANIFEST: הנתיב למניפסט BackupPlan ששיניתם.

    2. מוודאים ששדה הסטטוס, status.phase, של קובץ המניפסט BackupPlan הוא Ready. אם קובץ המניפסט לא מוכן, צריך לחכות עד שהוא יהיה מוכן:

      alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t BackupPlan -n BACKUP_PLAN_NAME -o yaml

    Ansible

    1. מחילים את משאב BackupPlan המעודכן באמצעות ספר ההפעלה שיצרתם בשלב יצירת תוכנית גיבוי:

      ansible-playbook BACKUP_PLAN_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" \
        -e resource_spec="BACKUP_PLAN_MANIFEST"

      מחליפים את המשתנים הבאים:

      • ‫BACKUP_PLAN_PLAYBOOK: הנתיב ל-playbook שיצרתם עבור מניפסט BackupPlan.

      • ‫DEPLOYMENT_SPEC_PATH: הנתיב למפרט הפריסה שיצרתם בקטע התקנת רכיבי AlloyDB Omni.

      • ‫BACKUP_PLAN_MANIFEST: הנתיב למניפסט BackupPlan ששיניתם.

    2. יוצרים status.yaml playbook אם עדיין לא עשיתם את זה. מידע על יצירת תוכנית הפעולה זמין במאמר הצגת הסטטוס ורשימת משאבי הגיבוי.

    3. מוודאים ששדה הסטטוס, status.phase, של קובץ המניפסט BackupPlan הוא Ready. אם קובץ המניפסט לא מוכן, צריך לחכות עד שהוא יהיה מוכן לפני האימות:

      ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=BackupPlan \
        -e resource_name=BACKUP_PLAN_NAME

מחיקת תוכנית גיבוי

כדי למחוק תוכנית גיבוי, משתמשים באחת מהשיטות הבאות:

alloydbctl

alloydbctl delete -d "DEPLOYMENT_SPEC_PATH" -t BackupPlan -n BACKUP_PLAN_NAME

מחליפים את המשתנים הבאים:

  • ‫DEPLOYMENT_SPEC_PATH: הנתיב למפרט הפריסה שיצרתם בקטע התקנת רכיבי AlloyDB Omni.

  • ‫BACKUP_PLAN_NAME: השם של קובץ המניפסט BackupPlan שרוצים למחוק.

Ansible

  1. יוצרים מדריך למחיקת המניפסט של BackupPlan.

    - name: BACKUP_PLAN_DELETE_PLAYBOOK_NAME
      hosts: localhost
      vars:
        ansible_user: ANSIBLE_USER
        ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE
      roles:
        - role: google.alloydbomni_orchestrator.delete
    

    מחליפים את המשתנים הבאים:

    • ‫BACKUP_PLAN_DELETE_PLAYBOOK_NAME: השם של קובץ ה-playbook של Ansible.

    • ‫ANSIBLE_USER: משתמש במערכת ההפעלה שמשמש את Ansible כדי להתחבר לצמתים של AlloyDB Omni.

    • ‫ANSIBLE_SSH_PRIVATE_KEY_FILE: המפתח הפרטי שמשמש את Ansible לחיבור לצמתים של AlloyDB Omni באמצעות SSH.

  2. מריצים את הפקודה ansible-playbook כדי למחוק את המניפסט BackupPlan.

    ansible-playbook BACKUP_PLAN_DELETE_PLAYBOOK_NAME -i "DEPLOYMENT_SPEC_PATH" -e resource_type=BackupPlan \
      -e resource_name=BACKUP_PLAN_NAME

    מחליפים את המשתנים הבאים:

    • ‫BACKUP_PLAN_DELETE_PLAYBOOK_NAME: הנתיב ל-playbook שיצרתם למחיקת BackupPlanה-manifest בשלב הקודם.

    • ‫DEPLOYMENT_SPEC_PATH: הנתיב אל מפרט הפריסה שיצרתם בקטע התקנת רכיבי AlloyDB Omni.

    • ‫BACKUP_PLAN_NAME: השם של קובץ המניפסט BackupPlan שרוצים למחוק.

יצירת גיבוי

כדי ליצור גיבוי ולהתחיל אותו, אפשר להשתמש באחת מהשיטות הבאות:

alloydbctl

  1. יוצרים קובץ מניפסט Backup בפורמט הבא:

    Backup:
      metadata:
        name: BACKUP_NAME
      spec:
        backupPlanRef: BACKUP_PLAN_NAME
        dbclusterRef: DBCLUSTER_NAME
        type: full
    

    מחליפים את המשתנים הבאים:

    • ‫BACKUP_NAME: השם של מניפסט Backup. לדוגמה, my-backup-1.

    • ‫BACKUP_PLAN_NAME: השם של BackupPlanהמאניפסט שיצרתם קודם. לדוגמה: my-backup-plan-1.

    • ‫DBCLUSTER_NAME: השם של אשכול מסד הנתונים שהגדרתם בשלב יצירת אשכול.

    • ‫type (אופציונלי): סוג ההפעלה של הגיבוי, שאפשר להגדיר אותו כ-full, diff או incr. ברירת המחדל היא full.

  2. החלת המניפסט Backup:

    alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "BACKUP_MANIFEST"

    מחליפים את המשתנים הבאים:

    • ‫DEPLOYMENT_SPEC_PATH: הנתיב אל מפרט הפריסה שיצרתם בקטע התקנת רכיבי AlloyDB Omni.

    • ‫BACKUP_MANIFEST: הנתיב אל Backup המניפסט שיצרתם קודם.

  3. מוודאים ששדה הסטטוס, status.phase, במניפסט Backup הוא Succeeded. אם המניפסט לא הצליח, מחכים עד שהוא יצליח:

    alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t Backup -n BACKUP_NAME -o yaml
  4. כדי לוודא שקובצי הגיבוי זמינים בדלי, בודקים אם התיקייה /backup/db קיימת.

Ansible

  1. יוצרים קובץ מניפסט Backup בפורמט הבא:

    Backup:
      metadata:
        name: BACKUP_NAME
      spec:
        backupPlanRef: BACKUP_PLAN_NAME
        dbclusterRef: DBCLUSTER_NAME
        type: full
    

    מחליפים את המשתנים הבאים:

    • ‫BACKUP_NAME: השם של מניפסט Backup. לדוגמה, my-backup-1.

    • ‫BACKUP_PLAN_NAME: השם של BackupPlanהמאניפסט שיצרתם קודם. לדוגמה: my-backup-plan-1.

    • ‫DBCLUSTER_NAME: השם של אשכול מסד הנתונים שהגדרתם בשלב יצירת אשכול.

    • ‫type (אופציונלי): סוג ההפעלה של הגיבוי, שאפשר להגדיר אותו כ-full, diff או incr. ברירת המחדל היא full.

  2. יוצרים מדריך הפעלה למניפסט Backup:

    - name: BACKUP_PLAYBOOK_NAME
      hosts: localhost
      vars:
        ansible_user: ANSIBLE_USER
        ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE
      roles:
        - role: google.alloydbomni_orchestrator.backup
    

    מחליפים את המשתנים הבאים:

    • ‫BACKUP_PLAYBOOK_NAME: השם של קובץ ה-playbook של Ansible. לדוגמה, My Backup.

    • ‫ANSIBLE_USER: השם של משתמש מערכת ההפעלה שמשמש את Ansible כדי להתחבר לצמתים של AlloyDB Omni.

    • ‫ANSIBLE_SSH_PRIVATE_KEY_FILE: המפתח הפרטי שמשמש את Ansible לחיבור לצמתים של AlloyDB Omni באמצעות SSH.

  3. החלת המניפסט Backup:

    ansible-playbook BACKUP_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" \
      -e resource_spec="BACKUP_MANIFEST"

    מחליפים את המשתנים הבאים:

    • ‫BACKUP_PLAYBOOK: הנתיב ל-playbook שיצרתם עבור מניפסט Backup שיצרתם קודם.

    • ‫DEPLOYMENT_SPEC_PATH: הנתיב למפרט הפריסה שיצרתם בקטע התקנת רכיבי AlloyDB Omni.

    • ‫BACKUP_MANIFEST: הנתיב אל Backup המניפסט שיצרתם קודם.

  4. יוצרים status.yaml playbook אם עדיין לא עשיתם את זה. מידע על יצירת תוכנית הפעולה זמין במאמר הצגת הסטטוס ורשימת משאבי הגיבוי.

  5. מוודאים ששדה הסטטוס, status.phase, במניפסט Backup הוא Succeeded. אם המניפסט לא הצליח, צריך לחכות עד שהוא יצליח לפני האימות:

    ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=Backup \
      -e resource_name=BACKUP_NAME
  6. כדי לוודא שקובצי הגיבוי זמינים בדלי, בודקים אם התיקייה /backup/db קיימת.

מחיקת גיבוי

כדי למחוק גיבוי, מריצים אחת מהפקודות הבאות:

alloydbctl

alloydbctl delete -d "DEPLOYMENT_SPEC_PATH" -t Backup -n BACKUP_NAME

מחליפים את המשתנים הבאים:

  • ‫DEPLOYMENT_SPEC_PATH: הנתיב למפרט הפריסה שיצרתם בקטע התקנת רכיבי AlloyDB Omni.

  • ‫BACKUP_NAME: השם של מניפסט Backup שרוצים למחוק.

Ansible

  1. יוצרים מדריך למחיקת המניפסט של Backup.

    - name: BACKUP_DELETE_PLAYBOOK_NAME
      hosts: localhost
      vars:
        ansible_user: ANSIBLE_USER
        ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE
      roles:
        - role: google.alloydbomni_orchestrator.delete
    

    מחליפים את המשתנים הבאים:

    • ‫BACKUP_DELETE_PLAYBOOK_NAME: השם של קובץ ה-playbook של Ansible.

    • ‫ANSIBLE_USER: משתמש במערכת ההפעלה שמשמש את Ansible כדי להתחבר לצמתים של AlloyDB Omni.

    • ‫ANSIBLE_SSH_PRIVATE_KEY_FILE: המפתח הפרטי שמשמש את Ansible לחיבור לצמתים של AlloyDB Omni באמצעות SSH.

  2. מריצים את הפקודה ansible-playbook כדי למחוק את המניפסט Backup.

    ansible-playbook BACKUP_DELETE_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" -e resource_type=Backup \
      -e resource_name=BACKUP_NAME

    מחליפים את המשתנים הבאים:

    • ‫BACKUP_DELETE_PLAYBOOK: הנתיב ל-playbook שיצרתם למחיקת Backup המניפסט בשלב הקודם.

    • ‫DEPLOYMENT_SPEC_PATH: הנתיב למפרט הפריסה שיצרתם בקטע התקנת רכיבי AlloyDB Omni.

    • BACKUP_NAME: השם של מניפסט Backup שרוצים למחוק.

שחזור מגיבוי או מנקודה מסוימת בזמן (PITR)

כדי לשחזר נתונים מגיבוי, צריך להחיל Restoreמניפסט. הכלי לניהול RPM מבצע שחזור במקום, כלומר הוא משנה ישירות את אשכול מסד הנתונים של היעד בלי להפעיל אשכול משוכפל או לדרוש הפעלה ידנית של סקריפט.

כדי לשחזר מגיבוי, אפשר להשתמש באחת מהשיטות הבאות:

alloydbctl

  1. יוצרים קובץ מניפסט Restore בפורמט הבא:

    • כדי לשחזר מגיבוי ספציפי עם שם:
    Restore:
      metadata:
        name: RESTORE_NAME
      spec:
        sourceDBCluster: DBCLUSTER_NAME
        backup: BACKUP_NAME
    
    • כדי לבצע שחזור מנקודה מסוימת בזמן (PITR):

      Restore:
        metadata:
          name: RESTORE_NAME
        spec:
          sourceDBCluster: DBCLUSTER_NAME
          pointInTime: "TIMESTAMP"
      

    מחליפים את המשתנים הבאים:

    • ‫RESTORE_NAME: השם של מניפסט Restore. לדוגמה, my-restore-1.

    • ‫DBCLUSTER_NAME: השם של אשכול מסד הנתונים של היעד לשחזור במקום.

    • ‫BACKUP_NAME: שם מניפסט Backup שהושלם שממנו רוצים לשחזר.

    • ‫TIMESTAMP: חותמת זמן RFC 3339 שמזהה את הנקודה המדויקת בזמן שאליה רוצים לשחזר. לדוגמה, 2026-06-19T14:30:00Z.

  2. החלת המניפסט Restore:

    alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "RESTORE_MANIFEST"

    מחליפים את המשתנים הבאים:

    • ‫DEPLOYMENT_SPEC_PATH: הנתיב למפרט הפריסה שיצרתם בקטע התקנת רכיבי AlloyDB Omni.

    • ‫RESTORE_MANIFEST: הנתיב לקובץ מפרט המניפסט Restore שיצרתם בשלב 1.

  3. מוודאים ש-status.phase במניפסט Restore עובר ל-Succeeded:

    alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t Restore -n RESTORE_NAME -o yaml

Ansible

  1. יוצרים קובץ מניפסט Restore בפורמט הבא:

    • כדי לשחזר מגיבוי ספציפי עם שם:
    Restore:
      metadata:
        name: RESTORE_NAME
      spec:
        sourceDBCluster: DBCLUSTER_NAME
        backup: BACKUP_NAME
    
    • כדי לבצע שחזור מנקודה מסוימת בזמן (PITR):

      Restore:
        metadata:
          name: RESTORE_NAME
        spec:
          sourceDBCluster: DBCLUSTER_NAME
          pointInTime: "TIMESTAMP"
      

    מחליפים את המשתנים הבאים:

    • ‫RESTORE_NAME: השם של מניפסט Restore. לדוגמה, my-restore-1.

    • ‫DBCLUSTER_NAME: השם של אשכול מסד הנתונים של היעד לשחזור במקום.

    • ‫BACKUP_NAME: שם מניפסט Backup שהושלם שממנו רוצים לשחזר.

    • ‫TIMESTAMP: חותמת זמן RFC 3339 שמזהה את הנקודה המדויקת בזמן שאליה רוצים לשחזר. לדוגמה, 2026-06-19T14:30:00Z.

  2. יוצרים מדריך הפעלה למניפסט Restore:

    - name: RESTORE_PLAYBOOK_NAME
      hosts: localhost
      vars:
        ansible_user: ANSIBLE_USER
        ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE
      roles:
        - role: google.alloydbomni_orchestrator.restore
    

    מחליפים את המשתנים הבאים:

    • ‫RESTORE_PLAYBOOK_NAME: השם של Ansible playbook.

    • ‫ANSIBLE_USER: משתמש במערכת ההפעלה שמשמש את Ansible כדי להתחבר לצמתים של AlloyDB Omni.

    • ‫ANSIBLE_SSH_PRIVATE_KEY_FILE: המפתח הפרטי שמשמש את Ansible לחיבור לצמתים של AlloyDB Omni באמצעות SSH.

  3. החלת המניפסט Restore:

    ansible-playbook RESTORE_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" \
      -e resource_spec="RESTORE_MANIFEST"

    מחליפים את המשתנים הבאים:

    • ‫RESTORE_PLAYBOOK: הנתיב ל-playbook שיצרתם למניפסט Restore בשלב 2.

    • ‫DEPLOYMENT_SPEC_PATH: הנתיב למפרט הפריסה.

    • ‫RESTORE_MANIFEST: הנתיב לקובץ מפרט המניפסט Restore שיצרתם בשלב 1.

  4. יוצרים status.yaml playbook אם עדיין לא עשיתם את זה. מידע על יצירת תוכנית הפעולה זמין במאמר הצגת הסטטוס ורשימת משאבי הגיבוי.

  5. מוודאים ש-status.phase במניפסט Restore עובר ל-Succeeded:

    ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=Restore \
      -e resource_name=RESTORE_NAME

צפייה בסטטוס וברשימת משאבי הגיבוי

כדי לראות את הסטטוס של משאבי BackupPlan, Backup ו-Restore או את הרשימה שלהם, אפשר להשתמש באחת מהשיטות הבאות:

alloydbctl

כדי להציג רשימה של כל המשאבים מסוג מסוים, מריצים את הפקודה alloydbctl get:

alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t RESOURCE_TYPE

כדי לראות את הסטטוס של משאב ספציפי, מריצים את הפקודה alloydbctl get עם שם המשאב ופורמט הפלט שמוגדר ל-yaml:

alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t RESOURCE_TYPE -n RESOURCE_NAME -o yaml

מחליפים את המשתנים הבאים:

  • ‫DEPLOYMENT_SPEC_PATH: הנתיב למפרט הפריסה.
  • ‫RESOURCE_TYPE: סוג המשאב. מגדירים את הערך BackupPlan, ‏Backup או Restore.
  • ‫RESOURCE_NAME: השם של המשאב שרוצים לראות את הסטטוס שלו.

Ansible

כדי להציג את הסטטוס של משאבים או את רשימת המשאבים באמצעות Ansible, משתמשים בתפקיד google.alloydbomni_orchestrator.status.

  1. יוצרים playbook, לדוגמה status.yaml, בפורמט הבא:

    - name: Get resource status
      hosts: localhost
      vars:
        ansible_user: ANSIBLE_USER
        ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE
      roles:
      - role: google.alloydbomni_orchestrator.status
    

    מחליפים את המשתנים הבאים:

    • ‫ANSIBLE_USER: משתמש במערכת ההפעלה ש-Ansible משתמש בו כדי להתחבר לצמתים.
    • ‫ANSIBLE_SSH_PRIVATE_KEY_FILE: מפתח פרטי שמשמש את Ansible לחיבור לצמתים באמצעות SSH.
  2. מפעילים את חוברת ההדרכה.

    כדי להציג רשימה של כל המשאבים מסוג מסוים, מריצים את פלייבוק עם המשתנה resource_type:

    ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=RESOURCE_TYPE

    כדי לראות את הסטטוס של משאב ספציפי, מריצים את ה-playbook עם המשתנים resource_type ו-resource_name:

    ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=RESOURCE_TYPE \
      -e resource_name=RESOURCE_NAME

    מחליפים את המשתנים הבאים:

    • ‫DEPLOYMENT_SPEC_PATH: הנתיב למפרט הפריסה.
    • ‫RESOURCE_TYPE: סוג המשאב. מגדירים את הערך BackupPlan, ‏Backup או Restore.
    • ‫RESOURCE_NAME: השם של המשאב שרוצים לראות את הסטטוס שלו.

מגבלות

  • אם הסטטוס BackupPlan מופיע עם ConfigurationFailed ועם failed to create stanza (קוד יציאה 39), אפשר להמשיך את תהליך ההתאמה על ידי הקצאת התפקיד roles/storage.objectAdmin בדלי והחלה מחדש של המניפסט. אין צורך למחוק את BackupPlan.