גיבוי מכונות Cloud SQL בכספת גיבויים

בדף הזה מוסבר איך לגבות מכונות של Cloud SQL בכספת גיבוי, שמאפשרת לשמור על הנתונים ללא שינוי ולאכוף את תקופת השמירה.

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

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

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

  1. מפעילים את Backup and DR API במקום שבו נמצאים המכונות של Cloud SQL.

    הפעלה של ה-API

  2. יצירת כספת גיבוי.

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

  4. מקצים תפקידים והרשאות ב-IAM למשתמש הגיבוי.

  5. נותנים גישה לכספת הגיבוי בפרויקט ב-Cloud SQL.

  6. מגדירים את Observability Analytics בקטגוריה כדי לעקוב אחרי משימות הגיבוי של Backup and DR.

  7. במכונות שמופעל בהן CMEK: אם מכונת המקור ב-Cloud SQL מוגנת באמצעות מפתח הצפנה בניהול הלקוח (CMEK), צריך להקצות את התפקיד roles/cloudkms.cryptoKeyEncrypterDecrypter בניהול הזהויות והרשאות הגישה (IAM) לסוכן השירות של Backup and DR. ההרשאה הזו נדרשת במפתח של Cloud Key Management Service שמשמש את מכונת המקור ב-Cloud SQL.

    סוכן השירות של Backup and DR נמצא בפרויקט שבו נמצאת כספת הגיבוי. צריך להקצות את התפקיד הזה לחשבון השירות לפני שמנסים להגן על מכונות Cloud SQL שמופעל בהן CMEK.

תפקידים והרשאות של IAM למשתמש הגיבוי

כדי לקבל את ההרשאות שנדרשות להגדרת גיבויים מתוזמנים או להפעלת גיבויים על פי דרישה, בקשו מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט של כספת הגיבוי:

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

ההרשאות הנדרשות

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

  • backupdr.backupPlans.list
  • backupdr.backupPlanAssociations.createForCloudSqlInstance
  • backupdr.backupPlanAssociations.fetchForCloudSqlInstance
  • backupdr.backupPlanAssociations.updateForCloudSqlInstance
  • backupdr.backupPlanAssociations.list
  • backupdr.backupPlanAssociations.getForCloudSqlInstance
  • backupdr.backupPlanAssociations.triggerBackupForCloudSqlInstance
  • backupdr.backupPlanAssociations.deleteForCloudSqlInstance
  • backupdr.backupPlans.useForCloudSqlInstance
  • backupdr.locations.list
  • backupdr.operations.get
  • cloudasset.assets.searchAllResources

יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

הרשאות דינמיות שנדרשות לכל קריאה ל-API

בטבלה הבאה מפורטות ההרשאות הדינמיות שנדרשות לכל קריאה ל-API:

משאב הפעולה שתבוצע במשאב ההרשאות שנדרשות לכל קריאה ל-API הפרויקט שרוצים להקצות לו הרשאה
כספת גיבוי יצירת כספת גיבוי backupdr.backupVaults.create פרויקט ניהול
מחיקת כספת גיבוי backupdr.backupVaults.delete פרויקט ניהול
עדכון כספת הגיבוי backupdr.backupVaults.update פרויקט ניהול
הצגת רשימה של כספות גיבוי backupdr.backupVaults.list פרויקט ניהול
קבלת כספת גיבוי backupdr.backupVaults.get פרויקט ניהול
תוכנית גיבוי יצירת תוכנית גיבוי backupdr.backupPlans.create פרויקט ניהול
מחיקת תוכנית גיבוי backupdr.backupPlans.delete פרויקט ניהול
קבלת תוכנית גיבוי backupdr.backupPlans.get פרויקט ניהול
הצגת רשימה של תוכניות גיבוי backupdr.backupPlans.list פרויקט ניהול
עדכון תוכנית הגיבוי backupdr.backupPlans.update פרויקט ניהול
קבלת גרסה של תוכנית גיבוי backupdr.backupPlanRevisions.get פרויקט ניהול
הצגת רשימה של גרסאות של תוכנית גיבוי backupdr.backupPlanRevisions.list פרויקט ניהול
יצירת גרסה של תוכנית גיבוי backupdrproducer.backupPlanRevisions.create פרויקט ניהול
מחיקת גרסה של תוכנית גיבוי backupdrproducer.backupPlanRevisions.delete פרויקט ניהול
שיוכים של תוכניות גיבוי יצירת שיוך של תוכנית גיבוי cloudsql.instances.updateBackupDrConfig
backupdr.backupPlanAssociations.createForCloudSqlInstance
backupdr.backupPlans.useForCloudSqlInstance
פרויקט של עומס עבודה
פרויקט של עומס עבודה
פרויקט ניהול
מחיקת השיוך של תוכנית הגיבוי backupdr.backupPlanAssociations.deleteForCloudSqlInstance
cloudsql.instances.updateBackupDrConfig
פרויקט של עומס עבודה
פרויקט של עומס עבודה
הפעלת גיבוי על פי דרישה בשיוך של תוכנית גיבוי backupdr.backupPlanAssociations.triggerBackupForCloudSqlInstance פרויקט של עומס עבודה
קבלת שיוך של תוכנית גיבוי backupdr.backupPlanAssociations.getForCloudSqlInstance פרויקט של עומס עבודה
הצגת רשימה של שיוכי תוכניות גיבוי backupdr.backupPlanAssociations.list פרויקט של עומס עבודה
אחזור השיוכים של תוכנית הגיבוי backupdr.backupPlanAssociations.fetchForCloudSqlInstance פרויקט של עומס עבודה
שינוי השיוכים של תוכנית הגיבוי backupdr.backupPlanAssociations.updateForCloudSqlInstance פרויקט של עומס עבודה
מקור הנתונים קבלת מקור נתונים backupdr.bvdataSources.get פרויקט ניהול
מקור נתונים של רשימה backupdr.backupPlanAssociations.list פרויקט ניהול
שחזור מערכת מנקודה מסוימת בזמן (PITR) backupdr.bvdataSources.useReadOnlyForCloudSqlInstance פרויקט ניהול
גיבויים קבלת גיבוי backupdr.bvbackups.get פרויקט ניהול
הצגת רשימה של גיבויים backupdr.bvbackups.list פרויקט ניהול
אחזור גיבויים backupdr.bvbackups.fetchForCloudSqlInstance פרויקט ניהול
מחיקת הגיבוי backupdr.bvbackups.delete פרויקט ניהול
שחזור הגיבוי backupdr.bvbackups.useReadOnlyForCloudSqlInstance פרויקט ניהול
הפניות למקורות נתונים קבלת הפניה למקור נתונים backupdr.dataSourceReferences.getForCloudSqlInstance פרויקט של עומס עבודה
הצגת רשימה של הפניות למקורות נתונים backupdr.dataSourceReferences.list פרויקט של עומס עבודה
אחזור של הפניות למקורות נתונים backupdr.dataSourceReferences.fetchForCloudSqlInstance פרויקט של עומס עבודה
תפעול הצגת רשימה של פעולות backupdr.operations.list הפרויקט הרלוונטי
קבלת פעולות backupdr.operations.get הפרויקט הרלוונטי

מתן גישה לכספת הגיבוי בפרויקט Cloud SQL

כדי לגבות מכונה של Cloud SQL בפרויקט שונה מהפרויקט שבו נוצרה כספת הגיבוי, צריך להקצות את תפקיד ה-IAM מפעיל Cloud SQL של Backup and DR (roles/backupdr.cloudSqlOperator) לסוכן השירות של כספת הגיבוי בפרויקט של Cloud SQL. אם הפרויקט של כספת הגיבוי שבו יאוחסנו הגיבויים שונה מהפרויקט של Cloud SQL, צריך להקצות את התפקיד לסוכן השירות של כספת הגיבוי בפרויקט של Cloud SQL.

כדי לגבות מכונה של Cloud SQL באותו פרויקט שבו נוצרה כספת הגיבוי, לא צריך להקצות תפקידים.

במאמר איך נותנים תפקיד לסוכן השירות מוסבר איך נותנים תפקידים לסוכן השירות של כספת הגיבוי בפרויקט שרוצים לגבות.

הגדרת גיבוי מתוזמן

כך מגדירים גיבוי מתוזמן למכונות Cloud SQL:

המסוף

  1. נכנסים לדף Vaulted backups במסוף Google Cloud .

    מעבר אל Vaulted Backups

  2. לוחצים על תזמון גיבוי.

  3. ברשימה Resource Type, בוחרים באפשרות Cloud SQL.

  4. ברשימה Project, בוחרים את הפרויקט שבו נמצא המכונה של Cloud SQL.

  5. ברשימה Region, בוחרים את האזור שבו נמצאים המכונות.

  6. ברשימה משאבים, לוחצים על עיון. בוחרים את המכונה של Cloud SQL שרוצים לגבות ולוחצים על Done.

  7. לוחצים על Continue.

  8. ברשימה Backup plan, לוחצים על Select.

  9. בוחרים את תוכנית הגיבוי שרוצים להגן באמצעותה על המכונות של Cloud SQL.

  10. לוחצים על סיום.

  11. בודקים את פרטי הגיבוי ולוחצים על תזמון.

gcloud

  1. יוצרים תוכנית גיבוי ומכונה של Cloud SQL.

  2. מגדירים גיבוי מתוזמן באמצעות הפקודה gcloud backup-dr backup-plan-associations create:

      gcloud backup-dr backup-plan-associations create BACKUP_PLAN_ASSOCIATION_NAME \
          --location=CSQL_REGION \
          --project=CSQL_PROJECT_ID \
          --resource=projects/CSQL_PROJECT_ID/instances/CSQL_INSTANCE_ID \
          --resource-type=sqladmin.googleapis.com/Instance \
          --backup-plan=projects/PROJECT_ID/locations/LOCATION/backupPlans/BACKUP_PLAN
    

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

    • ‫BACKUP_PLAN_ASSOCIATION_NAME: השם של השיוך לתוכנית הגיבוי.

    • ‫CSQL_REGION: האזור שבו נמצאים המכונות של Cloud SQL.

    • ‫CSQL_PROJECT_ID: שם הפרויקט שבו נמצאים המכונות של Cloud SQL.

    • ‫CSQL_INSTANCE_ID: מזהה המכונה ב-Cloud SQL.

    • ‫PROJECT_ID: שם הפרויקט שבו נמצאות תוכניות הגיבוי.

    • ‫LOCATION: המיקום של המכונה.

    • ‫BACKUP_PLAN: השם של תוכנית הגיבוי.

Terraform

אפשר להשתמש במשאב של Terraform כדי להגדיר גיבוי מתוזמן.


# Before creating a backup plan association, you need to create backup plan (google_backup_dr_backup_plan)
# and Cloud SQL Instance (google_sql_database_instance).
resource "google_backup_dr_backup_plan_association" "csql_association" {
  provider                   = google-beta
  location                   = "us-central1"
  backup_plan_association_id = "my-csql-bpa"
  resource                   = "projects/${google_sql_database_instance.default.project}/instances/${google_sql_database_instance.default.name}"
  resource_type              = "sqladmin.googleapis.com/Instance"
  backup_plan                = google_backup_dr_backup_plan.csql_default.name
}

שינוי תוכנית הגיבוי שמשויכת למכונה של Cloud SQL

אתם יכולים להחליף את תוכנית הגיבוי שחלה על מכונה של Cloud SQL בתוכנית גיבוי אחרת. תוכנית הגיבוי שאתם רוצים לעבור אליה צריכה לעמוד בקריטריונים הבאים:

  • תוכנית הגיבוי נמצאת באותה כספת גיבוי.

  • תוכנית הגיבוי נמצאת באותו אזור כמו המכונה של Cloud SQL.

כדי לשנות את תוכנית הגיבוי שמשויכת למכונה של Cloud SQL, פועלים לפי ההוראות הבאות.

המסוף

  1. נכנסים לדף Vaulted backups של Backup and DR במסוף Google Cloud .

    מעבר אל Vaulted Backups

    בדף Vaulted backups מופיעים רק המכונות שהוחלו עליהן תוכניות גיבוי (או שהוחלו עליהן בעבר), או שהגיבויים שלהן מאוחסנים בכספת גיבוי בפרויקט.

  2. בוחרים את מקור הנתונים שרוצים להקצות לו תוכנית אחרת. בדף הפרטים של הגיבוי או בתפריט , לוחצים על Change backup plan. בחלון Select a backup plan מופיעות רק תוכניות הגיבוי שרלוונטיות למכונה הזו.

  3. בוחרים תוכנית גיבוי ולוחצים על Apply.

gcloud

  • לשנות את תוכנית הגיבוי שהוקצתה.

      gcloud backup-dr backup-plan-associations update BACKUP_PLAN_ASSOCIATION_NAME \
      --workload-project=INSTANCE_PROJECT_ID \
      --location=INSTANCE_REGION \
      --backup-plan=BACKUP_PLAN \
      --project=SELECTED_BACKUP_PLAN_PROJECT_ID
    

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

    • ‫BACKUP_PLAN_ASSOCIATION_NAME: השם של משאב השיוך של תוכנית הגיבוי.

    • ‫INSTANCE_PROJECT_ID: מזהה הפרויקט של המכונה ב-Cloud SQL.

    • INSTANCE_REGION: המיקום של מכונת Cloud SQL.

    • ‫BACKUP_PLAN: השם של תוכנית הגיבוי שאליה עוברים.

    • ‫SELECTED_BACKUP_PLAN_PROJECT_ID: מזהה הפרויקט של תוכנית הגיבוי שנבחרה.

הצגת רשימה של המכונות שמוגדר להן גיבוי מתוזמן

כדי להציג רשימה של מכונות Cloud SQL שנקבעו להן גיבויים, פועלים לפי ההוראות הבאות.

המסוף

  1. נכנסים לדף Vaulted backups במסוף Google Cloud .

    מעבר אל Vaulted Backups

  2. בחלק העליון של הטבלה, לוחצים על Filter table > Resource type. בוחרים באפשרות Cloud SQL. כך יוצגו רק מכונות Cloud SQL שמוגדרות להן תוכניות גיבוי, והגיבויים שלהן מאוחסנים בכספת גיבוי בפרויקט.

gcloud

מציגים את רשימת המכונות של Cloud SQL שתוזמנו להן גיבויים באמצעות הפקודה gcloud alpha backup-dr backup-plan-associations fetch-for-resource-type:

  gcloud alpha backup-dr backup-plan-associations fetch-for-resource-type sqladmin.googleapis.com/Instance \
  --location=LOCATION \
  --project=PROJECT_ID

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

  • ‫LOCATION: המיקום של הגיבויים המתוזמנים.

  • ‫PROJECT_ID: שם הפרויקט שבו נמצאים המכונות של Cloud SQL.

גיבויים על פי דרישה

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

כשיוצרים גיבוי על פי דרישה, אפשר לבחור כלל מתוכנית הגיבוי שמשויכת למכונה של Cloud SQL. הכלל הזה קובע מתי הגיבוי לפי דרישה יימחק. אפשר לבדוק את הסטטוס של משימת הגיבוי בדף Jobs. מידע נוסף מופיע במאמר מעקב אחרי משימות גיבוי ושחזור במסוף Google Cloud .

יצירת גיבוי על פי דרישה

כדי ליצור גיבוי על פי דרישה, פועלים לפי ההוראות הבאות.

המסוף

  1. נכנסים לדף Vaulted backups במסוף Google Cloud .

    מעבר אל Vaulted Backups

    בדף Vaulted backups מופיעים רק משאבי הנתונים שחלות עליהם תוכניות גיבוי, והגיבויים שלהם מאוחסנים בכספת גיבוי בפרויקט.

  2. בוחרים את המשאב שרוצים לגבות. בתפריט או בדף הפרטים של המשאב, לוחצים על Create on-demand backup.

  3. בחלון Create an on-demand backup, בוחרים כלל גיבוי ולוחצים על Create.

  4. כדי לראות את הסטטוס של משימת הגיבוי לפי דרישה, לוחצים על התראות.

gcloud

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

    gcloud backup-dr backup-plan-associations trigger-backup BACKUP_PLAN_ASSOCIATION_NAME \
    --backup-rule-id=RULE_ID \
    --project=PROJECT_ID \
    --location=LOCATION \
    [--no-async]
    

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

    • ‫BACKUP_PLAN_ASSOCIATION_NAME: השם של השיוך לתוכנית הגיבוי.

    • ‫RULE_ID: השם של כלל הגיבוי שרוצים לשייך כדי להריץ גיבויים על פי דרישה.

    • ‫PROJECT_ID: שם הפרויקט.

    • ‫LOCATION: המיקום של הגיבויים המתוזמנים.

הסרת ההגנה ממכונה של Cloud SQL

כדי להסיר את ההגנה ממכונה של Cloud SQL, צריך להסיר את תוכנית הגיבוי שחלה על המכונה. אם מסירים תוכנית גיבוי ממכונה של Cloud SQL, הגיבויים שנוצרו כשהתוכנית הייתה בשימוש לא נמחקים. עדיין אפשר לגשת לגיבויים הקיימים האלה ולנהל אותם עד שהתוקף שלהם יפוג.

כדי להסיר את ההגנה ממכונה של Cloud SQL:

המסוף

  1. נכנסים לדף Vaulted backups במסוף Google Cloud .

    מעבר אל Vaulted Backups

  2. לוחצים על השם של מסד הנתונים שרוצים להסיר ממנו את תוכנית הגיבוי.

  3. לוחצים על הסרת תוכנית הגיבוי.

gcloud

ביטול ההגנה על מכונה של Cloud SQL.

  gcloud backup-dr backup-plan-associations delete BACKUP_PLAN_ASSOCIATION_NAME \
  --project=PROJECT_ID \
  --location=LOCATION

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

  • ‫BACKUP_PLAN_ASSOCIATION_NAME: השם של השיוך לתוכנית הגיבוי שרוצים למחוק.

  • ‫PROJECT_ID: שם הפרויקט.

  • ‫LOCATION: המיקום של הגיבוי המתוזמן.

מגבלות

במכונות Cloud SQL שמוצפנות באמצעות CMEK, Backup and DR מאמת את ההרשאות באופן יזום. אם לסוכן השירות של Backup and DR מהפרויקט של כספת הגיבוי אין את התפקיד roles/cloudkms.cryptoKeyEncrypterDecrypter הנדרש במפתח ה-KMS של המכונה המקורית, לא תיווצר שיוך לתוכנית הגיבוי. לפני שמשייכים תוכנית גיבוי, צריך לוודא שיש את הרשאות ה-IAM הנדרשות.

המאמרים הבאים