בעזרת Cloud SQL ל-MySQL אתם יכולים לפרוס מסדי נתונים רלציוניים מנוהלים ב-Google Cloud. אתם יכולים להקצות מכונות שמותאמות לעומס העבודה שלכם, ולהפוך את עבודות התחזוקה השוטפת לאוטומטיות, כמו תיקוני מערכת הפעלה, גיבויים ויתירות כשל.
לפני הקצאת מכונה, כדאי לבדוק את זמינות התכונות במבוא למהדורות של Cloud SQL. מידע מפורט על כל הגדרות המכונה זמין במאמר הגדרות מכונה.
מושגים מרכזיים
למכונה חדשה שנוצרה יש ארבעה מסדי נתונים של המערכת:
-
information_schema: מספק גישה למטא-נתונים של מסד הנתונים, מידע על שרת MySQL. -
mysql: סכימת המערכת. הוא מכיל טבלאות שמאחסנות מידע שנדרש לשרת MySQL בזמן שהוא פועל. -
performance_schema: תכונה למעקב אחרי הביצועים של שרת MySQL ברמה נמוכה. -
sys: מכילה קבוצה של אובייקטים שעוזרים למנהלי מסדי נתונים ולמפתחים לפרש נתונים שנאספו על ידי סכימת הביצועים.
מספר המכונות המקסימלי שאפשר להגדיר בפרויקט אחד תלוי בארכיטקטורת הרשת של המכונות האלה:
- ארכיטקטורת רשת חדשה של SQL: אפשר ליצור עד 1,000 מכונות בכל פרויקט.
- ארכיטקטורת הרשת הישנה של SQL: אפשר ליצור עד 100 מכונות בכל פרויקט.
- שימוש בשתי הארכיטקטורות: המגבלה תהיה בין 100 ל-1,000, בהתאם להתפלגות המכונות בין שתי הארכיטקטורות.
כדי לבקש הגדלה, צריך לשלוח בקשת תמיכה. רפליקות לקריאה נספרות כמכונות.
לפני שמתחילים
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the gcloud CLI.
-
Configure the gcloud CLI to use your federated identity.
For more information, see Sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init - מוודאים שבחשבון המשתמש שלכם מוגדרים התפקידים הבאים:
יצירת מכונה של MySQL
המסוף
-
נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
- לוחצים על Create instance.
- לוחצים על New instance.
- בחלונית Choose your database engine שבדף Create an instance, לוחצים על Choose MySQL.
בקטע Choose a Cloud SQL edition בדף Create a SQL Server instance, בוחרים את מהדורת Cloud SQL למכונה:
EnterpriseאוEnterprise Plus.מידע נוסף על מהדורות Cloud SQL זמין במאמר מבוא למהדורות Cloud SQL.
- בוחרים את המהדורה שהוגדרה מראש למכונה. כדי לראות את ההגדרות הקבועות מראש שזמינות, לוחצים על התפריט Edition preset.
- בקטע Instance info, בוחרים את גרסת מסד הנתונים של המכונה. כדי לראות את הגרסאות הזמינות, לוחצים על התפריט Database version.
- אם בוחרים ב-MySQL 8.0 וב-MySQL 8.0.35 או גרסה חדשה יותר בתור הגרסה המשנית, תיבת הסימון Enable automatic minor version upgrade נבחרת אוטומטית למכונה. אם לא רוצים להפעיל שדרוג גרסה אוטומטי, מבטלים את הסימון בתיבה.
- אם בוחרים ב-MySQL 8.0 וב-MySQL 8.0.34 או גרסה קודמת בתור הגרסה המשנית, תיבת הסימון Enable automatic minor version upgrade לא זמינה.
אי אפשר לערוך את גרסת מסד הנתונים אחרי שיוצרים את המכונה.
- בשדה Instance ID שבחלונית Instance info, מזינים מזהה למכונה.
אין צורך לכלול את מזהה הפרויקט בשם המכונה. הפעולה הזו מתבצעת באופן אוטומטי במקומות המתאימים (לדוגמה, בקובצי היומן).
- מגדירים סיסמה למשתמש root.
אפשר לבחור באפשרות No password, אבל מטעמי אבטחה לא מומלץ לעשות את זה.
-
אופציונלי: מגדירים מדיניות סיסמאות למכונה באופן הבא:
- מסמנים את התיבה הפעלת מדיניות סיסמאות.
- לוחצים על הכפתור Set password policy, מגדירים אחת או יותר מהאפשרויות הבאות ולוחצים על Save.
- Minimum length: מספר התווים המינימלי שהסיסמה חייבת להכיל.
- מורכבות הסיסמה: בודקת אם הסיסמה היא שילוב של אותיות קטנות, אותיות גדולות, מספרים ותווים לא אלפאנומריים.
- הגבלת השימוש החוזר בסיסמאות: מציינת את מספר הסיסמאות הקודמות שאי אפשר להשתמש בהן שוב.
נתמך רק ב-Cloud SQL ל-MySQL מגרסה 8.0 ואילך.
- לא לאפשר שם משתמש: מונע את השימוש בשם המשתמש בסיסמה.
- בקטע Choose region and zonal availability, בוחרים את האזור והתחום של המכונה. הזמינות באזורים עשויה להשתנות בהתאם למהדורה של Cloud SQL ל-MySQL. מידע נוסף זמין במאמר מידע על הגדרות המכונה.
מקמו את המכונה באותו אזור שבו נמצאים המשאבים שניגשים אליה. אי אפשר לשנות את האזור שבחרתם. ברוב המקרים לא צריך לציין אזור.
אם אתם מגדירים את המכונה לזמינות גבוהה, אתם יכולים לבחור גם אזור ראשי וגם אזור משני.
התנאים הבאים חלים כשמשתמשים באזור המשני במהלך יצירת המכונה:
- כברירת מחדל, האזור הראשי הוא
Anyוהאזור המשני הואAny (different from primary). - אם מציינים גם את האזור הראשי וגם את האזור המשני, הם חייבים להיות אזורים שונים.
- כברירת מחדל, האזור הראשי הוא
- בקטע Customize your instance, מעדכנים את ההגדרות של המכונה.
לוחצים על הצגת אפשרות ההגדרה כדי להציג את קבוצות ההגדרות. אחר כך מרחיבים את הקבוצות שרוצים לבדוק ומתאימים אישית את ההגדרות.
בצד שמאל מוצג סיכום של כל האפשרויות שבחרתם.
ההתאמה האישית של הגדרות המכונה האלה היא אופציונלית. ערכי ברירת המחדל מוקצים בכל מקרה שבו לא בוצעו התאמות אישיות.
הטבלה הבאה היא מדריך מהיר להגדרות של מכונות. למידע נוסף על כל הגדרה, עיינו בדף הגדרות המכונה.
הגדרה הערות סוג המכונה סוג המכונה בוחרים באפשרות "ליבת מעבד משותפת" או "ליבת מעבד ייעודית". בליבת מעבד משותפת, כל סוג מכונה מסווג לפי מספר המעבדים (הליבות) וכמות הזיכרון של המכונה. ליבות מספר יחידות ה-vCPU במכונה. מידע נוסף זיכרון נפח הזיכרון של המכונה, ב-GB. מידע נוסף בהתאמה אישית בסוג המכונה Dedicated core, במקום לבחור הגדרה מוגדרת מראש, לוחצים על הכפתור Custom כדי ליצור מכונה עם הגדרה בהתאמה אישית. אם בוחרים באפשרות הזו, צריך לבחור את מספר הליבות ואת כמות הזיכרון של המכונה. מידע נוסף מטמון הנתונים הפעלת מטמון הנתונים כברירת מחדל, האפשרות להפעיל את מטמון הנתונים נבחרת באופן אוטומטי במכונות של Cloud SQL ל-MySQL במהדורת Enterprise Plus. אם לא רוצים להפעיל את מטמון הנתונים, מבטלים את הסימון בתיבה הפעלת מטמון נתונים. מידע נוסף על מטמון נתונים זמין במאמר מטמון נתונים. אחסון סוג האחסון קובע אם המכונה משתמשת באחסון SSD או HDD. מידע נוסף נפח אחסון נפח האחסון שהוקצה למכונה. מידע נוסף הפעלת הגדלה אוטומטית של נפח האחסון ההגדרה הזו קובעת אם Cloud SQL יספק באופן אוטומטי נפח אחסון נוסף למכונה כשהמקום הפנוי יתחיל להיגמר. מידע נוסף הצפנה הצפנה בניהול Google זו אפשרות ברירת המחדל. מפתח הצפנה בניהול הלקוח (CMEK) בוחרים באפשרות להשתמש במפתח עם Cloud Key Management Service. מידע נוסף חיבורים כתובת IP פרטית מוסיפה כתובת IP פרטית למכונה. בוחרים במכונה חיבור של גישה לשירותים פרטיים, חיבור של Private Service Connect או בשניהם. הבחירה שלכם מספקת את החיבור לרשת הפרטית של המכונה. בכל המקרים, נדרשת הגדרה נוספת.
כדי לבחור ולהגדיר גישה לשירותים פרטיים:
- מסמנים את התיבה Private Services Access (PSA).
- בתפריט הנפתח רשת VPC, בוחרים את שם הרשת שאליה המכונה מתחברת.
- בתפריט הנפתח Allocated IP range, בוחרים באפשרות Automatic או בטווח כתובות IP ספציפי עם שם.
מידע נוסף על הגדרת גישה לשירותים פרטיים זמין במאמר הגדרת גישה לשירותים פרטיים. למכונה יכולה להיות גם כתובת IP ציבורית וגם כתובת IP פרטית.
כדי לבחור ולהגדיר את Private Service Connect:
- מסמנים את התיבה Private Service Connect (PSC).
- לוחצים על הוספת נקודת קצה.
- בקטע Endpoint setup, מבצעים את הפעולות הבאות:
- בכרטיס New Endpoint, בוחרים את הפרויקט שבו רוצים להגדיר את נקודת הקצה מהתפריט הנפתח Project.
- בוחרים רשת לנקודת הקצה בתפריט הנפתח Network.
- אם Network Connectivity API עדיין לא מופעל, לוחצים על Enable.
- כדי להגדיר את ההרשאות ליצירה אוטומטית של מדיניות החיבור לשירות, לוחצים על Confirm Network Setup.
מידע נוסף על הגדרת Private Service Connect זמין במאמר הגדרת Private Service Connect.
כתובת IP ציבורית מוסיפה כתובת IP ציבורית למכונה. אחר כך אפשר להוסיף רשתות מורשות כדי להתחבר למכונה. למכונה יכולה להיות גם כתובת IP ציבורית וגם כתובת IP פרטית.
רשתות מורשות מוסיפים את השם של הרשת החדשה ואת כתובת הרשת. מידע נוסף
יש הרשאה ל-Data API אם מסמנים את התיבה הזו, משתמשים מורשים יכולים לשלוח קריאה ל-Data API כדי להריץ הצהרות SQL במכונה. במכונות עם כתובת IP פרטית בלבד, המשתמשים המורשים יכולים להפעיל את Data API מהאינטרנט הציבורי.
הפעלת נתיב פרטי אם מסמנים את התיבה הזו, שירותים אחרים של Google Cloud , כמו BigQuery, יכולים לגשת לנתונים ב-Cloud SQL ולשלוח שאילתות לגבי הנתונים האלה דרך חיבור פרטי.
הפעלת מאגר חיבורים מנוהל אם מסמנים את התיבה הזו, מפעילים את מאגר החיבורים המנוהל במכונה. באמצעות Managed Connection Pooling, אפשר לשנות את קנה המידה של עומסי העבודה על ידי אופטימיזציה של ניצול המשאבים וזמן האחזור של החיבור למכונות Cloud SQL, באמצעות איחוד וריבוב. מידע נוסף על מאגר מנוהל של חיבורים זמין במאמר סקירה כללית על מאגר מנוהל של חיבורים.
אבטחה מצב רשות האישורים של השרת צריך לבחור את סוג רשות האישורים (CA) שחותמת על אישור השרת של מכונת Cloud SQL הזו. מידע נוסף
כברירת מחדל, כשיוצרים מכונה במסוף Google Cloud , המכונה משתמשת ברשות אישורים פנימית בניהול Google (
GOOGLE_MANAGED_INTERNAL_CA), שהיא האפשרות של רשות אישורים לכל מכונה.רוטציה אוטומטית של אישורי שרת אם בוחרים באפשרות של רשות אישורים (CA) של CAS בניהול Google (
האפשרות הזו מושבתת כברירת מחדל.GOOGLE_MANAGED_CAS_CA) או באפשרות של רשות אישורים פנימית של CAS בניהול הלקוח (CUSTOMER_MANAGED_CAS_CA) כמצב ה-CA של השרת במכונה, אפשר לבחור אם להחליף את אישור השרת במכונה באופן אוטומטי. מידע נוסף על רוטציה אוטומטית של אישורי שרת ב-Cloud SQL זמין במאמר הפעלת רוטציה אוטומטית של אישורי שרת.הגנה על נתונים רמת הגיבוי אפשרות הגיבוי של המכונה. אתם יכולים לבחור בין גיבויים משופרים לבין גיבויים רגילים. גיבויים אוטומטיים חלון הזמן שבו אתם רוצים שהגיבויים יתחילו. מידע נוסף בחירת המיקום לאחסון הגיבויים ברוב המקרים, בוחרים באפשרות Multi-region. אם אתם צריכים לאחסן גיבויים באזור ספציפי, למשל מסיבות רגולטוריות, בחרו באפשרות Region ובחרו את האזור שלכם מהתפריט הנפתח Location. בחירת מספר הגיבויים האוטומטיים שיישמרו מספר הגיבויים האוטומטיים שרוצים לשמור (מיום אחד עד 365 ימים). מידע נוסף הפעלת שחזור מערכת מנקודה מסוימת בזמן (PITR) הפעלת שחזור מערכת מנקודה מסוימת בזמן (PITR) וכתיבה מראש ביומן (WAL). מידע נוסף הפעלת ההגנה מפני מחיקה קובע אם להגן על מכונה מפני מחיקה מקרית. מידע נוסף הפעלת גיבויים שנשמרו אחרי מחיקת המכונה ההגדרה הזו קובעת אם גיבויים אוטומטיים וגיבויים על פי דרישה נשמרים אחרי שמוחקים מכונה. מידע נוסף בוחרים כמה ימים לשמור את היומנים. מגדירים את משך השמירה של יומן הכתיבה מראש לפרק זמן של יום אחד עד 7 ימים. הגדרת ברירת המחדל היא 7 ימים. מידע נוסף תחזוקה חלון מועדף קובע חלון זמן של שעה שבו Cloud SQL יכול לבצע תחזוקה משבשת במכונה. אם לא תגדירו חלון זמן, אפשר יהיה לבצע תחזוקה שמשבשת את הפעילות בכל זמן. מידע נוסף סדר העדכונים התזמון המועדף לעדכוני מכונות, ביחס למכונות אחרות באותו פרויקט. מידע נוסף דגלים הוספת דגל אתם יכולים להשתמש בדגלים לניהול מסד נתונים כדי לשלוט בהגדרות ובפרמטרים של המכונה. מידע נוסף תובנות לגבי שאילתות הפעלת Query Insights אם תסמנו את התיבה הזו, תפעילו את Query Insights במכונה. התכונה "תובנות לגבי שאילתות" מספקת מידע מפורט על השאילתות במסד הנתונים, כולל הביצועים של השאילתות, הטקסט של השאילתות ותוכניות הביצוע של השאילתות. אחרי שבוחרים בתכונה "תובנות לגבי שאילתות", אפשר להפעיל תכונות נוספות שמשויכות אליה. מידע נוסף על התכונות האלה ועל תובנות לגבי שאילתות זמין במאמר שימוש בתובנות לגבי שאילתות כדי לשפר את הביצועים של שאילתות.
תיעוד ביצועים כשמסמנים את התיבה Enable Query insights, גם תיעוד הביצועים של MySQL מופעל באופן אוטומטי.
אם אתם לא רוצים להפעיל את תיעוד הביצועים של MySQL, בטלו את הסימון של התיבה Performance capture. אפשר להפעיל או להשבית את תיעוד הביצועים של MySQL במכונה קיימת במועד מאוחר יותר, על ידי עדכון הגדרות המכונה. מידע נוסף על תיעוד הביצועים של MySQL זמין במאמר סקירה כללית על תיעוד הביצועים של Cloud SQL.
תוויות הוספת תווית מוסיפים מפתח וערך לכל תווית שמוסיפים. אתם משתמשים בתוויות כדי לארגן את המכונות. - לוחצים על Create Instance.
הערה: יכול להיות שהמכונה תיווצר רק תוך כמה דקות. עם זאת, אפשר לראות מידע על המכונה בזמן שהיא נוצרת.
כדי לראות את הסיסמה בטקסט פשוט, לוחצים על הסמל הצגת הסיסמה.
אתם יכולים להזין את הסיסמה באופן ידני או ללחוץ על Generate כדי ש-Cloud SQL ייצור סיסמה באופן אוטומטי.
gcloud
במאמר התקנת ה-CLI של gcloud מוסבר איך מתקינים את ה-CLI של gcloud ומתחילים להשתמש בו. למידע על הפעלת Cloud Shell, קראו את המסמכים של Cloud Shell.
- משתמשים בפקודה
gcloud sql instances createכדי ליצור את המכונה: - מספר המעבדים הווירטואליים חייב להיות 1 או מספר זוגי בין 2 ל-96 (עד 80 באזורים נבחרים).
- הזיכרון צריך להיות:
- 0.9GB עד 6.5GB לכל vCPU
- כפולה של 256MB
- 3.75GB (3,840MB) לפחות
- האזורים חייבים להיות אזורים תקינים.
- אם מציינים את האזור המשני, צריך לציין גם את האזור הראשי.
- אם מציינים את האזור הראשי והאזור המשני, הם חייבים להיות אזורים שונים.
- אם מציינים את האזור הראשי והמשני, הם חייבים להיות באותו אזור.
- אתם משתמשים בפרמטר
--no-assign-ip. - משתמשים בפרמטר
--networkכדי לציין את השם של רשת ה-VPC שבה רוצים להשתמש כדי ליצור חיבור פרטי. -
GOOGLE_MANAGED_INTERNAL_CA: זהו ערך ברירת המחדל. באפשרות הזו, רשות אישורים (CA) פנימית שמוקדשת לכל מכונה של Cloud SQL חותמת על אישור השרת של המכונה הזו. -
GOOGLE_MANAGED_CAS_CA: באפשרות הזו נעשה שימוש בהיררכיית CA שמורכבת מ-CA בסיסי ומ-CAs של שרתים משניים שמנוהלים על ידי Cloud SQL ומתארחים ב- Google Cloud Certificate Authority Service (שירות CA). רשויות האישורים המשניות של השרת באזור חותמות על אישורי השרת ומשותפות בין המכונות באזור. האפשרות הזו נתמכת רק ב-MySQL מגרסה 8.0.30 ואילך. -
CUSTOMER_MANAGED_CAS_CA: באפשרות הזו אתם מגדירים את היררכיית ה-CA ומנהלים את הרוטציה של אישורי ה-CA. יוצרים מאגר CA ב-CA Service באותו אזור של המכונה. אחת מרשויות האישורים במאגר משמשת לחתימה על אישור השרת. האפשרות הזו נתמכת רק ב-MySQL מגרסה 8.0.30 ואילך. מידע נוסף מופיע במאמר שימוש ברשות אישורים בניהול הלקוח. -
NO_AUTOMATIC_ROTATION: זהו ערך ברירת המחדל. אם בוחרים באפשרות הזו, לא יהיה סבב אוטומטי של אישורי השרת. צריך לבצע רוטציה של אישורי השרת באופן ידני. -
AUTOMATIC_ROTATION_DURING_MAINTENANCE: באפשרות הזו, הרוטציה האוטומטית של אישורי השרת מופעלת במהלך התחזוקה המתוזמנת של Cloud SQL או במהלך עדכוני תחזוקה בשירות עצמי. הערך שלserver_ca_modeצריך להיותGOOGLE_MANAGED_CAS_CAאוCUSTOMER_MANAGED_CAS_CA. - האזורים חייבים להיות אזורים תקינים.
- אם מציינים את האזור המשני, צריך לציין גם את האזור הראשי.
- שימו לב לכתובת ה-IP שהוקצתה באופן אוטומטי.
אם אתם לא משתמשים ב-Cloud SQL Auth Proxy, תשתמשו בכתובת הזו בתור כתובת המארח שהאפליקציות או הכלים שלכם משתמשים בה כדי להתחבר למכונה.
- מגדירים את הסיסמה למשתמש "root@%" ב-MySQL:
gcloud sql users set-password root \ --host=% \ --instance INSTANCE_NAME \ --password PASSWORD
במכונות של Cloud SQL Enterprise Plus:
gcloud sql instances create INSTANCE_NAME \ --region=REGION \ --tier=TIER \ --database-version=DATABASE_VERSION \ --edition=ENTERPRISE_PLUS
במכונות של Cloud SQL מהדורת Enterprise:
gcloud sql instances create INSTANCE_NAME \ --cpu=NUMBER_CPUS \ --memory=MEMORY_SIZE \ --region=REGION
--tier אם בחרתם ב-db-f1-micro או ב-db-g1-small כסוג המכונה:
gcloud sql instances create INSTANCE_NAME \ --tier=API_TIER_STRING \ --region=REGION
יש הגבלות על הערכים של מעבדי ה-vCPU וגודל הזיכרון:
לדוגמה, הפקודה הבאה יוצרת מכונה של Cloud SQL מהדורת Enterprise עם שני מעבדי vCPU וזיכרון בנפח 7,680MB:
gcloud sql instances create myinstance \ --database-version=MYSQL_8_0 \ --cpu=2 \ --memory=7680MB \ --region=us-central1
הפקודה הבאה יוצרת מכונה של Cloud SQL Enterprise Plus עם ארבע ליבות:
gcloud sql instances create myinstance \ --database-version=MYSQL_8_0_31 \ --tier=db-perf-optimized-N-4 \ --edition=ENTERPRISE_PLUS \ --region=us-central1
ערך ברירת המחדל של REGION הוא us-central1.
אל תכללו מידע רגיש או פרטים אישיים מזהים בשם המכונה, כי הוא גלוי כלפי חוץ.
אין צורך לכלול את מזהה הפרויקט בשם המכונה. הפעולה הזו מתבצעת באופן אוטומטי במקומות המתאימים (לדוגמה, בקובצי היומן).
אם אתם יוצרים מכונה לזמינות גבוהה, אתם יכולים לציין גם את האזור הראשי וגם את האזור המשני באמצעות הפרמטרים --zone ו---secondary-zone. התנאים הבאים חלים כשמשתמשים באזור המשני במהלך יצירה או עריכה של מכונה:
אפשר להוסיף עוד פרמטרים כדי לקבוע הגדרות אחרות של המכונה:
| הגדרה | פרמטר | הערות |
|---|---|---|
| פרמטרים נדרשים | ||
| גרסת מסד הנתונים | --database-version |
גרסת מסד הנתונים, שמבוססת על מהדורת Cloud SQL. |
| אזור | --region |
לעיון בערכים תקינים |
| הגדרת מדיניות סיסמאות | ||
| הפעלת מדיניות הסיסמאות | --enable-password-policy |
מפעילה את מדיניות הסיסמאות כשמשתמשים בה. כברירת מחדל, מדיניות הסיסמאות מושבתת. כשמשביתים את המדיניות באמצעות הפרמטר --clear-password-policy,
הפרמטרים האחרים של מדיניות הסיסמאות מתאפסים.
|
| אורך מינימלי | --password-policy-min-length |
מציינת את מספר התווים המינימלי שהסיסמה חייבת להכיל. |
| מורכבות הסיסמה | --password-policy-complexity |
ההגדרה מפעילה את בדיקת מורכבות הסיסמה כדי לוודא שהסיסמה מכילה לפחות תו אחד מכל אחד מהסוגים הבאים: אותיות קטנות, אותיות גדולות, מספרים ותווים שאינם אלפאנומריים. מגדירים את הערך בתור COMPLEXITY_DEFAULT. |
| הגבלת השימוש החוזר בסיסמאות | --password-policy-reuse-interval |
מציינת את מספר הסיסמאות הקודמות שאי אפשר להשתמש בהן שוב. נתמך רק ב-Cloud SQL ל-MySQL מגרסה 8.0 ואילך. |
| חסימת שם המשתמש | --password-policy-disallow-username-substring |
מונעת שימוש בשם המשתמש בסיסמה. כדי להשבית את הבדיקה, משתמשים בפרמטר --no-password-policy-disallow-username-substring. |
| קישוריות | ||
| מאגר חיבורים מנוהל | --enable-connection-pooling |
הפעלת מאגר חיבורים מנוהל במכונה החדשה. אחרי שיוצרים את המכונה, אפשר לקבוע הגדרות מתקדמות של Managed Connection Pooling.
הערה: התכונה הזו זמינה רק למכונות של Cloud SQL Enterprise Plus edition שמוגדרות בהתאם לדרישות של מאגר החיבורים המנוהל. |
| כתובת IP פרטית |
גישה לשירותים פרטיים
Private Service Connect
|
--network: השם של רשת ה-VPC שבה רוצים להשתמש במכונה הזו. הגישה לשירותים פרטיים כבר צריכה להיות מוגדרת ברשת. בפרויקטים חדשים או ריקים, צריך להפעיל את servicenetworking.googleapis.com, להקצות טווח של כתובות IP ולהגדיר קישור (peering) בין רשתות VPC שכנות לפני שיוצרים את המכונה. זמין רק לפקודת הבטא (gcloud beta sql instances create).
הפרמטר הזה תקף רק אם: במכונות של Cloud SQL שמשתמשות ב-Private Service Connect לחיבורים דרך IP פרטי, משתמשים בדגלים הבאים: <!--: enables private network connections to the Cloud SQL instance using Private Service Connect. --> מידע נוסף על הגדרת Private Service Connect זמין במאמר הגדרת Private Service Connect. |
| גישה ל-Data API | --data-api-access |
שולט בקישוריות למכונה באמצעות Data API. היא מושבתת כברירת מחדל. מגדירים את הערך ALLOW_DATA_API כדי לאפשר למשתמשים להשתמש ב-Data API כדי להתחבר למכונה. במכונות שמוגדרות עם כתובת IP פרטית בלבד, משתמשים מורשים יכולים לשלוח קריאה ל-Data API במכונה מהאינטרנט הציבורי. מגדירים את הערך DISALLOW_DATA_API כדי לא לאפשר שימוש ב-Data API.
|
| כתובת IP ציבורית | --authorized-networks |
בחיבורים של כתובות IP ציבוריות, רק חיבורים מרשתות מורשות יכולים להתחבר למכונה. מידע נוסף |
| אכיפת SSL |
|
הפרמטר הפרמטר |
| מצב CA של שרת | --server-ca-mode |
הדגל |
| רוטציה אוטומטית של אישורי שרת | --server-certificate-rotation-mode |
הדגל |
| ארכיטקטורת רשת | --enforce-new-sql-network-architecture |
אכיפת השימוש בארכיטקטורת הרשת החדשה במכונה בזמן היצירה. אם משתמשים בדגל הזה כשיוצרים מכונה לפני שהפרויקט שודרג באופן מלא לארכיטקטורת הרשת החדשה, יכול להיות שתהיה צריכת יתר של כתובות IP או שלא תצליחו ליצור מכונות אם לא נשארו מספיק כתובות IP בטווח כתובות ה-IP שהוקצה. מידע נוסף זמין במאמרים שדרוג מכונה לארכיטקטורת הרשת החדשה והקצאת טווח של כתובות IP. |
| סוג המכונה והאחסון | ||
| סוג המכונה | --tier |
משמש לציון מכונה של ליבת מעבד משותפת (db-f1-micro או db-g1-small). להגדרה של מכונה בהתאמה אישית, צריך להשתמש בפרמטרים --cpu או --memory. אפשר לקרוא את המאמר בחירת סדרת מכונות כדי לראות את ההגדרות האפשריות.
|
| סוג האחסון | --storage-type |
קובע אם המכונה משתמשת באחסון SSD או HDD. מידע נוסף |
| נפח אחסון | --storage-size |
נפח האחסון שהוקצה למכונה, ב-GB. מידע נוסף |
| הגדלה אוטומטית של נפח האחסון | --storage-auto-increase |
ההגדרה הזו קובעת אם Cloud SQL יספק באופן אוטומטי נפח אחסון נוסף למכונה כשהמקום הפנוי יתחיל להיגמר. מידע נוסף |
| מגבלת ההגדלה האוטומטית של נפח האחסון | --storage-auto-increase-limit |
הגודל המקסימלי שאליו Cloud SQL יכול להגדיל את נפח האחסון באופן אוטומטי, ב-GB. ערך ברירת המחדל הוא unlimited, שמאפשר להגדיל את נפח האחסון עד לנפח המקסימלי שזמין לרמת המכונה.
מידע נוסף
|
| מטמון נתונים (אופציונלי) | --enable-data-cache |
הפעלה או השבתה של מטמון הנתונים של המכונות. מידע נוסף זמין במאמר מטמון נתונים. |
| גיבויים אוטומטיים וזמינות גבוהה | ||
| זמינות גבוהה | --availability-type |
במכונה עם זמינות גבוהה, מגדירים את הערך REGIONAL.
מידע נוסף
|
| אזור משני | --secondary-zone |
אם יוצרים מכונה לזמינות גבוהה, אפשר לציין גם את האזור הראשי וגם את האזור המשני באמצעות --zone ו---secondary-zone parameters. ההגבלות הבאות חלות כשמשתמשים באזור המשני במהלך יצירה או עריכה של מכונה:
אם מציינים את האזור הראשי והאזור המשני, הם חייבים להיות אזורים שונים. אם מציינים את האזור הראשי והמשני, הם חייבים להיות באותו אזור. |
| גיבויים אוטומטיים | --backup-start-time |
חלון הזמן שבו אתם רוצים שהגיבויים יתחילו. מידע נוסף |
| הגדרות שמירה של גיבויים אוטומטיים | --retained-backups-count |
מספר הגיבויים האוטומטיים שרוצים לשמור. מידע נוסף |
| רישום בינארי ביומן | --enable-bin-log |
רישום ביומן בינארי מאפשר רפליקציה ושחזור מערכת מנקודה מסוימת בזמן (PITR). מידע נוסף |
| הגדרות שמירה של יומן בינארי | --retained-transaction-log-days |
מספר הימים לשמירת יומנים בינאריים לצורך שחזור מערכת מנקודה מסוימת בזמן (PITR). מידע נוסף |
| שחזור מערכת מנקודה מסוימת בזמן (PITR) | --enable-point-in-time-recovery |
הפעלת שחזור מערכת מנקודה מסוימת בזמן (PITR) וכתיבה מראש ביומן (WAL). מידע נוסף |
| הוספת דגלים לניהול מסד נתונים | ||
| דגלים לניהול מסד נתונים | --database-flags |
אתם יכולים להשתמש בדגלים לניהול מסד נתונים כדי לשלוט בהגדרות ובפרמטרים של המכונה. מידע נוסף על דגלים לניהול מסדי נתונים מידע נוסף על הפורמט של הפרמטר הזה |
| thought לוח זמנים לתחזוקה | ||
| חלון זמן לתחזוקה | --maintenance-window-day,
--maintenance-window-hour |
מגדיר חלון זמן של שעה שבו Cloud SQL יכול לבצע פעולות תחזוקה שמשבשות את הפעילות במכונה. אם לא מגדירים חלון זמן, אפשר לבצע תחזוקה משבשת בכל שלב. מידע נוסף |
| תזמון התחזוקה | --maintenance-release-channel |
התזמון המועדף לעדכוני מכונות, ביחס למכונות אחרות באותו פרויקט. משתמשים ב-preview לעדכונים מוקדמים יותר, וב-production לעדכונים מאוחרים יותר.
מידע נוסף
|
| שדרוג אוטומטי של גרסה משנית | ||
| הפעלת שדרוג אוטומטי של גרסאות משניות | --enable-auto-upgrade-minor-version |
במכונות של MySQL 8.0 שבהן מציינים גרסה משנית של 8.0.35 ואילך, לדוגמה --database-version=MYSQL_8_0_35--database-version=MYSQL_8_0 |
| תובנות לגבי שאילתות | ||
--insights-config-query-insights-enabled |
הפעלת תובנות לגבי שאילתות כדי לספק ניתוח של שאילתות ותוכניות לביצוע שאילתות. | |
--insights-config-enhanced-query-insights-enabled |
הפעלת תובנות משופרות לגבי שאילתות במהדורת Cloud SQL Enterprise Plus, כדי לספק ניתוח מפורט יותר של שאילתות. | |
--performance-capture-config |
משתמשים בדגל הזה כדי לקבוע את ההגדרות של תיעוד הביצועים של MySQL במכונה של MySQL.
כשמפעילים את התכונה "תובנות לגבי שאילתות" או "תובנות משופרות לגבי שאילתות", מפעילים גם את תיעוד הביצועים של MySQL עם תנאי טריגר שמוגדרים כברירת מחדל. אפשר להגדיר או להשבית את תיעוד הביצועים באמצעות הדגל --performance-capture-config באותה פקודת יצירה, או על ידי עדכון המכונה מאוחר יותר.
מידע נוסף זמין במאמר הגדרת תיעוד הביצועים של MySQL.
|
|
| רשת SAN בהתאמה אישית | ||
| הוספת שם חלופי של בעלים (SAN) בהתאמה אישית | --custom-subject-alternative-names=DNS_NAMES |
אם אתם רוצים להשתמש בשם DNS בהתאמה אישית כדי להתחבר למכונה של Cloud SQL במקום להשתמש בכתובת IP, אתם צריכים להגדיר את השם החלופי של הבעלים (SAN) בהתאמה אישית כשאתם יוצרים את המכונה. שם ה-DNS בהתאמה אישית שאתם מזינים בהגדרה של ה-SAN בהתאמה אישית מתווסף לשדה ה-SAN של אישור השרת של המכונה. כך אפשר להשתמש בשם ה-DNS בהתאמה אישית עם אימות שם המארח באופן מאובטח. כדי להשתמש בשם ה-DNS בהתאמה אישית בלקוחות ובאפליקציות, צריך להגדיר את המיפוי בין שם ה-DNS לכתובת ה-IP. התהליך הזה נקרא פענוח DNS. אפשר להוסיף רשימה מופרדת בפסיקים של עד שלושה שמות DNS בהתאמה אישית להגדרה של SAN בהתאמה אישית. |
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
יצירת המכונה
בדוגמה הזו נוצרת מכונה. הפקודה כוללת גם כמה פרמטרים אופציונליים, כמו גיבויים ורישום ביומן בינארי. רשימה מלאה של הפרמטרים לקריאה הזו מופיעה בדף Instances:insert. במאמר הגדרות של מכונות מוסבר על ההגדרות של המכונות, כולל הערכים התקינים של האזור.
אל תכללו מידע רגיש או פרטים אישיים מזהים במזהה המכונה, כי הוא גלוי לגורמים חיצוניים.
אין צורך לכלול את מזהה הפרויקט בשם המכונה. הפעולה הזו מתבצעת באופן אוטומטי במקומות המתאימים (לדוגמה, בקובצי היומן).
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט
- INSTANCE_ID: מזהה המכונה
- DATABASE_VERSION: גרסת מסד הנתונים.
לדוגמה:
MYSQL_9_7,MYSQL_8_4אוMYSQL_8_0_37. אם לא מציינים גרסת מסד נתונים, גרסת ברירת המחדל היאMYSQL_8_4. - REGION: האזור
- MACHINE_TYPE: סוג המכונה
- EDITION_TYPE: מהדורת Cloud SQL
- DATA_CACHE_ENABLED: (אופציונלי) מגדירים את הערך
trueכדי להפעיל את מטמון הנתונים במכונה - PRIVATE_NETWORK: מציינים את השם של רשת הענן הווירטואלי הפרטי (VPC) שרוצים להשתמש בה במכונה הזו. הגישה לשירותים פרטיים כבר צריכה להיות מוגדרת ברשת.
- AUTHORIZED_NETWORKS: בקישורים דרך IP ציבוריים, מציינים את החיבורים מרשתות מורשות שיכולות להתחבר למכונה.
- CA_MODE: מציינים היררכיה של רשות אישורים למכונה,
GOOGLE_MANAGED_INTERNAL_CAאוGOOGLE_MANAGED_CAS_CA. אם לא מציינים אתserverCaMode, הגדרת ברירת המחדל היאGOOGLE_MANAGED_INTERNAL_CA. התכונה הזו נמצאת בגרסת טרום-השקה (Preview). - SERVER_CERTIFICATE_ROTATION_MODE: לרוטציה אוטומטית של אישורי שרת עבור
- SERVER_CERTIFICATE_ROTATION_MODE: כדי להגדיר רוטציה אוטומטית של אישורי השרת במכונה, מציינים
AUTOMATIC_ROTATION_DURING_MAINTENANCE. אם לא מציינים אתserverCertificateRotationMode, הגדרת ברירת המחדל היאNO_AUTOMATIC_ROTATION. - DNS_NAMES: מוסיפים רשימה מופרדת בפסיקים של עד שלושה שמות DNS לאישור השרת של המכונה ב-Cloud SQL. אתם יכולים לאבטח כמה שמות DNS באמצעות אישור אחד. התכונה הזו זמינה בגרסת טרום-השקה (Preview) ורק למכונות
CUSTOMER_MANAGED_CAS_CA.
כדי להגדיר מדיניות סיסמאות כשיוצרים מכונה, צריך לכלול את האובייקט passwordValidationPolicy בבקשה. מגדירים את הפרמטרים הבאים, לפי הצורך:
-
enablePasswordPolicy: מפעיל את מדיניות הסיסמאות כשהוא מוגדר לערךtrue.כדי להסיר את מדיניות הסיסמאות, אפשר להשתמש בבקשת
PATCHעם הערךnullבשבילenablePasswordPolicy. במקרה כזה, הפרמטרים האחרים של מדיניות הסיסמאות מאופסים. -
minLength: מציין את מספר התווים המינימלי שהסיסמה חייבת להכיל. -
complexity: בדיקה אם הסיסמה היא שילוב של אותיות קטנות, אותיות רישיות, מספרים ותווים לא אלפאנומריים. ערך ברירת המחדל הואCOMPLEXITY_DEFAULT. -
reuseInterval: מציין את מספר הסיסמאות הקודמות שאי אפשר להשתמש בהן שוב.נתמך רק ב-Cloud SQL ל-MySQL מגרסה 8.0 ואילך.
-
disallowUsernameSubstring: אם הערך הואtrue, המשתמשים לא יכולים להשתמש בשם המשתמש שלהם בסיסמה.
אתם יכולים להשתמש בשדה sqlNetworkArchitecture כדי לאכוף את השימוש בארכיטקטורת הרשת החדשה במכונה בזמן היצירה, גם אם הפרויקט לא שודרג באופן מלא.
פרטים נוספים על ארכיטקטורת הרשת החדשה וההשלכות שלה מופיעים במאמרים
שדרוג מכונה לארכיטקטורת הרשת החדשה והקצאת טווח של כתובות IP.
כדי להגדיר את המכונה לתובנות לגבי שאילתות, מבצעים את ההחלפות המתאימות בקטע insightsConfig:
- QUERY_INSIGHTS_ENABLED: צריך להגדיר את הערך
trueכדי להפעיל את Query Insights במכונה. - RECORD_CLIENT_ADDRESS: צריך להגדיר את הערך
trueכדי לאחסן את כתובות ה-IP של הלקוחות שמהן מגיעות השאילתות, וכדי לקבץ את הנתונים האלה ולהריץ עליהם מדדים. השאילתות מגיעות מיותר ממארח אחד. בדיקת התרשימים של שאילתות מכתובות ה-IP של הלקוח יכולה לעזור לזהות את מקור הבעיה. - RECORD_APPLICATION_TAGS: הגדר ל-
trueכדי לאחסן תגי אפליקציה שעוזרים לך לקבוע את ממשקי ה-API ואת נתיבי בקר תצוגה של מודל (MVC) שמבצעים בקשות ולקבץ את הנתונים כדי להריץ מדדים מולם. כדי להשתמש באפשרות הזו, צריך להוסיף הערות לשאילתות עם קבוצה ספציפית של תגים. כדי לעשות את זה, אפשר להשתמש בספריית הכלים האוטומטיים למיפוי אובייקטים יחסי (ORM) בקוד פתוח sqlcommenter. המידע הזה עוזר לתובנות לגבי שאילתות לזהות את מקור הבעיה ואת ה-MVC שממנו הבעיה מגיעה. נתיבי אפליקציות עוזרים לכם לעקוב אחרי האפליקציות. - QUERY_STRING_LENGTH: מגדיר את מגבלת האורך של השאילתה בבייטים, מגדיר את מגבלת ברירת המחדל של אורך השאילתה. שאילתות ארוכות יותר שימושיות יותר לשאילתות ניתוח, אבל הן גם דורשות יותר זיכרון. כדי לשנות את אורך השאילתה, צריך להפעיל מחדש את המכונה.
עדיין אפשר להוסיף תגים לשאילתות שחורגות ממגבלת האורך.
ב-Cloud SQL מהדורת Enterprise, אפשר לציין ערך בבייטים מ-
256עד4500. אורך השאילתה שמוגדר כברירת מחדל הוא1024בייטים. במהדורת Cloud SQL Enterprise Plus, אפשר לציין מגבלה בבייטים מ-1עד1048576. ערך ברירת המחדל הוא1024בייטים (1KB). - QUERY_PLANS_PER_MINUTE: מספר התוכניות לביצוע שאילתות שרוצים לתעד בכל דקה.
כברירת מחדל, נלכדות עד 5 דגימות של תוכניות לביצוע שאילתות בדקה בכל מסדי הנתונים במכונה. הגדלת תדירות הדגימה עשויה לספק יותר נקודות על הגרף, אבל עלולה להוסיף תקורה לביצועים. כדי להשבית את הדגימה, מגדירים את הערך הזה ל-
0. ב-Cloud SQL מהדורת Enterprise, אפשר לשנות את הערך מ-0 ל-20. במהדורת Cloud SQL Enterprise Plus, אפשר להגדיל את המספר המקסימלי עד ל-200 כדי לספק יותר נקודות על הגרף. - ENABLE_ENHANCED_QUERY_INSIGHTS_ENABLED: צריך להגדיר את הערך
trueכדי להפעיל את התובנות המשופרות לגבי שאילתות במכונה.
בשדה performanceCaptureConfig, צריך לכלול את הגדרות הדגלים הבאות.
אם לא תגדירו ערכים לדגלים, סוכן המעקב ישתמש בערכי ברירת המחדל של הספים. מידע נוסף על הטריגרים שמוגדרים על ידי הדגלים האלה זמין במאמר טריגרים לתיעוד ביצועים.
- PERFORMANCE_CAPTURE_ENABLED: צריך להגדיר את הערך
falseכדי להשבית את תיעוד הביצועים של MySQL במכונה. אם המדיניותqueryInsightsEnabledמוגדרת לערךtrue, תיעוד הביצועים מופעל באופן אוטומטי ומחיל את ערכי ברירת המחדל על תנאי הטריגר שמבוססים על ערכי סף. - PROBING_INTERVAL_SECONDS: מספר שלם בין
30ל-86400. מרווח הזמן בשניות בין בדיקות המדדים. ברירת המחדל היא30. - PROBE_THRESHOLD: מספר הפעמים הרצופות שבהן צריך לחרוג מהסף כדי להפעיל תיעוד של הביצועים. הטווח התקין הוא
1עד20. ברירת המחדל היא3. - RUNNING_THREADS_THRESHOLD: במכונות הראשיות, המספר המינימלי של השרשורים הפעילים שנחשב מעל לסף. לדוגמה,
10. הערך חייב להיות גדול מ-10או שווה לו. אם לא מגדירים את המדיניות, ברירת המחדל מבוססת על גודל המכונה. ברירת המחדל היאMIN(600, cpuCount * 20). ערך ברירת המחדל הוא600או מספר המעבדים הווירטואליים במכונה כפול20, הנמוך מביניהם. - SECONDS_BEHIND_SOURCE_THRESHOLD: לרפליקות לקריאה בלבד, משך הזמן המינימלי של השהיית הרפליקציה, בשניות, שנחשב מעל לסף. הערך חייב להיות גדול מ-
1. ברירת המחדל היא900. - TRANSACTION_DURATION_THRESHOLD: משך הזמן, בשניות, של טרנזקציה שלא בוצעה לפני שהיא מתועדת ונכללת ביומן תיעוד הביצועים.
לדוגמה,
300. הערך המינימלי הוא60. ברירת המחדל היא3600. - SECONDS: משך הזמן, בשניות, של הטרנזקציות הארוכות שיסתיימו באופן אוטומטי. אי אפשר להגדיר את המגבלה הזו לערך נמוך מהערך שהגדרתם לפרמטר
transactionDurationThreshold(TRANSACTION_DURATION_THRESHOLD). - TRANSACTION_TYPE: קובע את קטגוריות הטרנזקציות שיסתיימו. הערכים האפשריים הם:
-
READ_ONLY_TRANSACTIONS: מסיימת רק שאילתות לקריאה בלבד או שאילתותSELECT. זו ברירת המחדל אם לא צויןtransactionKillType. -
ALL_TRANSACTIONS: מסיימת כל שאילתה שפועלת וחורגת מהסף, כולל שאילתות עם פעולות כתיבה. ההצהרות האלה כוללות אתINSERT,UPDATE,DELETEוהצהרותDDLאחרות.
-
- EXCLUSION_LIST: רשימה של מחרוזות שיוחרגו. אפשר לציין את הרשומות בתור
user@hostאו משתמש עצמאי, שמוגדר כברירת מחדל כ-user@%. הרשימה תומכת בתווים הכלליים לחיפוש%ו-_להתאמה בחלק של המארח. - CPU_UTILIZATION_THRESHOLD_PERCENT: אחוז השימוש הכולל במעבד (CPU) שצריך לחרוג ממנו באופן עקבי.
לדוגמה,
90. הערך המינימלי הוא10והערך המקסימלי הוא99. ברירת המחדל היא0, כלומר מושבת. - MEMORY_USAGE_THRESHOLD_PERCENT: אחוז השימוש הכולל בזיכרון שצריך לחרוג ממנו באופן עקבי.
לדוגמה,
90. הערך המינימלי הוא10והערך המקסימלי הוא99. ברירת המחדל היא0, כלומר מושבת. - TRANSACTION_LOCK_WAIT_THRESHOLD_COUNT: הסף לעסקאות שמותר להן להיות במצב
LOCK WAIT. לדוגמה,50. הערך המינימלי הוא10והערך המקסימלי הוא10000. ברירת המחדל היא0, כלומר מושבת. - SEMAPHORE_WAIT_THRESHOLD_COUNT: הסף למספר השרשורים שממתינים לסמפורים של InnoDB מהפקודה
SHOW ENGINE INNODB STATUS. לדוגמה,20. הערך המינימלי הוא10והערך המקסימלי הוא10000. ברירת המחדל היא0, כלומר מושבת. - HISTORY_LIST_LENGTH_THRESHOLD_COUNT: הסף המותר למספר של InnoDB History List Length (HLL) במסד הנתונים.
לדוגמה,
100000. הערך המינימלי הוא10000והערך המקסימלי הוא10000000. ברירת המחדל היא0, כלומר מושבת.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
תוכן בקשת JSON:
{
"name": "INSTANCE_ID",
"region": "REGION",
"databaseVersion": "DATABASE_VERSION",
"settings": {
"tier": "MACHINE_TYPE",
"edition": "EDITION_TYPE",
"dataCacheConfig": {
"dataCacheEnabled": DATA_CACHE_ENABLED
},
"backupConfiguration": {
"binaryLogEnabled": true,
"enabled": true
},
"passwordValidationPolicy": {
"enablePasswordPolicy": true
"minLength": "MIN_LENGTH",
"complexity": COMPLEXITY_DEFAULT,
"reuseInterval": "REUSE_INTERVAL",
"disallowUsernameSubstring": "DISALLOW_USERNAME_SUBSTRING"
},
"ipConfiguration": {
"privateNetwork": "PRIVATE_NETWORK",
"authorizedNetworks": [AUTHORIZED_NETWORKS],
"ipv4Enabled": false,
"enablePrivatePathForGoogleCloudServices": true,
"serverCaMode": "CA_MODE",
"serverCertificateRotationMode": "SERVER_CERTIFICATE_ROTATION_MODE",
"customSubjectAlternativeNames": "DNS_NAMES"
},
"dataApiAccess": "ALLOW_DATA_API",
"insightsConfig" : {
"queryInsightsEnabled" : QUERY_INSIGHTS_ENABLED,
"recordClientAddress" : RECORD_CLIENT_ADDRESS,
"recordApplicationTags" : RECORD_APPLICATION_TAGS,
"queryStringLength" : QUERY_STRING_LENGTH,
"queryPlansPerMinute" : QUERY_PLANS_PER_MINUTE,
"enableEnhancedQueryInsightsEnabled": ENABLE_ENHANCED_QUERY_INSIGHTS_ENABLED
},
"performanceCaptureConfig": {
"enabled": PERFORMANCE_CAPTURE_ENABLED,
"probingIntervalSeconds": PROBING_INTERVAL_SECONDS,
"probeThreshold": PROBE_THRESHOLD,
"runningThreadsThreshold": RUNNING_THREADS_THRESHOLD,
"secondsBehindSourceThreshold": SECONDS_BEHIND_SOURCE_THRESHOLD,
"cpuUtilizationThresholdPercent": CPU_UTILIZATION_THRESHOLD_PERCENT,
"memoryUsageThresholdPercent": MEMORY_USAGE_THRESHOLD_PERCENT,
"transactionLockWaitThresholdCount": TRANSACTION_LOCK_WAIT_THRESHOLD_COUNT,
"semaphoreWaitThresholdCount": SEMAPHORE_WAIT_THRESHOLD_COUNT,
"historyListLengthThresholdCount": HISTORY_LIST_LENGTH_THRESHOLD_COUNT,
"transactionDurationThreshold": TRANSACTION_DURATION_THRESHOLD,
"transactionKillThresholdSeconds": SECONDS,
"transactionKillType": TRANSACTION_TYPE,
"transactionKillExcludedUserHosts": [ EXCLUSION_LIST
]
},
}
"sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2019-09-25T22:19:33.735Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
התגובה היא פעולה ממושכת, שעשויה להימשך כמה דקות.
עדכון סיסמת הבסיס (root)
כשהמכונה תסיים את תהליך האתחול, תצטרכו לעדכן את הסיסמה:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט
- instance-id: מזהה המכונה שנוצר בשלב הקודם
- root-password: סיסמת הבסיס הרצויה
ה-method של ה-HTTP וכתובת ה-URL:
PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?host=%25&name=root
תוכן בקשת JSON:
{
"name": "root",
"host": "%",
"password": "root-password"
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
"status": "DONE",
"user": "user@example.com",
"insertTime": "2019-09-26T14:32:30.592Z",
"startTime": "2019-09-26T14:32:30.594Z",
"endTime": "2019-09-26T14:32:33.518Z",
"operationType": "UPDATE_USER",
"name": "operation-id",
"targetId": "instance-id",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
"targetProject": "project-id"
}
אחזור של כתובת ה-IPv4
אחזור של כתובת ה-IPv4 שהוקצתה באופן אוטומטי למכונה החדשה:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט
- instance-id: מזהה המכונה שנוצר בשלב הקודם
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#instance",
"state": "RUNNABLE",
"databaseVersion": "MYSQL_8_0_18",
"settings": {
"authorizedGaeApplications": [],
"tier": "db-f1-micro",
"kind": "sql#settings",
"pricingPlan": "PER_USE",
"replicationType": "SYNCHRONOUS",
"activationPolicy": "ALWAYS",
"ipConfiguration": {
"authorizedNetworks": [],
"ipv4Enabled": true
},
"locationPreference": {
"zone": "us-west1-a",
"kind": "sql#locationPreference"
},
"dataDiskType": "PD_SSD",
"backupConfiguration": {
"startTime": "18:00",
"kind": "sql#backupConfiguration",
"enabled": true,
"binaryLogEnabled": true
},
"settingsVersion": "1",
"storageAutoResizeLimit": "0",
"storageAutoResize": true,
"dataDiskSizeGb": "10"
},
"etag": "--redacted--",
"ipAddresses": [
{
"type": "PRIMARY",
"ipAddress": "10.0.0.1"
}
],
"serverCaCert": {
...
},
"instanceType": "CLOUD_SQL_INSTANCE",
"project": "project-id",
"serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.",
"backendType": "SECOND_GEN",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
"connectionName": "project-id:region:instance-id",
"name": "instance-id",
"region": "us-west1",
"gceZone": "us-west1-a"
}
מחפשים את השדה ipAddress בתשובה.
REST v1beta4
יצירת המכונה
בדוגמה הזו נוצרת מכונה. הפקודה כוללת גם כמה פרמטרים אופציונליים, כמו גיבויים ורישום ביומן בינארי. רשימה מלאה של הפרמטרים לקריאה הזו מופיעה בדף instances:insert. למידע על הגדרות המכונה, כולל ערכים תקינים לאזור, ראו הגדרות המכונה.
אל תכללו מידע רגיש או פרטים אישיים מזהים במזהה המכונה, כי הוא גלוי כלפי חוץ.
אין צורך לכלול את מזהה הפרויקט בשם המכונה. הפעולה הזו מתבצעת באופן אוטומטי במקומות המתאימים (לדוגמה, בקובצי היומן).
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט
- INSTANCE_ID: מזהה המכונה
- DATABASE_VERSION: גרסת מסד הנתונים.
לדוגמה:
MYSQL_9_7,MYSQL_8_4אוMYSQL_8_0_37. אם לא מציינים גרסת מסד נתונים, גרסת ברירת המחדל היאMYSQL_8_4. - REGION: האזור
- MACHINE_TYPE: סוג המכונה
- EDITION_TYPE: מהדורת Cloud SQL
- DATA_CACHE_ENABLED: (אופציונלי) מגדירים את הערך
trueכדי להפעיל את מטמון הנתונים במכונה - PRIVATE_NETWORK: מציינים את השם של רשת הענן הווירטואלי הפרטי (VPC) שרוצים להשתמש בה במכונה הזו. הגישה לשירותים פרטיים כבר צריכה להיות מוגדרת ברשת.
- AUTHORIZED_NETWORKS: בחיבורים של כתובות IP ציבוריות, מציינים את החיבורים מרשתות מורשות שיכולות להתחבר למכונה.
- CA_MODE: מציינים היררכיה של רשות אישורים למכונה,
GOOGLE_MANAGED_INTERNAL_CAאוGOOGLE_MANAGED_CAS_CA. אם לא מציינים אתserverCaMode, הגדרת ברירת המחדל היאGOOGLE_MANAGED_INTERNAL_CA. התכונה הזו נמצאת בגרסת טרום-השקה (Preview). - SERVER_CERTIFICATE_ROTATION_MODE: כדי להגדיר רוטציה אוטומטית של אישורי השרת במכונה, מציינים את הערך
AUTOMATIC_ROTATION_DURING_MAINTENANCE. אם לא מציינים אתserverCertificateRotationMode, הגדרת ברירת המחדל היאNO_AUTOMATIC_ROTATION. - DNS_NAMES: מוסיפים רשימה מופרדת בפסיקים של עד שלושה שמות DNS לאישור השרת של המכונה ב-Cloud SQL. אתם יכולים לאבטח כמה שמות DNS באמצעות אישור אחד. התכונה הזו זמינה בגרסת טרום-השקה (Preview) ורק למכונות
CUSTOMER_MANAGED_CAS_CA.
אתם יכולים להשתמש בשדה sqlNetworkArchitecture כדי לאכוף את השימוש בארכיטקטורת הרשת החדשה במכונה בזמן היצירה, גם אם הפרויקט לא שודרג באופן מלא.
פרטים נוספים על ארכיטקטורת הרשת החדשה וההשלכות שלה מופיעים במאמרים
שדרוג מכונה לארכיטקטורת הרשת החדשה והקצאת טווח של כתובות IP.
כדי להגדיר מדיניות סיסמאות כשיוצרים מכונה, צריך לכלול את האובייקט passwordValidationPolicy בבקשה. מגדירים את הפרמטרים הבאים, לפי הצורך:
-
enablePasswordPolicy: הפעלת מדיניות הסיסמאות כשהערך הואtrue.כדי להסיר את מדיניות הסיסמאות, אפשר להשתמש בבקשת
PATCHעםnullכערך שלenablePasswordPolicy. במקרה כזה, הפרמטרים האחרים של מדיניות הסיסמאות מאופסים. -
minLength: מציין את מספר התווים המינימלי שהסיסמה חייבת להכיל. -
complexity: בודק אם הסיסמה היא שילוב של אותיות קטנות, אותיות רישיות, מספרים ותווים לא אלפאנומריים. ערך ברירת המחדל הואCOMPLEXITY_DEFAULT. -
reuseInterval: מציין את מספר הסיסמאות הקודמות שאי אפשר להשתמש בהן שוב.נתמך רק ב-Cloud SQL ל-MySQL מגרסה 8.0 ואילך.
-
disallowUsernameSubstring: מונעת שימוש בשם המשתמש בסיסמה כשהיא מוגדרת לערךtrue.
כדי להגדיר את המכונה ל-Query Insights, מבצעים את ההחלפות המתאימות בקטע insightsConfig:
- QUERY_INSIGHTS_ENABLED: צריך להגדיר את הערך
trueכדי להפעיל את Query Insights במכונה. - RECORD_CLIENT_ADDRESS: צריך להגדיר את הערך
trueכדי לאחסן את כתובות ה-IP של הלקוחות שמהן מגיעות השאילתות, וכדי לקבץ את הנתונים האלה ולהריץ עליהם מדדים. השאילתות מגיעות מיותר ממארח אחד. בדיקת התרשימים של שאילתות מכתובות ה-IP של הלקוח יכולה לעזור לזהות את מקור הבעיה. - RECORD_APPLICATION_TAGS: הגדר ל-
trueכדי לאחסן תגי אפליקציה שעוזרים לך לקבוע את ממשקי ה-API ואת נתיבי בקר תצוגה של מודל (MVC) שמבצעים בקשות ולקבץ את הנתונים כדי להריץ מדדים מולם. כדי להשתמש באפשרות הזו, צריך להוסיף הערות לשאילתות עם קבוצה ספציפית של תגים. כדי לעשות את זה, אפשר להשתמש בספריית הכלים האוטומטיים למיפוי אובייקטים יחסי (ORM) בקוד פתוח sqlcommenter. המידע הזה עוזר לתובנות לגבי שאילתות לזהות את מקור הבעיה ואת ה-MVC שממנו הבעיה מגיעה. נתיבי אפליקציות עוזרים לכם לעקוב אחרי האפליקציות. - QUERY_STRING_LENGTH: מגדיר את מגבלת האורך של השאילתה בבייטים, מגדיר את מגבלת ברירת המחדל של אורך השאילתה. שאילתות ארוכות יותר שימושיות יותר לשאילתות ניתוח, אבל הן גם דורשות יותר זיכרון. כדי לשנות את אורך השאילתה, צריך להפעיל מחדש את המכונה.
עדיין אפשר להוסיף תגים לשאילתות שחורגות ממגבלת האורך.
ב-Cloud SQL מהדורת Enterprise, אפשר לציין ערך בבייטים מ-
256עד4500. אורך השאילתה שמוגדר כברירת מחדל הוא1024בייטים. במהדורת Cloud SQL Enterprise Plus, אפשר לציין מגבלה בבייטים מ-1עד1048576. ערך ברירת המחדל הוא1024בייטים (1KB). - QUERY_PLANS_PER_MINUTE: מספר התוכניות לביצוע שאילתות שרוצים לתעד בכל דקה.
כברירת מחדל, נלכדות עד 5 דגימות של תוכניות לביצוע שאילתות בדקה בכל מסדי הנתונים במכונה. הגדלת תדירות הדגימה עשויה לספק יותר נקודות על הגרף, אבל עלולה להוסיף תקורה לביצועים. כדי להשבית את הדגימה, מגדירים את הערך הזה ל-
0. ב-Cloud SQL מהדורת Enterprise, אפשר לשנות את הערך מ-0 ל-20. במהדורת Cloud SQL Enterprise Plus, אפשר להגדיל את המספר המקסימלי עד ל-200 כדי לספק יותר נקודות על הגרף. - ENABLE_ENHANCED_QUERY_INSIGHTS_ENABLED: צריך להגדיר את הערך
trueכדי להפעיל את התובנות המשופרות לגבי שאילתות במכונה.
בקטע performanceCaptureConfig, כוללים את ההגדרות הבאות.
אם לא תגדירו ערכים להגדרות האלה, המערכת תשתמש בערכי ברירת המחדל של הסף. מידע מפורט יותר על ערכי הסף שמוגדרים על ידי הטריגרים זמין במאמר טריגרים לתיעוד ביצועים.
- PERFORMANCE_CAPTURE_ENABLED: צריך להגדיר את הערך
falseכדי להשבית את תיעוד הביצועים של MySQL במכונה. אם הערך שלqueryInsightsEnabledהואtrue, תיעוד הביצועים של MySQL מופעל אוטומטית וערכי ברירת המחדל חלים על תנאי הטריגר שמבוססים על ערכי סף. - PROBING_INTERVAL_SECONDS: מספר שלם בין
30ל-86400. מרווח הזמן בשניות בין בדיקות המדדים. ברירת המחדל היא30. - PROBE_THRESHOLD: מספר הפעמים הרצופות שבהן צריך לחרוג מהסף כדי להפעיל תיעוד של הביצועים. הטווח התקין הוא
1עד20. ברירת המחדל היא3. - RUNNING_THREADS_THRESHOLD: במכונות הראשיות, המספר המינימלי של השרשורים הפעילים שנחשב מעל לסף. לדוגמה,
10. הערך חייב להיות גדול מ-10או שווה לו. אם לא מגדירים את המדיניות, ברירת המחדל מבוססת על גודל המכונה. ברירת המחדל היאMIN(600, cpuCount * 20). ערך ברירת המחדל הוא600או מספר המעבדים הווירטואליים במכונה כפול20, הנמוך מביניהם. - SECONDS_BEHIND_SOURCE_THRESHOLD: לרפליקות לקריאה בלבד, משך הזמן המינימלי של השהיית הרפליקציה, בשניות, שנחשב מעל לסף. הערך חייב להיות גדול מ-
1. ברירת המחדל היא900. - TRANSACTION_DURATION_THRESHOLD: משך הזמן, בשניות, של טרנזקציה שלא בוצעה לפני שהיא מתועדת ונכללת ביומן תיעוד הביצועים.
לדוגמה,
300. הערך המינימלי הוא60. ברירת המחדל היא3600. - SECONDS: משך הזמן, בשניות, של הטרנזקציות הארוכות שיסתיימו באופן אוטומטי. אי אפשר להגדיר את המגבלה הזו לערך נמוך מהערך שהגדרתם לפרמטר
transactionDurationThreshold(TRANSACTION_DURATION_THRESHOLD). - TRANSACTION_TYPE: קובע את קטגוריות הטרנזקציות שיסתיימו. הערכים האפשריים הם:
-
READ_ONLY_TRANSACTIONS: מסיימת רק שאילתות לקריאה בלבד או שאילתותSELECT. זו ברירת המחדל אם לא צויןtransactionKillType. -
ALL_TRANSACTIONS: מסיימת כל שאילתה שפועלת וחורגת מהסף, כולל שאילתות עם פעולות כתיבה. ההצהרות האלה כוללות אתINSERT,UPDATE,DELETEוהצהרותDDLאחרות.
-
- EXCLUSION_LIST: רשימה של מחרוזות שיוחרגו. אפשר לציין את הרשומות בתור
user@hostאו משתמש עצמאי, שמוגדר כברירת מחדל כ-user@%. הרשימה תומכת בתווים הכלליים לחיפוש%ו-_להתאמה בחלק של המארח. - CPU_UTILIZATION_THRESHOLD_PERCENT: אחוז השימוש הכולל במעבד (CPU) שצריך לחרוג ממנו באופן עקבי.
לדוגמה,
90. הערך המינימלי הוא10והערך המקסימלי הוא99. ברירת המחדל היא0, כלומר מושבת. - MEMORY_USAGE_THRESHOLD_PERCENT: אחוז השימוש הכולל בזיכרון שצריך לחרוג ממנו באופן עקבי.
לדוגמה,
90. הערך המינימלי הוא10והערך המקסימלי הוא99. ברירת המחדל היא0, כלומר מושבת. - TRANSACTION_LOCK_WAIT_THRESHOLD_COUNT: הסף לעסקאות שמותר להן להיות במצב
LOCK WAIT. לדוגמה,50. הערך המינימלי הוא10והערך המקסימלי הוא10000. ברירת המחדל היא0, כלומר מושבת. - SEMAPHORE_WAIT_THRESHOLD_COUNT: הסף למספר השרשורים שממתינים לסמפורים של InnoDB מהפקודה
SHOW ENGINE INNODB STATUS. לדוגמה,20. הערך המינימלי הוא10והערך המקסימלי הוא10000. ברירת המחדל היא0, כלומר מושבת. - HISTORY_LIST_LENGTH_THRESHOLD_COUNT: הסף המותר למספר של InnoDB History List Length (HLL) במסד הנתונים.
לדוגמה,
100000. הערך המינימלי הוא10000והערך המקסימלי הוא10000000. ברירת המחדל היא0, כלומר מושבת.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances
תוכן בקשת JSON:
{
"name": "INSTANCE_ID",
"region": "REGION",
"databaseVersion": "DATABASE_VERSION",
"settings": {
"tier": "MACHINE_TYPE",
"edition": "EDITION_TYPE",
"dataCacheConfig" {
"dataCacheEnabled": DATA_CACHE_ENABLED
},
"backupConfiguration": {
"binaryLogEnabled": true,
"enabled": true
},
"passwordValidationPolicy": {
"enablePasswordPolicy": true
"minLength": "MIN_LENGTH",
"complexity": COMPLEXITY_DEFAULT,
"reuseInterval": "REUSE_INTERVAL",
"disallowUsernameSubstring": "DISALLOW_USERNAME_SUBSTRING",
},
"ipConfiguration": {
"privateNetwork": "PRIVATE_NETWORK",
"authorizedNetworks": [AUTHORIZED_NETWORKS],
"ipv4Enabled": false,
"enablePrivatePathForGoogleCloudServices": true,
"serverCaMode": "CA_MODE",
"serverCertificateRotationMode": "SERVER_CERTIFICATE_ROTATION_MODE",
"customSubjectAlternativeNames": "DNS_NAMES"
},
"dataApiAccess": "ALLOW_DATA_API",
"insightsConfig": {
"queryInsightsEnabled" : QUERY_INSIGHTS_ENABLED,
"recordClientAddress" : RECORD_CLIENT_ADDRESS,
"recordApplicationTags" : RECORD_APPLICATION_TAGS,
"queryStringLength" : QUERY_STRING_LENGTH,
"queryPlansPerMinute" : QUERY_PLANS_PER_MINUTE,
"enableEnhancedQueryInsightsEnabled": ENABLE_ENHANCED_QUERY_INSIGHTS_ENABLED
},
"performanceCaptureConfig": {
"enabled": PERFORMANCE_CAPTURE_ENABLED,
"probingIntervalSeconds": PROBING_INTERVAL_SECONDS,
"probeThreshold": PROBE_THRESHOLD,
"runningThreadsThreshold": RUNNING_THREADS_THRESHOLD,
"secondsBehindSourceThreshold": SECONDS_BEHIND_SOURCE_THRESHOLD,
"cpuUtilizationThresholdPercent": CPU_UTILIZATION_THRESHOLD_PERCENT,
"memoryUsageThresholdPercent": MEMORY_USAGE_THRESHOLD_PERCENT,
"transactionLockWaitThresholdCount": TRANSACTION_LOCK_WAIT_THRESHOLD_COUNT,
"semaphoreWaitThresholdCount": SEMAPHORE_WAIT_THRESHOLD_COUNT,
"historyListLengthThresholdCount": HISTORY_LIST_LENGTH_THRESHOLD_COUNT,
"transactionDurationThreshold": TRANSACTION_DURATION_THRESHOLD,
"transactionKillThresholdSeconds": SECONDS,
"transactionKillType": TRANSACTION_TYPE,
"transactionKillExcludedUserHosts": [ EXCLUSION_LIST
]
},
},
"sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE",
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2019-09-25T22:19:33.735Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
התגובה היא פעולה ממושכת, שיכולה להימשך כמה דקות.
עדכון סיסמת הבסיס (root)
כשהמכונה תסיים את תהליך האתחול, תצטרכו לעדכן את הסיסמה:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט
- instance-id: מזהה המכונה שנוצר בשלב הקודם
- root-password: סיסמת הבסיס הרצויה
ה-method של ה-HTTP וכתובת ה-URL:
PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?host=%25&name=root
תוכן בקשת JSON:
{
"name": "root",
"host": "%",
"password": "root-password"
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
"status": "DONE",
"user": "user@example.com",
"insertTime": "2019-09-26T14:32:30.592Z",
"startTime": "2019-09-26T14:32:30.594Z",
"endTime": "2019-09-26T14:32:33.518Z",
"operationType": "UPDATE_USER",
"name": "operation-id",
"targetId": "instance-id",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
"targetProject": "project-id"
}
התגובה היא פעולה ממושכת, שיכולה להימשך כמה דקות.
אחזור של כתובת ה-IPv4
אחזור של כתובת ה-IPv4 שהוקצתה באופן אוטומטי למכונה החדשה:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט
- instance-id: מזהה המכונה שנוצר בשלב הקודם
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#instance",
"state": "RUNNABLE",
"databaseVersion": "MYSQL_8_0_18",
"settings": {
"authorizedGaeApplications": [],
"tier": "db-f1-micro",
"kind": "sql#settings",
"pricingPlan": "PER_USE",
"replicationType": "SYNCHRONOUS",
"activationPolicy": "ALWAYS",
"ipConfiguration": {
"authorizedNetworks": [],
"ipv4Enabled": true
},
"locationPreference": {
"zone": "us-west1-a",
"kind": "sql#locationPreference"
},
"dataDiskType": "PD_SSD",
"backupConfiguration": {
"startTime": "18:00",
"kind": "sql#backupConfiguration",
"enabled": true,
"binaryLogEnabled": true
},
"settingsVersion": "1",
"storageAutoResizeLimit": "0",
"storageAutoResize": true,
"dataDiskSizeGb": "10"
},
"etag": "--redacted--",
"ipAddresses": [
{
"type": "PRIMARY",
"ipAddress": "10.0.0.1"
}
],
"serverCaCert": {
...
},
"instanceType": "CLOUD_SQL_INSTANCE",
"project": "project-id",
"serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.",
"backendType": "SECOND_GEN",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
"connectionName": "project-id:region:instance-id",
"name": "instance-id",
"region": "us-west1",
"gceZone": "us-west1-a"
}
מחפשים את השדה ipAddress בתשובה.
יצירת נקודת הקצה לכתיבה
נקודת קצה לכתיבה היא שם גלובלי של שירות שמות דומיין (DNS) שמתורגם באופן אוטומטי לכתובת ה-IP של המכונה הראשית הנוכחית. נקודת הקצה הזו מפנה אוטומטית חיבורים נכנסים למכונה הראשית החדשה במקרה של פעולת יתירות כשל או מעבר של רפליקה. אפשר להשתמש בנקודת הקצה לכתיבה במחרוזת חיבור של SQL במקום בכתובת IP. שימוש בנקודת קצה לכתיבה מאפשר לכם להימנע משינויים בחיבור של האפליקציה כשיש הפסקה זמנית בשירות באזור.
מידע נוסף על שימוש בנקודת קצה לכתיבה כדי להתחבר למכונה זמין במאמר התחברות למכונה באמצעות נקודת קצה לכתיבה.
ציון הגרסה המשנית של מסד הנתונים ל-MySQL 8.0
אפשר לציין את הגרסה המשנית של מכונה קיימת של MySQL 8.0 באמצעות gcloud או ה-API בארכיטקטורת REST.
gcloud
משתמשים בפקודה gcloud sql instances create עם הדגל --database-version.
לפני שמריצים את הפקודה, מחליפים את המשתנים הבאים:
- INSTANCE_NAME: שם המכונה.
- DATABASE_VERSION: הגרסה המשנית של מסד הנתונים של המכונה:
MYSQL_8_0_18,MYSQL_8_0_26,MYSQL_8_0_27,MYSQL_8_0_28,MYSQL_8_0_30,MYSQL_8_0_31,MYSQL_8_0_32,MYSQL_8_0_33,MYSQL_8_0_34,MYSQL_8_0_35,MYSQL_8_0_36,MYSQL_8_0_37,MYSQL_8_0_39,MYSQL_8_0_40,MYSQL_8_0_41,MYSQL_8_0_42,MYSQL_8_0_43,MYSQL_8_0_44,MYSQL_8_0_45אוMYSQL_8_0_46(גרסת ברירת המחדל המשנית של MySQL 8.0). אם מציינים אתMYSQL_8_0, המערכת משתמשת בגרסת המשנה שמוגדרת כברירת מחדל.אם לא מציינים את הדגל הזה, המערכת משתמשת בגרסה הראשית שמוגדרת כברירת מחדל,
MYSQL_8_0.
gcloud sql instances create INSTANCE_NAME \ --database-version=DATABASE_VERSION
אם יוצרים מכונה של MySQL מגרסה 8.0.35 ואילך, אפשר להפעיל שדרוגים אוטומטיים של גרסאות משניות באמצעות הדגל --enable-auto-upgrade-minor-version.
כשמפעילים שדרוגים אוטומטיים של גרסאות משניות, המכונה משודרגת לגרסת ברירת המחדל המשנית של Cloud SQL ל-MySQL 8.0 במהלך עדכון התחזוקה השוטף המתוזמן.
הדגל הזה לא זמין לגרסאות MySQL 8.0.34 וגרסאות קודמות.
gcloud sql instances create INSTANCE_NAME \ --database-version=DATABASE_VERSION \ --enable-auto-upgrade-minor-version
למידע מפורט, קראו את המאמר יצירת מכונה באמצעות gcloud.
REST v1
משתמשים בבקשת POST עם ה-method
instances:insert והדגל databaseVersion.
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances
- project_id: מזהה הפרויקט.
- instance_id: שם המכונה.
- databaseVersion: גרסת מסד הנתונים של המכונה:
MYSQL_8_0_18,MYSQL_8_0_26,MYSQL_8_0_27,MYSQL_8_0_28,MYSQL_8_0_30,MYSQL_8_0_31,MYSQL_8_0_32,MYSQL_8_0_33,MYSQL_8_0_34,MYSQL_8_0_35,MYSQL_8_0_36,MYSQL_8_0_37,MYSQL_8_0_39,MYSQL_8_0_40,MYSQL_8_0_41,MYSQL_8_0_42,MYSQL_8_0_43,MYSQL_8_0_44,MYSQL_8_0_45אוMYSQL_8_0_46(גרסת משנה ברירת המחדל של MySQL 8.0). אם מציינים אתMYSQL_8_0בתור הגרסה, המערכת משתמשת בגרסת המשנה שמוגדרת כברירת מחדל. אם לא מציינים את הדגלdatabaseVersion, המערכת משתמשת בגרסה הראשית שמוגדרת כברירת מחדל,MYSQL_8_0.
מידע נוסף מופיע במאמר יצירת מכונה באמצעות API ל-REST בגרסה 1.
REST v1beta4
משתמשים בבקשת POST עם ה-method
instances:insert והדגל databaseVersion.
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את המשתנים הבאים:
- project_id: מזהה הפרויקט.
- instance_id: שם המכונה.
- databaseVersion: גרסת מסד הנתונים של המכונה:
MYSQL_8_0_18,MYSQL_8_0_26,MYSQL_8_0_27,MYSQL_8_0_28,MYSQL_8_0_30,MYSQL_8_0_31,MYSQL_8_0_32,MYSQL_8_0_33. MYSQL_8_0_34,MYSQL_8_0_35,MYSQL_8_0_36,MYSQL_8_0_37,MYSQL_8_0_39,MYSQL_8_0_40,MYSQL_8_0_41,MYSQL_8_0_42,MYSQL_8_0_43,MYSQL_8_0_44,MYSQL_8_0_45אוMYSQL_8_0_46(גרסת ברירת המחדל המשנית של MySQL 8.0). אם מציינים אתMYSQL_8_0, המערכת משתמשת בגרסת המשנה שמוגדרת כברירת מחדל. אם לא מציינים את הדגלdatabaseVersion, המערכת משתמשת בגרסה הראשית שמוגדרת כברירת מחדל,MYSQL_8_0.
מידע נוסף זמין במאמר יצירת מכונה באמצעות API ל-REST בגרסה v1beta4.
גרסה משנית של מסד נתונים לרפליקות לקריאה בלבד, לשיבוטים ול-PITR
כשיוצרים עותק לקריאה בלבד, אפשר לציין את גרסת המשנה של מסד הנתונים של העותק לקריאה בלבד. כברירת מחדל, רפליקות חדשות לקריאה בלבד נוצרות בגרסת המשנה שמוגדרת כברירת מחדל.
כשמשכפלים מכונה, למכונה החדשה שנוצרת יש את אותה גרסת משנה כמו של המקור.
כשמבצעים שחזור מערכת מנקודה מסוימת בזמן (PITR), למכונה החדשה שנוצרת יש גרסה משנית של מסד נתונים שזהה לזו של המקור.
סוגי מכונות
קובע את הזיכרון ואת הליבות הווירטואליות שזמינים למכונה של Cloud SQL. אפשר להגדיר סוגי מכונות מסדרות שונות של מכונות. הזמינות של סדרות המכונות השונות נקבעת לפי המהדורה והאזור של Cloud SQL.
-
במכונות של Cloud SQL Enterprise Plus: ב-Cloud SQL יש סוגי מכונות מוגדרים מראש בסדרות המכונות הבאות:
-
במכונות של Cloud SQL מהדורת Enterprise: ב-Cloud SQL יש סוגי מכונות מוגדרים מראש וסוגי מכונות בהתאמה אישית בסדרות המכונות הבאות:
אם אתם צריכים עיבוד בזמן אמת, כמו עיבוד עסקאות אונליין (OLTP), ודאו שיש במכונה מספיק זיכרון כדי להכיל את כל קבוצת העבודה. עם זאת, יש גורמים אחרים שיכולים להשפיע על דרישות הזיכרון, כמו מספר החיבורים הפעילים ותהליכי תקורה פנימיים. כדי למנוע בעיות בביצועים בסביבת הייצור, כדאי לבצע בדיקות עומס.
כשמגדירים את המכונה, צריך לבחור מספיק זיכרון ומעבדי vCPU כדי לענות על הצרכים שלכם, ולהגדיל את המכונה ככל שהדרישות גדלות. יכול להיות שתצורת מכונה עם מספר לא מספיק של מעבדי vCPU תאבד את הכיסוי של הסכם רמת השירות (SLA). הנחיות תפעוליות
מידע נוסף זמין במאמר בחירת סדרת מכונות.
פתרון בעיות
| שגיאה | פתרון בעיות |
|---|---|
הודעת שגיאה: The zone or region does not have sufficient
resources to handle the request at the moment. |
באזור שנבחר אין מספיק קיבולת למשאבים שביקשתם או לסוג המכונה הווירטואלית בזמן ששלחתם את הבקשה ליצירת המכונה. יכול להיות שבאותו זמן יש ביקוש תפעולי גבוה במיקום האזורי הספציפי הזה. כדי לפתור את הבעיה, נסו ליצור את המכונה באזור אחר או באותו אזור שבו התקבלה השגיאה, אבל בשעה אחרת ביום. |
הודעת שגיאה: Failed to create subnetwork. Couldn't
find free blocks in allocated IP ranges. Please allocate new ranges for
this service provider. |
אין יותר כתובות זמינות בטווח ה-IP שהוקצה. יכולים להיות כמה תרחישים אפשריים:
כדי לפתור את הבעיה, אתם יכולים להרחיב את טווח כתובות ה-IP שהוקצה או להקצות טווח כתובות IP נוסף לחיבור לשירות הפרטי. מידע נוסף זמין במאמר הקצאת טווח של כתובות IP. אם השתמשתם בדגל אם אתם מקצים טווח חדש, חשוב לוודא שההקצאה לא חופפת להקצאות קיימות. אחרי שיוצרים טווח כתובות IP חדש, מעדכנים את קישור ה-VPC באמצעות הפקודה הבאה: gcloud services vpc-peerings update \ --service=servicenetworking.googleapis.com \ --ranges=OLD_RESERVED_RANGE_NAME,NEW_RESERVED_RANGE_NAME \ --network=VPC_NETWORK \ --project=PROJECT_ID \ --force אם אתם מרחיבים הקצאה קיימת, הקפידו להגדיל רק את טווח ההקצאה ולא להקטין אותו. לדוגמה, אם ההקצאה המקורית הייתה 10.0.10.0/24, ההקצאה החדשה צריכה להיות לפחות 10.0.10.0/23. באופן כללי, אם מתחילים מהקצאה של /24, כלל אצבע טוב הוא להפחית את ה-/mask ב-1 לכל תנאי (קבוצה נוספת של סוגי מכונות, אזור נוסף). לדוגמה, אם מנסים ליצור את שתי קבוצות סוגי המכונות באותה הקצאה, מספיק לעבור מ-/24 ל-/23. אחרי שמרחיבים טווח כתובות IP קיים, מעדכנים את הקישור בין רשתות ה-VPC באמצעות הפקודה הבאה: gcloud services vpc-peerings update \ --service=servicenetworking.googleapis.com \ --ranges=RESERVED_RANGE_NAME \ --network=VPC_NETWORK \ --project=PROJECT_ID |
הודעת שגיאה: Failed to create subnetwork. Router status is
temporarily unavailable. Please try again later. Help Token:
[token-ID]. |
מנסים ליצור שוב את המכונה של Cloud SQL. |
הודעת שגיאה: HTTPError 400: Invalid request: Incorrect Service Networking config for instance: PROJECT_ID:INSTANCE_NAME:SERVICE_NETWORKING_NOT_ENABLED. |
מפעילים את Service Networking API באמצעות הפקודה הבאה ומנסים ליצור שוב את המכונה של Cloud SQL. gcloud services enable servicenetworking.googleapis.com \ --project=PROJECT_ID |
הודעת שגיאה: Failed to create subnetwork. Required
'compute.projects.get' permission for PROJECT_ID. |
כשיוצרים מכונה באמצעות כתובת IP פרטית, נוצר חשבון שירות בזמן אמת באמצעות Service Networking API. אם הפעלתם את Service Networking API רק לאחרונה, יכול להיות שחשבון השירות לא ייווצר ויצירת המכונה תיכשל. במקרה כזה, צריך להמתין עד שחשבון השירות יופץ במערכת או להוסיף אותו ידנית עם ההרשאות הנדרשות. |
הודעת שגיאה: More than 3 subject alternative names are not
allowed. |
אתם מנסים להשתמש ב-SAN בהתאמה אישית כדי להוסיף יותר משלושה שמות DNS לאישור השרת של מכונה ב-Cloud SQL. אי אפשר להוסיף יותר משלושה שמות DNS למכונה. |
הודעת שגיאה: Subject alternative names %s is too long. The
maximum length is 253 characters. |
חשוב לוודא ששמות ה-DNS שרוצים להוסיף לאישור השרת של מכונת Cloud SQL לא מכילים יותר מ-253 תווים. |
הודעת שגיאה: Subject alternative name %s is invalid. |
מוודאים ששמות ה-DNS שרוצים להוסיף לאישור השרת של מכונה ב-Cloud SQL עומדים בקריטריונים הבאים:
|