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

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

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

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

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

  1. מפעילים את Backup and DR Service 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.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 פרויקט ניהול
שיוכים של תוכניות גיבוי יצירת שיוך לתוכנית גיבוי 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.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‏ Backup and DR Cloud SQL Operator (roles/backupdr.cloudSqlOperator) בפרויקט Cloud SQL. אם פרויקט כספת הגיבוי שבו הגיבויים יישמרו שונה מפרויקט Cloud SQL, צריך להקצות את התפקיד לסוכן השירות של כספת הגיבוי בפרויקט Cloud SQL.

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

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

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

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

המסוף

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

    מעבר לגיבויים ב-Vault

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

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

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

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

  6. ברשימה Resources, לוחצים על Browse. בוחרים את מופע Cloud SQL שרוצים לגבות ולוחצים על סיום.

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

  8. ברשימה תוכנית גיבוי, לוחצים על בחירה.

  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 שנקבעו להן גיבויים, פועלים לפי ההוראות הבאות.

המסוף

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

    מעבר לגיבויים ב-Vault

  2. בחלק העליון של הטבלה, בוחרים באפשרות סינון הטבלה > סוג המשאב. בוחרים באפשרות 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. הכלל הזה קובע מתי גיבוי לפי דרישה יימחק. אפשר לבדוק את הסטטוס של משימת הגיבוי בדף משימות. מידע נוסף מופיע במאמר מעקב אחרי משימות גיבוי ושחזור במסוף Google Cloud .

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

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

המסוף

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

    מעבר לגיבויים ב-Vault

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

  2. בוחרים את המשאב שרוצים לגבות. בתפריט או בדף הפרטים של המשאב, בוחרים באפשרות יצירת גיבוי לפי דרישה.

  3. בחלון יצירת גיבוי לפי דרישה, בוחרים כלל גיבוי לשימוש ולוחצים על יצירה.

  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 .

    מעבר לגיבויים ב-Vault

  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 הנדרשות מוגדרות.

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