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

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

הפעלת PITR

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

התהליך הבא מפעיל PITR במופע ראשי קיים.

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Google Cloud .

    כניסה לדף Cloud SQL Instances

  2. פותחים את תפריט הפעולות הנוספות סמל האפשרויות הנוספות. של המכונה שרוצים להפעיל בה PITR ולוחצים על Edit (עריכה).
  3. בקטע Customize your instance (התאמה אישית של המופע), מרחיבים את הקטע Data Protection (הגנה על נתונים).
  4. מסמנים את התיבה הפעלת שחזור לנקודת זמן מסוימת.
  5. בשדה Days of logs, מזינים את מספר הימים לשמירת היומנים, בין 1 ל-35 למהדורת Cloud SQL Enterprise Plus, או בין 1 ל-7 למהדורת Cloud SQL Enterprise.
  6. לוחצים על Save.

gcloud

  1. מציגים את הסקירה הכללית של המופע:
    gcloud sql instances describe INSTANCE_NAME
  2. אם אתם רואים את enabled: false בקטע backupConfiguration, צריך להפעיל גיבויים מתוזמנים:
    gcloud sql instances patch INSTANCE_NAME \
    --backup-start-time=HH:MM

    מציינים את הפרמטר backup-start-time באמצעות שעה בפורמט של 24 שעות באזור הזמן UTC±00.

  3. הפעלת PITR:
    gcloud sql instances patch INSTANCE_NAME \
    --enable-point-in-time-recovery

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

    --retained-transaction-log-days=RETAINED_TRANSACTION_LOG_DAYS
  4. מאשרים את השינוי:
    gcloud sql instances describe INSTANCE_NAME

    בקטע backupConfiguration, יופיע pointInTimeRecoveryEnabled: true אם השינוי בוצע בהצלחה.

Terraform

כדי להפעיל PITR, משתמשים במשאב של Terraform.

הפעלת PITR במהדורת Cloud SQL Enterprise Plus

כדי ליצור מופע של Cloud SQL Enterprise Plus עם PITR מופעל, משתמשים בדוגמת הקוד הבאה של Terraform:
# Creates a SQL SERVER Enterprise Plus edition instance. Unless specified otherwise, PITR is enabled by default.
resource "google_sql_database_instance" "enterprise_plus" {
  name             = "sqlserver-enterprise-plus-instance-pitr"
  region           = "asia-northeast1"
  database_version = "SQLSERVER_2019_ENTERPRISE"
  root_password    = "INSERT-PASSWORD-HERE"
  settings {
    tier    = "db-perf-optimized-N-2"
    edition = "ENTERPRISE_PLUS"
    backup_configuration {
      enabled = true
    }
  }
  # Setting the `deletion_protection` flag to true ensures you can't accidentally delete the instance
  # using Terraform. Setting the `deletion_protection_enabled` flag to true protects the instance at the
  # Google Cloud level.
  deletion_protection = false
}

הפעלת PITR במהדורת Cloud SQL Enterprise

כדי ליצור מופע של Cloud SQL במהדורת Enterprise עם PITR מופעל, משתמשים בדוגמת הקוד הבאה של Terraform:
# Creates a SQL SERVER Enterprise edition instance with PITR enabled. Unless specified otherwise,
# PITR is disabled by default.
resource "google_sql_database_instance" "enterprise" {
  name             = "sqlserver-enterprise-instance-pitr"
  region           = "asia-northeast1"
  database_version = "SQLSERVER_2019_ENTERPRISE"
  root_password    = "INSERT-PASSWORD-HERE"
  settings {
    tier    = "db-custom-4-26624"
    edition = "ENTERPRISE"
    backup_configuration {
      enabled                        = true
      point_in_time_recovery_enabled = true
    }
  }
  # Setting the `deletion_protection` flag to true ensures you can't accidentally delete the instance
  # using Terraform. Setting the `deletion_protection_enabled` flag to true protects the instance at the
  # Google Cloud level.
  deletion_protection = false
}

החלה של השינויים

כדי להחיל את ההגדרות של Terraform בפרויקט ב- Google Cloud , מבצעים את השלבים בקטעים הבאים.

הכנת Cloud Shell

  1. מפעילים את Cloud Shell.
  2. מגדירים את פרויקט ברירת המחדל שבו רוצים להחיל את ההגדרות של Terraform. Google Cloud

    תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

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

הכנת הספרייה

לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).

  1. יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת .tf, למשל main.tf. במדריך הזה, הקובץ נקרא main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.

    מעתיקים את הקוד לדוגמה בקובץ main.tf החדש שיצרתם.

    לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.

  3. בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
  4. שומרים את השינויים.
  5. מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
    terraform init

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

    terraform init -upgrade

החלה של השינויים

  1. בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
    terraform plan

    מתקנים את ההגדרות לפי הצורך.

  2. מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה, כדי להחיל את הגדרות Terraform:
    terraform apply

    ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!‎".

  3. פותחים את Google Cloud הפרויקט כדי לראות את התוצאות. במסוף Google Cloud , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.

מחיקת השינויים

כדי למחוק את השינויים:

  1. כדי להשבית את ההגנה מפני מחיקה, בקובץ התצורה של Terraform מגדירים את הארגומנט deletion_protection לערך false.
    deletion_protection =  "false"
  2. מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה, כדי להחיל את הגדרות Terraform המעודכנות:
    terraform apply
  1. כדי להסיר משאבים שהוחלו בעבר על הגדרות Terraform, מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה:

    terraform destroy

REST v1

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את המופע
  • INSTANCE_NAME: השם של המופע הראשי או של העותק לקריאה שאתם מגדירים עבור זמינות גבוהה
  • START_TIME: השעה (בדקות ושעות)

ה-method של ה-HTTP וכתובת ה-URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

תוכן בקשת JSON:

{
  "settings":
  {
    "backupConfiguration":
    {
      "startTime": "START_TIME",
      "enabled": true,
      "pointInTimeRecoveryEnabled": true
    }
  }
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

REST v1beta4

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את המופע
  • INSTANCE_NAME: השם של המופע הראשי או של העותק לקריאה שאתם מגדירים עבור זמינות גבוהה
  • START_TIME: השעה (בדקות ושעות)

ה-method של ה-HTTP וכתובת ה-URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME

תוכן בקשת JSON:

{
  "settings":
  {
    "backupConfiguration":
    {
      "startTime": "START_TIME",
      "enabled": true,
      "pointInTimeRecoveryEnabled": true
    }
  }
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

השבתת PITR

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Google Cloud .

    כניסה לדף Cloud SQL Instances

  2. פותחים את תפריט האפשרויות הנוספות סמל האפשרויות הנוספות. של המופע שרוצים להשבית ובוחרים באפשרות עריכה.
  3. בקטע Customize your instance (התאמה אישית של המופע), מרחיבים את הקטע Data Protection (הגנה על נתונים).
  4. מבטלים את הסימון של הפעלת שחזור מערכת מנקודה מסוימת בזמן.
  5. לוחצים על Save.

gcloud

  1. כדי להשבית את שחזור מערכת מנקודה מסוימת בזמן (PITR):
    gcloud sql instances patch INSTANCE_NAME \
    --no-enable-point-in-time-recovery
  2. מאשרים את השינוי:
    gcloud sql instances describe INSTANCE_NAME

    בקטע backupConfiguration, יופיע pointInTimeRecoveryEnabled: false אם השינוי בוצע בהצלחה.

REST v1

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • project-id: מזהה הפרויקט
  • instance-id: מזהה המכונה

ה-method של ה-HTTP וכתובת ה-URL:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

תוכן בקשת JSON:

{
  "settings":
  {
    "backupConfiguration":
    {
      "enabled": false,
      "pointInTimeRecoveryEnabled": false
    }
  }
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

REST v1beta4

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • project-id: מזהה הפרויקט
  • instance-id: מזהה המכונה

ה-method של ה-HTTP וכתובת ה-URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

תוכן בקשת JSON:

{
  "settings":
  {
    "backupConfiguration":
    {
      "enabled": false,
      "pointInTimeRecoveryEnabled": false
    }
  }
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

הגדרת תקופת השמירה של יומן העסקאות

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

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Google Cloud .

    כניסה לדף Cloud SQL Instances

  2. פותחים את תפריט הפעולות הנוספות סמל האפשרויות הנוספות. של המופע שרוצים להגדיר בו את יומן העסקאות ובוחרים באפשרות עריכה.
  3. בקטע Customize your instance (התאמה אישית של המופע), מרחיבים את הקטע Data Protection (הגנה על נתונים).
  4. בקטע הפעלת שחזור מערכת מנקודה מסוימת בזמן (PITR), מרחיבים את האפשרויות המתקדמות.
  5. מזינים את מספר הימים לשמירת היומנים, בין 1 ל-35 במהדורת Cloud SQL Enterprise Plus או בין 1 ל-7 במהדורת Cloud SQL Enterprise.
  6. לוחצים על Save.

gcloud

עורכים את המופע כדי להגדיר את מספר הימים לשמירת יומני העסקאות.

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

  • INSTANCE_NAME: השם של המופע שרוצים להגדיר בו את יומן העסקאות.
  • DAYS_TO_RETAIN: מספר הימים שבהם יומני הטרנזקציות יישמרו. במהדורת Cloud SQL Enterprise Plus, הטווח התקף הוא בין יום אחד ל-35 ימים, עם ברירת מחדל של 14 ימים. במהדורת Cloud SQL Enterprise, הטווח התקין הוא בין יום אחד ל-7 ימים, וערך ברירת המחדל הוא 7 ימים.

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

  gcloud sql instances patch INSTANCE_NAME 
--retained-transaction-log-days=DAYS_TO_RETAIN

REST v1

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט.
  • INSTANCE_ID: מזהה המכונה.
  • DAYS_TO_RETAIN: מספר הימים לשמירת יומני הטרנזקציות. במהדורת Cloud SQL Enterprise Plus, הטווח התקין הוא בין יום אחד ל-35 ימים, וערך ברירת המחדל הוא 14 ימים. במהדורת Cloud SQL Enterprise, הטווח התקף הוא בין יום אחד ל-7 ימים, וערך ברירת המחדל הוא 7 ימים.

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

ה-method של ה-HTTP וכתובת ה-URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

תוכן בקשת JSON:

{
  "settings":
  {
    "backupConfiguration":
    {
      "transactionLogRetentionDays": "DAYS_TO_RETAIN"
    }
  }
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

REST v1beta4

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט.
  • INSTANCE_ID: מזהה המכונה.
  • DAYS_TO_RETAIN: מספר הימים לשמירת יומני הטרנזקציות. במהדורת Cloud SQL Enterprise Plus, הטווח התקין הוא בין יום אחד ל-35 ימים, וערך ברירת המחדל הוא 14 ימים. במהדורת Cloud SQL Enterprise, הטווח התקף הוא בין יום אחד ל-7 ימים, וערך ברירת המחדל הוא 7 ימים.

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

ה-method של ה-HTTP וכתובת ה-URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

תוכן בקשת JSON:

{
  "settings":
  {
    "backupConfiguration":
    {
      "transactionLogRetentionDays": "DAYS_TO_RETAIN"
    }
  }
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

בדיקת מיקום האחסון של יומני העסקאות שמשמשים לשחזור לנקודת זמן

אפשר לבדוק איפה מכונת Cloud SQL מאחסנת את יומני העסקאות שמשמשים לשחזור לנקודת זמן.

gcloud

כדי לקבוע אם המכונה שלכם מאחסנת יומנים ל-PITR בדיסק או ב-Cloud Storage, משתמשים בפקודה הבאה:

   gcloud sql instances describe INSTANCE_NAME
   

מחליפים את INSTANCE_NAME בשם המכונה.

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

   gcloud sql instances list --show-transactional-log-storage-state
   

דוגמה לתגובה:

NAME  DATABASE_VERSION         LOCATION       TRANSACTIONAL_LOG_STORAGE_STATE
my_01 SQLSERVER_2019_STANDARD  us-central-1   DISK
my_02 SQLSERVER_2019_STANDARD  us-central-1   CLOUD_STORAGE
...
   

בפלט של הפקודה, השדה transactionalLogStorageState או העמודה TRANSACTIONAL_LOG_STORAGE_STATE מספקים מידע על המקום שבו נשמרים יומני העסקאות של PITR עבור המופע. אלו הם מצבי האחסון האפשריים של יומן הטרנזקציות:

  • DISK: המידע הזה מציין שהמכונה מאחסנת בדיסק את יומני הטרנזקציות שמשמשים ל-PITR.
  • CLOUD_STORAGE: המופע מאחסן את יומני הטרנזקציות שמשמשים ל-PITR ב-Cloud Storage.

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