בדף הזה מוסבר איך להגדיר דגלים של מסד נתונים ב-Cloud SQL, ומופיעה רשימה של הדגלים שאפשר להגדיר למופע. משתמשים בדגלים של מסד הנתונים להרבה פעולות, כולל התאמה של פרמטרים של SQL Server, התאמה של אפשרויות והגדרה וכוונון של מכונה.
כשמגדירים, מסירים או משנים דגל של מופע מסד נתונים, יכול להיות שמסד הנתונים יופעל מחדש. הערך של הדגל נשמר עבור המופע עד שמסירים אותו. אם המכונה היא המקור של העתק, והיא מופעלת מחדש, גם העותק מופעל מחדש כדי להתאים להגדרה הנוכחית של המכונה.
הגדרת דגלים של מסד נתונים
בקטעים הבאים מפורטות משימות נפוצות לניהול דגלים.
הגדרת דגל לניהול מסד נתונים
המסוף
- בGoogle Cloud מסוף, בוחרים את הפרויקט שמכיל את מופע Cloud SQL שרוצים להגדיר לו דגל מסד נתונים.
- פותחים את המופע ולוחצים על עריכה.
- עוברים לקטע דגלים.
- כדי להגדיר דגל שלא הוגדר במופע לפני כן, לוחצים על הוספת פריט, בוחרים את הדגל מהתפריט הנפתח ומגדירים את הערך שלו.
- לוחצים על Save כדי לשמור את השינויים.
- מאשרים את השינויים בקטע דגלים בדף הסקירה הכללית.
gcloud
עורכים את המופע:
gcloud sql instances patch INSTANCE_NAME --database-flags=FLAG1=VALUE1,FLAG2=VALUE2
הפקודה הזו תחליף את כל הדגלים של מסד הנתונים שהוגדרו קודם. כדי לשמור את הערכים האלה ולהוסיף ערכים חדשים, צריך לכלול את הערכים של כל הדגלים שרוצים להגדיר במכונה. כל דגל שלא נכלל באופן ספציפי מוגדר לערך ברירת המחדל שלו. אם ההתרעות לא מקבלות ערך, מציינים את שם ההתרעה ואחריו סימן שוויון (=).
לדוגמה, כדי להגדיר את הדגלים 1204, remote access ו-remote query timeout (s), אפשר להשתמש בפקודה הבאה:
gcloud sql instances patch INSTANCE_NAME \ --database-flags="1204"=on,"remote access"=on,"remote query timeout (s)"=300
Terraform
כדי להוסיף פלאגים של מסד נתונים, משתמשים במשאב של Terraform.
החלה של השינויים
כדי להחיל את הגדרות Terraform בפרויקט ב- Google Cloud , מבצעים את השלבים בקטעים הבאים.
הכנת Cloud Shell
- מפעילים את Cloud Shell.
-
מגדירים את Google Cloud פרויקט ברירת המחדל שבו רוצים להחיל את ההגדרות של Terraform.
תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
אם תגדירו ערכים ספציפיים בקובץ התצורה של Terraform, הם יבטלו את ערכי ברירת המחדל של משתני הסביבה.
הכנת הספרייה
לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).
-
יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת
.tf, למשלmain.tf. במדריך הזה, הקובץ נקראmain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.
מעתיקים את הקוד לדוגמה בקובץ
main.tfהחדש שיצרתם.לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.
- בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
- שומרים את השינויים.
-
מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
terraform init
אופציונלי: תוכלו לכלול את האפשרות
-upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:terraform init -upgrade
החלה של השינויים
-
בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
terraform plan
מתקנים את ההגדרות לפי הצורך.
-
מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform:terraform apply
ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!".
- פותחים את Google Cloud הפרויקט כדי לראות את התוצאות. במסוף Google Cloud , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.
מחיקת השינויים
כדי למחוק את השינויים:
- כדי להשבית את ההגנה מפני מחיקה, מגדירים בקובץ התצורה של Terraform את הארגומנט
deletion_protectionלערךfalse.deletion_protection = "false"
- מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform המעודכנות:terraform apply
-
כדי להסיר משאבים שהוחלו בעבר על הגדרות Terraform, מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה:terraform destroy
REST v1
כדי להגדיר דגל למסד נתונים קיים:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט
- instance-id: מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
תוכן בקשת JSON:
{
"settings":
{
"databaseFlags":
[
{
"name": "flag_name",
"value": "flag_value"
}
]
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
אם יש דגלים קיימים שהוגדרו למסד הנתונים, צריך לשנות את הפקודה הקודמת כדי לכלול אותם. הפקודה PATCH מחליפה את הדגלים הקיימים בדגלים שצוינו בבקשה.
REST v1beta4
כדי להגדיר דגל למסד נתונים קיים:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט
- instance-id: מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
תוכן בקשת JSON:
{
"settings":
{
"databaseFlags":
[
{
"name": "flag_name",
"value": "flag_value"
}
]
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
אם יש דגלים קיימים שהוגדרו למסד הנתונים, צריך לשנות את הפקודה הקודמת כדי לכלול אותם. הפקודה PATCH מחליפה את הדגלים הקיימים בדגלים שצוינו בבקשה.
ניקוי כל הדגלים לערכי ברירת המחדל
המסוף
- בGoogle Cloud מסוף, בוחרים את הפרויקט שמכיל את מכונת Cloud SQL שרוצים לנקות את כל הדגלים שלה.
- פותחים את המופע ולוחצים על עריכה.
- פותחים את הקטע Database flags (דגלים של מסד הנתונים).
- לוחצים על X לצד כל הדגלים שמוצגים.
- לוחצים על Save כדי לשמור את השינויים.
gcloud
כדי לאפס את כל הסימונים לערכי ברירת המחדל שלהם במופע:
gcloud sql instances patch INSTANCE_NAME \ --clear-database-flags
תתבקשו לאשר שהמופע יופעל מחדש.
REST v1
כדי לנקות את כל הדגלים של מופע קיים:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט
- instance-id: מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
תוכן בקשת JSON:
{
"settings":
{
"databaseFlags": []
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת 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":
{
"databaseFlags": []
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
איך קובעים אילו דגלים של מסד נתונים הוגדרו למופע
כדי לראות אילו דגלים הוגדרו למכונה של Cloud SQL:
המסוף
- בGoogle Cloud מסוף, בוחרים את הפרויקט שמכיל את מופע Cloud SQL שרוצים לראות את הדגלים של מסד הנתונים שהוגדרו בו.
- בוחרים את המופע כדי לפתוח את הדף Instance Overview (סקירה כללית של המופע).
הסימונים במסד הנתונים שהוגדרו מפורטים בקטע סימונים במסד הנתונים.
gcloud
קבלת מצב המופע:
gcloud sql instances describe INSTANCE_NAME
בפלט, הסימונים של מסד הנתונים מפורטים מתחת ל-settings בתור האוסף databaseFlags. מידע נוסף על הייצוג של הדגלים בפלט זמין במאמר ייצוג של משאבי מופעים.
REST v1
כדי להציג רשימה של סימונים שהוגדרו למופע:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט
- instance-id: מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
בפלט, מחפשים את השדה databaseFlags.
REST v1beta4
כדי להציג רשימה של סימונים שהוגדרו למופע:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט
- instance-id: מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
בפלט, מחפשים את השדה databaseFlags.
סימונים נתמכים
Cloud SQL תומך רק בדגלים שמפורטים בקטע הזה.
| דגל Cloud SQL | סוג ערכים קבילים והערות |
הפעלה מחדש נדרשת? |
|---|---|---|
| 1204 (דגל מעקב) | booleanon | off |
לא |
| 1222 (trace flag) | booleanon | off |
לא |
| 1224 (trace flag) | booleanon | off |
לא |
| 2528 (trace flag) | booleanon | off |
לא |
| 3205 (trace flag) | booleanon | off |
לא |
| 3226 (trace flag) | booleanon | off |
לא |
| 3625 (trace flag) | booleanon | off |
כן |
| 4199 (דגל מעקב) | booleanon | off |
לא |
| 4616 (trace flag) | booleanon | off |
לא |
| 7806 (trace flag) | booleanon | off |
כן |
| 13702 (trace flag) | booleanon | off |
כן |
| access check cache bucket count | integer0 ... 65536 |
לא |
| access check cache quota | integer0 ... 2147483647 |
לא |
| מסיכת זיקה | integer2147483648 ... 2147483647 |
כן |
| מסיכת קלט/פלט של תחום עניין משותף | integer2147483648 ... 2147483647 |
כן |
| agent xps | booleanon | off |
לא |
| השבתה של soft-numa אוטומטי | booleanon | off |
כן |
| cloud sql xe bucket name | stringשם הקטגוריה חייב להתחיל בקידומת gs://. |
לא |
| cloud sql xe output total disk size (mb) | integer10 ... 512 |
לא |
| cloud sql xe file retention (mins) | integer0 ... 10080 |
לא |
| cloud sql xe upload interval (mins) | integer1 ... 60 |
לא |
| cloudsql enable linked servers | booleanon | off |
לא |
| סף העלות להקבלה | integer0 ... 32767 |
לא |
| אימות מסד נתונים מוכל | booleanon | off
|
לא |
| cross db ownership chaining | booleanon | off
|
לא |
| סף הסמן | integer-1 ... 2147483647 |
לא |
| שפת ברירת המחדל של הטקסט המלא | integer0 ... 2147483647 |
לא |
| שפת ברירת מחדל | integer0 ... 32 |
לא |
| default trace enabled | booleanon | off |
לא |
| disallow results from triggers | booleanon | off |
לא |
| הפעלת סקריפטים חיצוניים | booleanon | off |
כן |
| רוחב פס לסריקת אתרים (מקסימום) | integer0 ... 32767 |
לא |
| ft crawl bandwidth (min) | integer0 ... 32767 |
לא |
| רוחב פס של הודעות (מקסימום) | integer0 ... 32767 |
לא |
| ft notify bandwidth (min) | integer0 ... 32767 |
לא |
| שיעור מילוי (%) | integer0 ... 100 |
כן |
| index create memory (kb) | integer704 ... 2147483647 |
לא |
| locks | integer5000 ... 2147483647 |
כן |
| מידת המקסימום של מקביליות (MAXDOP) | integer0 ... 32767 |
לא |
| max server memory (mb) | integer1000 ... 2147483647
יכול להיות ש-Cloud SQL יגדיר ערך לדגל הזה במכונות, על סמך הערכים המומלצים של מיקרוסופט. מידע נוסף זמין במאמר בנושא דגלים מיוחדים. |
לא |
| max text repl size (b) | integer-1 ... 2147483647 |
לא |
| max worker threads | integer128 ... 65535 |
לא |
| nested triggers | booleanon | off |
לא |
| אופטימיזציה של עומסי עבודה אד-הוקיים | booleanon | off |
לא |
| ph timeout (s) | integer1 ... 3600 |
לא |
| cloud sql enable polybase | booleanon | off |
כן |
| cloud sql enable sp_help_revlogin | booleanon | off |
לא |
| query governor cost limit | integer0 ... 2147483647 |
לא |
| זמן ההמתנה של השאילתה (שניות) | integer-1 ... 2147483647 |
לא |
| מרווח ההמתנה (דקות) | integer0 ... 32767 |
לא |
| גישה מרחוק | booleanon | off |
כן |
| פסק זמן (שניות) להתחברות מרחוק | integer0 ... 2147483647 |
לא |
| remote query timeout (s) | integer0 ... 2147483647 |
לא |
| להפוך מילים שנובעות מרעשי רקע | booleanon | off |
לא |
| שנה בשתי ספרות | integer1753 ... 9999 |
לא |
| חיבורי משתמשים | integer0, 10 ... 32767 |
כן |
| אפשרויות משתמש | integer0 ... 32767 |
לא |
דיווחים מיוחדים
בקטע הזה יש מידע נוסף על דגלים של Cloud SQL ל-SQL Server.
max degree of parallelism (MAXDOP)
Max degree of parallelism (MAXDOP) הוא דגל לניהול מסד נתונים של מיקרוסופט שזמין לשימוש ב-Cloud SQL ל-SQL Server. הדגל הזה מאפשר להגביל את המספר המקסימלי של השרשורים שמשמשים להרצת שאילתה יחידה בתוכנית מקבילית.
אם משאירים את ערך ברירת המחדל 0, מופעלים כל המעבדים הזמינים במופע של מסד הנתונים. עם זאת, אם מנהלים מופעים עם מאות מסדי נתונים, יכול להיות שהשיטה הזו לא תהיה יעילה או אפילו פרקטית.
מומלץ לפעול לפי ההמלצות שבתיעוד של מיקרוסופט כשמגדירים את הערך של הדגל, שיכול להשתנות בהתאם למספר צמתי ה-NUMA ומספר המעבדים הלוגיים הזמינים.
אפשר לבדוק את ההגדרה של צומת NUMA באמצעות תצוגת הניהול הדינמית (DMV) מתוך sys.dm_os_sys_info. כדי לבדוק את ההגדרה של צומת NUMA, משתמשים בקטע קוד שדומה לזה:
SELECT socket_count,cores_per_socket,numa_node_count
FROM sys.dm_os_sys_info
אפשר להשתמש ב-MAXDOP כדי להגביל את המספר המקסימלי של מעבדים שרוצים לאפשר להם לבצע תוכנית במקביל, אבל אפשר גם להשתמש בתכונה סף העלות להפעלה מקבילית כדי לציין את העלות המינימלית שרוצים להגדיר למעבד יחיד לפני הרחבת הפעולות המקבילות למעבד אחר. התכונות האלה מאפשרות לכם לשלוט טוב יותר ביעילות ובעלות של ביצוע תוכניות מקביליות.
הערכים המומלצים לתכונות האלה משתנים בהתאם למקרה, ומושפעים מהעומס על השרת ומהצרכים של האפליקציה.
כדי לקבל עזרה בקביעת הערכים הכי טובים של MAXDOP וסף העלות של מקביליות עבור השרתים שלכם, אפשר לעיין במקורות המידע הבאים:
שינוי ערך ברירת המחדל עוזר לפתור את הבעיות הפוטנציאליות הבאות:
- אם הדגל
max degree of parallelism (MAXDOP)מוגדר לערך0, מופעים או אפליקציות לקוח שנדרשות להורדות מ-SharePoint ייכשלו. ההורדה מ-SharePoint מפעילה בדיקה מוקדמת שדורשת ערך מספרי לסימון, ולא תקבל ערך שקטן מ-1. - השארת הדגל MAXDOP לערך ברירת המחדל
0, מציינת בפועל שאין הגבלה ושאפשר להשתמש בכל המעבדים הזמינים לפעולות מקבילות. יכול להיות שהערך הזה מתאים לשרתים שמריצים באופן שוטף שאילתות קטנות, אבל הוא עלול לגרום לבעיות בעלויות אם אתם צריכים להריץ גם שאילתות גדולות מאוד מדי פעם.
אפשר להשתמש בדגל max degree of parallelism (MAXDOP) כדי לשלוט במספר השרשורים בשלוש רמות:
- ברמת המופע, באמצעות דגלים של מסד הנתונים
- היקף מסד הנתונים, באמצעות TSQL
- ברמת השאילתה, באמצעות רמזים לשאילתה
שימו לב: אם משנים את הגודל של המופע, ערך הדגל לא משתנה.
max server memory (mb)
הדגל max server memory (mb) מגביל את כמות הזיכרון ש-Cloud SQL יכול להקצות למאגרים הפנימיים שלו.
מומלץ לא להגדיר ערך לדגל הזה, ולאפשר ל-Cloud SQL לנהל את הערך בשבילכם. אם אתם צריכים לנהל את הערך הזה באופן ידני, מומלץ להגדיר את הערך של max server memory (mb) ל-80% בערך מהזיכרון הזמין, כדי למנוע מ-SQL Server לצרוך את כל הזיכרון.
לעומת זאת, במקרים של מופעים עם נפח זיכרון גדול, יכול להיות ש-80% מהזיכרון הזמין הוא ערך נמוך מדי, ועלול להוביל לשימוש בזיכרון לא יעיל.
אם לא מגדירים ערך לדגל הזה, Cloud SQL מנהל את הערך באופן אוטומטי, על סמך גודל ה-RAM של המכונה. בנוסף, אם משנים את הגודל של המכונה, Cloud SQL משנה את הערך של הדגל באופן אוטומטי בהתאם להמלצות שלנו לגבי הגודל החדש של המכונה. במהלך שינוי הגודל, גם ערך שהוגדר ידנית עבור הדגל הזה יוסר. ההגדרה הזו עוזרת למסד הנתונים שלכם להשתמש במשאבים בצורה יעילה יותר, למנוע הקצאת יתר של משאבים, להפחית את הסיכוי לקריסה בגלל בעיות של חוסר זיכרון ולמנוע פגיעה בביצועים של המופע.
מידע נוסף זמין במאמרים בנושא זיכרון מקסימלי של השרת ואופטימיזציה של שימוש בזיכרון גבוה.
cloud sql enable sp_help_revlogin
הדגל cloud sql enable sp_help_revlogin מאפשר להפעיל או להשבית את sp_help_revlogin הפרוצדורה המאוחסנת במסד הנתונים msdb.
כשמגדירים את הדגל הזה לערך on, Cloud SQL מתקין את הפרוצדורה המאוחסנת במסד הנתונים msdb ומעניק הרשאות ביצוע למשתמש עם הרשאת אדמין sqlserver. כך אפשר לייצא התחברויות ל-SQL Server, גיבובים של סיסמאות ומזהי אבטחה (SID) כדי לעזור בהעברת התחברויות ובסנכרון בין מופעים.
כשהדגל הזה מוגדר לערך off, Cloud SQL מסיר את הפרוצדורה המאוחסנת ממסד הנתונים msdb.
מידע נוסף זמין במאמר ייצוא של פרטי התחברות ל-SQL Server.
פתרון בעיות
| שגיאה | פתרון בעיות |
|---|---|
| רוצים לשנות את אזור הזמן של מכונה ב-Cloud SQL. |
במאמר הגדרות של מכונות מוסבר איך לעדכן את אזור הזמן של מכונה. ב-Cloud SQL ל-SQL Server, אפשר להשתמש בפונקציה |