הגדרה של מאגר חיבורים מנוהל

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

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

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

הפעלת ניהול מאגר חיבורים

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

הפעלת ניהול מאגר חיבורים במופע חדש

כדי ליצור מופע חדש עם הפעלה של Managed Connection Pooling, אפשר לעיין במאמר בנושא יצירת מופעים. אפשר להפעיל את התכונה 'ניהול מאגר חיבורים' למופע חדש רק באמצעות ה-CLI של gcloud או Cloud SQL API.

הפעלת ניהול מאגר חיבורים במופע קיים

כדי להפעיל את התכונה 'ניהול מאגר חיבורים' במופע קיים:

המסוף

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

    כניסה לדף Cloud SQL Instances

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

  3. לוחצים על Edit.

  4. בקטע התאמה אישית של המופע, מרחיבים את החיבורים.

  5. כדי להפעיל את האפשרות 'ניהול מאגר חיבורים', מסמנים את התיבה הפעלת ניהול מאגר חיבורים.

  6. לוחצים על Save.

gcloud

משתמשים בפקודה gcloud sql instances כדי להפעיל את האפשרות 'ניהול מאגר חיבורים'.

  gcloud sql instances patch INSTANCE_NAME \
  --enable-connection-pooling

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

  • INSTANCE_NAME: השם של מכונת Cloud SQL.

REST v1

משתמשים בפקודה הבאה ומגדירים את connectionPoolingEnabled:

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

  • PROJECT_ID: מזהה הפרויקט
  • INSTANCE_ID: מזהה המכונה

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

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

תוכן בקשת JSON:

{
  "settings": {
    "connectionPoolConfig": {
      "connectionPoolingEnabled": true
    }
  }
}

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

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

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

REST v1beta4

משתמשים בפקודה הבאה ומגדירים את connectionPoolingEnabled:

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

  • PROJECT_ID: מזהה הפרויקט
  • INSTANCE_ID: מזהה המכונה

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

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

תוכן בקשת JSON:

{
  "settings": {
    "connectionPoolConfig": {
      "connectionPoolingEnabled": true
    }
  }
}

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

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

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

Terraform

משתמשים במשאב Terraform הבא:

# This example shows creating an instance with Managed Connection Pooling enabled and custom flags set.
resource "google_sql_database_instance" "mysql_managed_connection_pooling_enable" {
  name                = "mysql-instance-managed-connection-pooling-enable"
  region              = "us-central1"
  database_version    = "MYSQL_8_0"
  deletion_protection = false

  settings {
    tier    = "db-perf-optimized-N-2"
    edition = "ENTERPRISE_PLUS"
    connection_pool_config {
      connection_pooling_enabled = true
    }
  }
}

שינוי של Managed Connection Pooling במופע

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

כדי לשנות את אפשרויות ההגדרה המתקדמות של Managed Connection Pooling עבור מופע:

המסוף

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

    כניסה לדף Cloud SQL Instances

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

  3. לוחצים על Edit.

  4. בקטע התאמה אישית של המופע, מרחיבים את החיבורים.

  5. בקטע Managed connection pool (מאגר חיבורים מנוהל), מרחיבים את Advanced pooling options (אפשרויות מתקדמות של מאגר).

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

  6. לוחצים על Save.

gcloud

משתמשים בפקודה gcloud sql instances כדי לשנות את אפשרויות ההגדרה.

  gcloud sql instances patch INSTANCE_NAME \
  --connection-pool-flags=CONFIGURATION_NAME=CONFIGURATION_VALUE

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

  • INSTANCE_NAME: השם של מכונת Cloud SQL.
  • CONFIGURATION_NAME: השם של אפשרות ההגדרה. רשימה של כל אפשרויות ההגדרה המתקדמות מופיעה במאמר אפשרויות הגדרה מתקדמות.
  • CONFIGURATION_VALUE: הערך החדש של אפשרות ההגדרה שנבחרה.

REST v1

כדי לשנות את ההגדרות של Managed Connection Pooling (ניהול מאגר חיבורים) Advanced configurations (הגדרות מתקדמות) משתמשים בפקודה הבאה ומגדירים את ConnectionPoolConfig:

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

  • PROJECT_ID: מזהה הפרויקט
  • INSTANCE_ID: מזהה המכונה

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

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

תוכן בקשת JSON:

{
  "settings": {
    "connectionPoolConfig": {
      "flags":
      [
        {
          "name": "CONFIGURATION_NAME",
          "value":"CONFIGURATION_VALUE"
        }
      ]
    }
  }
}

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

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

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

REST v1beta4

כדי לשנות את ההגדרות של Managed Connection Pooling (ניהול מאגר חיבורים) Advanced configurations (הגדרות מתקדמות) משתמשים בפקודה הבאה ומגדירים את ConnectionPoolConfig:

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

  • PROJECT_ID: מזהה הפרויקט
  • INSTANCE_ID: מזהה המכונה

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

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

תוכן בקשת JSON:

{
  "settings": {
    "connectionPoolConfig": {
      "flags":
      [
        {
          "name": "CONFIGURATION_NAME",
          "value":"CONFIGURATION_VALUE"
        }
      ]
    }
  }
}

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

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

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

Terraform

כדי לשנות את ההגדרות המתקדמות של Managed Connection Pooling, משתמשים במשאב Terraform הבא:

# This example shows modifying the flags of an existing Managed Connection Pooling configuration.
resource "google_sql_database_instance" "mysql_managed_connection_pooling_modify" {
  name                = "mysql-instance-managed-connection-pooling-modify"
  region              = "us-central1"
  database_version    = "MYSQL_8_0"
  deletion_protection = false

  settings {
    tier    = "db-perf-optimized-N-2"
    edition = "ENTERPRISE_PLUS"
    connection_pool_config {
      connection_pooling_enabled = true
      flags {
        name  = "max_pool_size" # Modify or add the name and value of an flag
        value = "10"
      }
    }
  }
}

השבתת מאגר חיבורים מנוהל למופע

אפשר להשבית את התכונה 'ניהול מאגר חיבורים' במופע קיים באמצעות מסוףGoogle Cloud ,‏ ה-CLI של gcloud או Cloud SQL API.

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

המסוף

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

    כניסה לדף Cloud SQL Instances

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

  3. לוחצים על Edit.

  4. בקטע התאמה אישית של המופע, מרחיבים את החיבורים.

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

  6. לוחצים על Save.

gcloud

משתמשים בפקודה gcloud sql instances כדי להשבית את ניהול מאגר החיבורים.

  gcloud sql instances patch INSTANCE_NAME \
  --no-enable-connection-pooling

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

  • PROJECT_ID: השם של מכונת Cloud SQL.

REST v1

כדי להשבית את התכונה 'ניהול מאגר חיבורים' עבור מופע, משתמשים בפקודה הבאה ומגדירים את connectionPoolingEnabled:

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

  • PROJECT_ID: מזהה הפרויקט
  • INSTANCE_ID: מזהה המכונה

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

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

תוכן בקשת JSON:

{
  "settings": {
    "connectionPoolConfig": {
      "connectionPoolingEnabled": false
    }
  }
}

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

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

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

REST v1beta4

כדי להשבית את התכונה 'ניהול מאגר חיבורים' עבור מופע, משתמשים בפקודה הבאה ומגדירים את connectionPoolingEnabled:

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

  • PROJECT_ID: מזהה הפרויקט
  • INSTANCE_ID: מזהה המכונה

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

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

תוכן בקשת JSON:

{
  "settings": {
    "connectionPoolConfig": {
      "connectionPoolingEnabled": false
    }
  }
}

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

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

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

Terraform

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

# This example shows disabling Managed Connection Pooling on an existing instance.
resource "google_sql_database_instance" "mysql_managed_connection_pooling_disable" {
  name                = "mysql-instance-managed-connection-pooling-disable"
  region              = "us-central1"
  database_version    = "MYSQL_8_0"
  deletion_protection = false

  settings {
    tier    = "db-perf-optimized-N-2"
    edition = "ENTERPRISE_PLUS"
    connection_pool_config {
      # Set to false to disable Managed Connection Pooling. You can also remove the block entirely.
      connection_pooling_enabled = false
    }
  }
}

איך רואים את הסטטוס של Managed Connection Pooling במכונה

אפשר לראות את הסטטוס של ניהול מאגר חיבורים במופע באמצעות מסוף Google Cloud , ה-CLI של gcloud או Cloud SQL API.

כדי לראות את הסטטוס של Managed Connection Pooling במופע של Cloud SQL Enterprise Plus Edition, צריך לבצע את הפעולות הבאות:

המסוף

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

    כניסה לדף Cloud SQL Instances

  2. מחפשים את המופע שרוצים לראות את הסטטוס של Managed Connection Pooling שלו. כדי לפתוח את דף הסקירה הכללית של המכונה, לוחצים על שם המכונה.

    בקטע Connections (חיבורים) אפשר לראות אם האפשרות Managed Connection Pooling (ניהול מאגר חיבורים) מופעלת או מושבתת.

gcloud

כדי להציג את הסטטוס של Managed Connection Pooling (איגום חיבורים מנוהל) של מופע, משתמשים בפקודה gcloud sql instances describe:

  gcloud sql instances describe INSTANCE_NAME
  --format="value(settings.connectionPoolConfig.connectionPoolingEnabled)"

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

  • PROJECT_ID: השם של מכונת Cloud SQL.

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

    connectionPoolingEnabled: true

REST v1

כדי לראות את הסטטוס של Managed Connection Pooling במכונה של Cloud SQL, מריצים את הפקודה הבאה ומחפשים את connectionPoolingEnabled:

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

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

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

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

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

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "MYSQL_8_0",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-custom-2-7680",
    "kind": "sql#settings",
    "availabilityType": "REGIONAL",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "pscConfig": {
        "allowedConsumerProjects": [
          "ALLOWED_PROJECTS"
        ],
        "pscEnabled": true
      },
      "ipv4Enabled": false
    },
  ...
  "createTime": "2023-06-14T18:48:34.975Z",
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE",
  "pscServiceAttachmentLink": "projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_ID",
  "dnsName": "DNS_NAME"
}

REST v1beta4

כדי לראות את הסטטוס של Managed Connection Pooling במכונה של Cloud SQL, מריצים את הפקודה הבאה ומחפשים את connectionPoolingEnabled:

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

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

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

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

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

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "MYSQL_8_0",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-custom-2-7680",
    "kind": "sql#settings",
    "availabilityType": "REGIONAL",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "pscConfig": {
        "allowedConsumerProjects": [
          "ALLOWED_PROJECTS"
        ],
        "pscEnabled": true
      },
      "ipv4Enabled": false
    },
  ...
  "createTime": "2023-06-14T18:48:34.975Z",
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE",
  "pscServiceAttachmentLink": "projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_ID",
  "dnsName": "DNS_NAME"
}

מעקב אחרי מאגרים מנוהלים של חיבורים

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

שם המדד תיאור
threads מעקב אחרי מספר השרשורים במאגר החיבורים לפי הסטטוס שלהם. הסטטוסים שכלולים במדד הזה הם:
  • idle: מספר השרשורים במצב המתנה במאגר.
  • active: מספר השרשורים הפעילים (לא במצב המתנה) במאגר.
pending_connection מספר החיבורים שנמצאים באופן פעיל בתור של מאגר החיבורים.
avg_wait_time הזמן הממוצע שבו בקשת החיבור ממתינה לשרת.

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

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