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

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

במסוף Google Cloud , אפשר לגבות מופעים של 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 לניהול זהויות והרשאות גישה לשירות 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 הפרויקט שבו צריך להקצות את ההרשאה
כספת גיבוי יצירת BackupVault backupdr.backupVaults.create פרויקט ניהול
מחיקת BackupVault backupdr.backupVaults.delete פרויקט ניהול
עדכון BackupVault backupdr.backupVaults.update פרויקט ניהול
הצגת רשימה של BackupVaults backupdr.backupVaults.list פרויקט ניהול
קבלת BackupVault backupdr.backupVaults.get פרויקט ניהול
תוכנית גיבוי יצירת BackupPlan backupdr.backupPlans.create פרויקט ניהול
מחיקת BackupPlan backupdr.backupPlans.delete פרויקט ניהול
קבלת BackupPlan 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 פרויקט של עומס עבודה
מקור הנתונים Get DataSource backupdr.bvdataSources.get פרויקט ניהול
List DataSources backupdr.backupPlanAssociations.list פרויקט ניהול
שחזור מערכת מנקודה מסוימת בזמן (PITR) backupdr.bvdataSources.useReadOnlyForCloudSqlInstance פרויקט ניהול
גיבויים קבלת גיבוי backupdr.bvbackups.get פרויקט ניהול
הצגת רשימת הגיבויים backupdr.bvbackups.list פרויקט ניהול
אחזור גיבויים backupdr.bvbackups.fetchForCloudSqlInstance פרויקט ניהול
מחיקת הגיבוי backupdr.bvbackups.delete פרויקט ניהול
שחזור הגיבוי backupdr.bvbackups.useReadOnlyForCloudSqlInstance פרויקט ניהול
הפניות למקורות נתונים קבלת הפניה ל-DataSource backupdr.dataSourceReferences.getForCloudSqlInstance פרויקט של עומס עבודה
הצגת רשימה של הפניות ל-DataSource 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 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 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 של מכונת המקור, יצירת הקישור של תוכנית הגיבוי (BPA) תיכשל. לפני שמקשרים תוכנית גיבוי, צריך לוודא שההרשאות הנדרשות ב-IAM קיימות.

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