יצירת עותקים לקריאה

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

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

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

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

מידע נוסף על אופן הפעולה של רפליקציה זמין במאמר רפליקציה ב-Cloud SQL.

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

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

יצירת עותק לקריאה

כשיוצרים עותק לקריאה, חשוב לזכור את הנקודות הבאות:

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

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

המסוף

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

    כניסה לדף Cloud SQL Instances

  2. מחפשים את המופע שרוצים ליצור לו העתק, ואז פותחים את התפריט more actions לצד כרטיס המוצר.
  3. בוחרים באפשרות יצירת עותק לקריאה.

    אם האפשרות הזו לא מופיעה, סימן שהמופע הוא העתק. אי אפשר ליצור העתק של העתק.

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

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

  5. לוחצים על יצירת העתק.

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

gcloud

יוצרים את העותק:

gcloud sql instances create REPLICA_NAME \
--master-instance-name=PRIMARY_INSTANCE_NAME
  

אם צריך, אפשר לציין גודל שונה של רמת מחיר באמצעות הפרמטר --tier.

אפשר לציין אזור אחר באמצעות הפרמטר --region.

אם למכונה הראשית יש רק כתובת IP פנימית, מוסיפים את הפרמטר --no-assign-ip לפקודה.

אפשר להוסיף עוד פרמטרים להגדרות אחרות של המופע. מידע נוסף זמין במאמר בנושא gcloud sql instances create.

צריך ליצור את העותק המשוכפל באותה רשת VPC שבה נמצאת המכונה הראשית. אפשר גם לציין allocated-ip-range-name באותה רשת VPC. אם לא מציינים טווח, העותק המשוכפל נוצר בטווח אקראי.

Terraform

כדי ליצור העתק לקריאה, משתמשים במשאב של Terraform.

resource "google_sql_database_instance" "read_replica" {
  name                 = "sqlserver-replica-instance-name"
  master_instance_name = google_sql_database_instance.primary.name
  region               = "europe-west4"
  database_version     = "SQLSERVER_2019_ENTERPRISE"
  root_password        = "INSERT-PASSWORD-HERE"
  replica_configuration {
    failover_target = false
  }

  settings {
    tier              = "db-custom-2-7680"
    availability_type = "ZONAL"
    disk_size         = "100"
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

REST v1beta4

משתמשים בשיטה insert של משאב המכונות כדי ליצור את העותק לקריאה. המאפיינים region ו-databaseVersion צריכים להיות זהים לאלה של מסד הנתונים הראשי.

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

  • project-id: מזהה הפרויקט
  • database-version: מחרוזת גרסה של Enum (לדוגמה, SQLSERVER_2017_ENTERPRISE)
  • primary-instance-name: השם של המופע הראשי
  • primary-instance-region: האזור של המכונה הראשית
  • replica-region: האזור של מכונת הרפליקה
  • replica-name: השם של מכונת הרפליקה
  • machine-type: מחרוזת enum של סוג המכונה. לדוגמה: db-custom-1-3840

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

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

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

תוכן בקשת JSON:

{
  "masterInstanceName": "primary-instance-name",
  "project": "project-id",
  "databaseVersion": "database-version",
  "name": "replica-name",
  "region": "replica-region",
  "settings":
  {
    "tier": "machine-type",
    "settingsVersion": 0,
    
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

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

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

יצירת רפליקה לקריאה של מופע עם Private Service Connect מופעל

כדי ליצור העתק לקריאה של מופע עם Private Service Connect מופעל, משתמשים ב-gcloud CLI או ב-API. אפשר ליצור את העותק הזה באותו אזור או באזור אחר מהמופע הראשי (עותק לקריאה בכמה אזורים).

העתק לקריאה לא יכול לשכפל ממופע עם סוג קישוריות שונה. לדוגמה, מופע שמופעל בו Private Service Connect יכול לשכפל רק ממופע אחר של Private Service Connect. בנוסף, אי אפשר לשכפל ממופע שתומך בחיבורי כתובת IP חיצונית או ממופע שהוגדר עם גישה לשירותים פרטיים.

gcloud

כדי ליצור העתק לקריאה של מכונה, משתמשים בפקודה gcloud sql instances create:

gcloud sql instances create REPLICA_INSTANCE_NAME \
--master-instance-name=PRIMARY_INSTANCE_NAME \
--project=PROJECT_ID \
--region=REGION_NAME \
--enable-private-service-connect \
--allowed-psc-projects=ALLOWED_PROJECTS \
--availability-type=AVAILABILITY_TYPE \
--no-assign-ip

מחליפים את הפרטים הבאים:

  • REPLICA_INSTANCE_NAME: השם של מופע ההעתקה.
  • PRIMARY_INSTANCE_NAME: השם של המכונה הראשית.
  • PROJECT_ID: המזהה או מספר הפרויקט של פרויקט Google Cloud שמכיל את המופע.
  • REGION_NAME: שם האזור של מכונת הרפליקה.
  • ALLOWED_PROJECTS: רשימה של מספרי פרויקטים או מזהי פרויקטים מותרים, מופרדים בפסיקים. אם פרויקט לא מופיע ברשימה הזו, אי אפשר להשתמש בו כדי ליצור מופע ולהפעיל בו את Private Service Connect.

    ‫Cloud SQL לא מעתיק את הפרויקטים המורשים למופע הראשי אל העותק המשוכפל. לכל העתק צריך ליצור נקודת קצה מסוג Private Service Connect. אם אתם משתמשים בשרת proxy ל-Cloud SQL Auth או במחברי שפות ל-Cloud SQL, אתם צריכים ליצור תחום DNS ורשומת DNS לרפליקות.

  • AVAILABILITY_TYPE: הפעלת זמינות גבוהה של המכונה. לפרמטר הזה, מציינים אחד מהערכים הבאים:
    • REGIONAL: הפעלה של זמינות גבוהה. מומלץ למופעים בסביבת ייצור. המופע עובר לזמינות חלקית באזור אחר בתוך האזור שנבחר.
    • ZONAL: לא מספקות יכולת מעבר לגיבוי (failover). זה ערך ברירת המחדל.

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

REST v1

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

  • PRIMARY_INSTANCE_NAME: השם של המכונה הראשית.
  • PROJECT_ID: המזהה או מספר הפרויקט של פרויקט Google Cloud שמכיל את המופע.
  • REPLICA_INSTANCE_NAME: השם של מופע ההעתקה.
  • REGION_NAME: שם האזור של מכונת הרפליקה.
  • MACHINE_TYPE: סוג המכונה של המופע.
  • AVAILABILITY_TYPE: הפעלת זמינות גבוהה של המכונה. לפרמטר הזה, מציינים אחד מהערכים הבאים:
    • REGIONAL: הפעלה של זמינות גבוהה. מומלץ למופעים בסביבת ייצור. המופע עובר לזמינות חלקית באזור אחר בתוך האזור שנבחר.
    • ZONAL: לא מספקות יכולת מעבר לגיבוי (failover). זה ערך ברירת המחדל.

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

  • ALLOWED_PROJECTS: רשימה של מספרי פרויקטים או מזהי פרויקטים מותרים, מופרדים בפסיקים. אם פרויקט לא מופיע ברשימה הזו, אי אפשר להשתמש בו כדי ליצור מופע ולהפעיל בו את Private Service Connect.

    ‫Cloud SQL לא מעתיק את הפרויקטים המורשים למופע הראשי אל העותק המשוכפל. לכל העתק צריך ליצור נקודת קצה מסוג Private Service Connect. אם אתם משתמשים בשרת proxy ל-Cloud SQL Auth או במחברי שפה ל-Cloud SQL, אתם צריכים ליצור תחום DNS ורשומת DNS עבור הרפליקות.

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

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

תוכן בקשת JSON:

{
  "masterInstanceName": "PRIMARY_INSTANCE_NAME",
  "project": "PROJECT_ID",
  "databaseVersion": "SQLSERVER_2019_STANDARD",
  "name": "REPLICA_INSTANCE_NAME",
  "region": "REGION_NAME",
  "kind": "sql#instance",
  "settings":
  {
    "tier": "MACHINE_TYPE",
    "availabilityType": "AVAILABILITY_TYPE",
    "settingsVersion": 0,
    "ipConfiguration": {
      "ipv4Enabled": false,
      "pscConfig": {
        "allowedConsumerProjects": [ALLOWED_PROJECTS],
        "pscEnabled": true
      }
    },
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "ASYNCHRONOUS",
    "tier": "MACHINE_TYPE"
  }
}

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

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_INSTANCE_NAME",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "CREATE_REPLICA",
  "name": "OPERATION_ID",
  "targetId": "REPLICA_INSTANCE_NAME",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

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

  • PRIMARY_INSTANCE_NAME: השם של המכונה הראשית.
  • PROJECT_ID: המזהה או מספר הפרויקט של פרויקט Google Cloud שמכיל את המופע.
  • REPLICA_INSTANCE_NAME: השם של מופע ההעתקה.
  • REGION_NAME: שם האזור של מכונת הרפליקה.
  • MACHINE_TYPE: סוג המכונה של המופע.
  • AVAILABILITY_TYPE: הפעלת זמינות גבוהה של המכונה. לפרמטר הזה, מציינים אחד מהערכים הבאים:
    • REGIONAL: הפעלה של זמינות גבוהה. מומלץ למופעים בסביבת ייצור. המופע עובר לזמינות חלקית באזור אחר בתוך האזור שנבחר.
    • ZONAL: לא מספקות יכולת מעבר לגיבוי (failover). זה ערך ברירת המחדל.

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

  • ALLOWED_PROJECTS: רשימה של מספרי פרויקטים או מזהי פרויקטים מותרים, מופרדים בפסיקים. אם פרויקט לא מופיע ברשימה הזו, אי אפשר להשתמש בו כדי ליצור מופע ולהפעיל בו את Private Service Connect.

    ‫Cloud SQL לא מעתיק את הפרויקטים המורשים למופע הראשי אל העותק המשוכפל. לכל העתק צריך ליצור נקודת קצה מסוג Private Service Connect. אם אתם משתמשים בשרת proxy ל-Cloud SQL Auth או במחברי שפה ל-Cloud SQL, אתם צריכים ליצור תחום DNS ורשומת DNS עבור הרפליקות.

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

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

תוכן בקשת JSON:

{
  "masterInstanceName": "PRIMARY_INSTANCE_NAME",
  "project": "PROJECT_ID",
  "databaseVersion": "SQLSERVER_2019_STANDARD",
  "name": "REPLICA_INSTANCE_NAME",
  "region": "REGION_NAME",
  "kind": "sql#instance",
  "settings":
  {
    "tier": "MACHINE_TYPE",
    "availabilityType": "AVAILABILITY_TYPE",
    "settingsVersion": 0,
    "ipConfiguration": {
      "ipv4Enabled": false,
      "pscConfig": {
        "allowedConsumerProjects": [ALLOWED_PROJECTS],  
        "pscEnabled": true
      }
    },
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "ASYNCHRONOUS",
    "tier": "MACHINE_TYPE"
  }
}

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

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_INSTANCE_NAME",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "CREATE_REPLICA",
  "name": "OPERATION_ID",
  "targetId": "REPLICA_INSTANCE_NAME",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

יצירת רפליקות מדורגות

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

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

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

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

השלבים ליצירת עותק שניתן להעברה

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

gcloud

יוצרים את העותק החדש באמצעות הדגל --master-instance-name כדי לציין את המופע הראשי, ומשתמשים בדגל --cascadable-replica:

gcloud sql instances create REPLICA_NAME \
   --master-instance-name=PRIMARY_INSTANCE_NAME \
   --cascadable-replica \
   --region=REGION

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

  • REPLICA_NAME: המזהה הייחודי של העותק שאתם יוצרים.
  • PRIMARY_INSTANCE_NAME: השם של המכונה הראשית.
  • REGION: האזור שבו רוצים ליצור את העותק החדש. האזור הזה צריך להיות שונה מהאזור של המופע הראשי.

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

אפשר להוסיף עוד פרמטרים להגדרות אחרות של המופע. לדוגמה,

  • אפשר לציין גודל אחר של רמת המכונה באמצעות הפרמטר --tier.
  • אם למופע הראשי יש רק כתובת IP פרטית, צריך להוסיף את הפרמטר --no-assign-ip לפקודה.

מידע נוסף על הוספת פרמטרים להגדרות של מופעים זמין במאמר gcloud sql instances create.

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

curl

  1. כדי ליצור העתק שניתן להעברה מתחת למופע הראשי, עורכים את דוגמת קוד ה-JSON הבאה ושומרים אותה בקובץ בשם request.json.

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

    • PROJECT_ID: מזהה הפרויקט.
    • DATABASE_VERSION: מחרוזת enum של גרסת מסד הנתונים. לדוגמה, SQLSERVER_2017_ENTERPRISE..
    • PRIMARY_INSTANCE_NAME: השם של המכונה הראשית.
    • PRIMARY_INSTANCE_REGION: האזור של המכונה הראשית.
    • REPLICA_REGION: האזור של מכונת הרפליקה.
    • REPLICA_NAME: השם של מופע ההעתקה.
    • MACHINE_TYPE: מחרוזת enum של סוג המכונה. לדוגמה, db-custom-2-3840.
    {
      "masterInstanceName": "PRIMARY_INSTANCE_NAME",
      "project": "PROJECT_ID",
      "databaseVersion": "DATABASE_VERSION"
      "name": "REPLICA_NAME",
      "region": "REPLICA_REGION",
      "settings":
        {
          "tier": "MACHINE_TYPE",
          "settingsVersion": 0,
        }
        "replicaConfiguration":
        {
         "cascadableReplica": true
        }
    }
  2. בקטע replicaConfiguration, מוודאים שהשדה cascadadableReplica מוגדר לערך true.
  3. מריצים את הפקודה הבאה:
    curl -X POST
    -H "Authorization: Bearer "$(gcloud auth print-access-token)
    -H "Content-Type: application/json; charset=utf-8"
    -d @request.json
    "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances"

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

Terraform

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

בדוגמה הבאה נוצר מופע ראשי ועותק משוכפל שאפשר להקצות כעותק משוכפל לשחזור מאסון (DR) כשמבצעים פעולת העברה אוטומטית (switchover) כחלק משחזור מתקדם מאסון (DR).

resource "google_sql_database_instance" "original-primary" {
  name   = "sqlserver-primary-instance-name"
  region = "us-east1"
  # Specify a database version that supports Cloud SQL Enterprise Plus edition.
  database_version = "SQLSERVER_2022_ENTERPRISE"
  instance_type    = "CLOUD_SQL_INSTANCE"
  root_password    = "INSERT-PASSWORD-HERE"
  replica_names    = ["sqlserver-replica-instance-name"]
  settings {
    tier    = "db-perf-optimized-N-2"
    edition = "ENTERPRISE_PLUS"
    backup_configuration {
      enabled = "true"
    }
  }
}

resource "google_sql_database_instance" "dr_replica" {
  name = "sqlserver-replica-instance-name"
  # Specify the original primary instance as the master instance.
  master_instance_name = google_sql_database_instance.original-primary.name
  # DR replica must be in a different region than the region of the primary instance.
  region = "us-west2"
  # DR replica must be the same database version as the primary instance.
  database_version = "SQLSERVER_2022_ENTERPRISE"
  instance_type    = "READ_REPLICA_INSTANCE"
  root_password    = "INSERT-PASSWORD-HERE"
  replica_configuration {
    # Make the replica a cascadable replica.
    cascadable_replica = true
  }

  settings {
    # DR replica must be in the same tier as your primary instance and support Enterprise Plus edition.
    tier    = "db-perf-optimized-N-2"
    edition = "ENTERPRISE_PLUS"
  }
}

שלבים ליצירת העתק מדורג

כשיוצרים עותק משוכפל מדורג, צריך ליצור אותו באותו אזור שבו נמצא העותק המשוכפל שאפשר לדרג. כדי להגדיר רפליקה מדורגת, צריך לציין את השם של הרפליקה שאפשר להעביר אליה את הנתונים בפרמטר –master-instance-name.

המסוף

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

    כניסה לדף Cloud SQL Instances

  2. לוחצים על הכרטיסייה Replicas (עותקים) של העותק שישמש כעותק אב לעותק שרוצים ליצור.
  3. לוחצים על יצירת העתק.
  4. בדף Create read replica (יצירת רפליקה לקריאה), מעדכנים את מזהה המופע ואת כל אפשרויות ההגדרה האחרות, כולל השם, האזור והתחום.
  5. לוחצים על יצירה.

    מערכת Cloud SQL יוצרת רפליקה. אתם חוזרים לדף המופע של העותק הראשי.

  6. חוזרים על שלבים 4-6 לכל העתק חדש של נתונים שרוצים ליצור.

gcloud

  1. יוצרים את העותק החדש על ידי ציון מופע העותק שניתן להעברה באמצעות הדגל --master-instance-name:
  2. gcloud sql instances create REPLICA_NAME \
          --master-instance-name=CASCADABLE_REPLICA_NAME \
    מחליפים את מה שכתוב בשדות הבאים:
    • REPLICA_NAME: המזהה הייחודי של העותק שאתם יוצרים
    • CASCADABLE_REPLICA_NAME: השם של העותק המשוכפל שאפשר להעביר ממנו נתונים
  3. אחרי שיוצרים את העותק המשוכפל המדורג, אפשר לראות שהשינויים שבוצעו במופע הראשי משוכפלים בכל העותקים המשוכפלים בשרשרת של העותקים המשוכפלים המדורגים.

curl

  1. כדי ליצור העתק משוכפל מדורג מתחת להעתק המשוכפל שניתן לשכפול, עורכים את דוגמת קוד ה-JSON הבאה ושומרים אותה בקובץ בשם request.json:
    {
      "masterInstanceName": "CASCADABLE_REPLICA_NAME",
      "project": "PROJECT_ID",
      "name": "REPLICA_NAME",
      "region": "REPLICA_REGION",
      "settings":
        {
          "tier": "MACHINE_TYPE",
        }
    }
  2. מריצים את הפקודה הבאה:
    curl -X POST
    -H "Authorization: Bearer "$(gcloud auth print-access-token)
    -H "Content-Type: application/json; charset=utf-8"
    -d @request.json
    "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances"

פתרון בעיות

שגיאה פתרון בעיות
השכפול של העותק לקריאה לא התחיל בזמן היצירה. כנראה שיש שגיאה ספציפית יותר בקובצי היומן. בודקים את היומנים ב-Cloud Logging כדי למצוא את השגיאה בפועל.
אי אפשר ליצור עותק לקריאה – השגיאה invalidFlagValue. אחד מהדגלים בבקשה לא תקין. יכול להיות שזה דגל שציינתם באופן מפורש או דגל שהוגדר לו ערך ברירת מחדל.

קודם כול, בודקים שהערך של הדגל max_connections גדול מהערך בשרת הראשי או שווה לו.

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

לא ניתן ליצור עותק לקריאה – שגיאה לא ידועה. כנראה שיש שגיאה ספציפית יותר בקובצי היומן. בודקים את היומנים ב-Cloud Logging כדי למצוא את השגיאה בפועל.

אם השגיאה היא: set Service Networking service account as servicenetworking.serviceAgent role on consumer project, צריך להשבית ואז להפעיל מחדש את Service Networking API. הפעולה הזו יוצרת את חשבון השירות שנדרש כדי להמשיך בתהליך.

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

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

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

עורכים את המופע כדי להפעיל את automatic storage increase.

ההשהיה בשכפול גבוהה באופן עקבי. עומס הכתיבה גבוה מדי בשביל העותק. השהיית שכפול מתרחשת כשה-SQL thread בעותק לא מצליח לעמוד בקצב של ה-IO thread. סוגים מסוימים של שאילתות או עומסי עבודה עלולים לגרום לעיכובים זמניים או קבועים בשכפול של סכימה נתונה. חלק מהסיבות האופייניות לעיכוב בשכפול:
  • שאילתות איטיות בעותק המשוכפל. צריך לאתר את הבעיות ולתקן אותן.
  • שאילתות כמו DELETE ... WHERE field < 50000000 גורמות לפיגור בשכפול בשכפול מבוסס-שורות, כי מספר עצום של עדכונים מצטבר בעותק המשוכפל.

הנה כמה פתרונות אפשריים:

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

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

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