שאלות נפוצות בנושא Cloud SQL ל-PostgreSQL

מידע כללי

מה זה Cloud SQL?
‫Cloud SQL הוא שירות שמספק מסדי נתונים מנוהלים של SQL בענן. ב-Cloud SQL יש מסדי נתונים של PostgreSQL,‏ SQL Server ו-MySQL.
מה היתרונות של Cloud SQL?
בעזרת Cloud SQL אתם יכולים להעביר ל-Google את המשימות השגרתיות, אבל ההכרחיות, שלעיתים קרובות גוזלות זמן רב – כמו החלת תיקונים ועדכונים, ניהול גיבויים והגדרת רפליקות – כדי שתוכלו להתמקד בפיתוח אפליקציות מעולות. מכיוון שאנחנו משתמשים בפרוטוקולים סטנדרטיים, אתם יכולים להתחבר כמעט מכל אפליקציה, בכל מקום.
אילו גרסאות של מסדי נתונים זמינות ב-Cloud SQL? איך מנהלים את העדכונים?

‫Cloud SQL ל-PostgreSQL תומך בגרסאות 9.6,‏ 10,‏ 11,‏ 12,‏ 13,‏ 14,‏ 15,‏ 16,‏ 17 ו-18 (ברירת המחדל) של PostgreSQL.

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

כדי לראות את הגרסה הנוכחית של המכונה, נכנסים למסוףGoogle Cloud ולוחצים על שם המכונה כדי לפתוח את הדף Instance details. אפשר גם להשתמש בפקודה gcloud sql instances describe.

האם Cloud SQL תומך בכל התכונות של מסדי נתונים?
‫Cloud SQL תומך ברוב התכונות הנפוצות של PostgreSQL. רשימה של כל ההבדלים בין PostgreSQL הרגיל לבין הפונקציונליות ש-Cloud SQL מספק מופיעה במאמר ההבדלים בין Cloud SQL לבין הפונקציונליות של PostgreSQL הרגיל.
האם יש מגבלות על הגודל או על מספר השאילתות לשנייה?
אין מגבלות על מספר השאילתות לשנייה (QPS) במכונות של Cloud SQL. מידע על מגבלות שקשורות לחיבור, לגודל ול-App Engine מופיע במאמר מכסות ומגבלות.
איך אפשר לקבל התראות על שינויים ב-Cloud SQL?
אפשר להירשם לפיד ה-RSS של הדף PostgreSQL Release Notes.
איך מדווחים על באג, מבקשים תכונה או שואלים שאלה?

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

כדי לראות את הסטטוס הכללי של Google Cloud , אפשר להיכנס אל Google Cloud Status Tracker.

אם יש לכם באג ב-Cloud SQL שניתן לשחזור או שאתם רוצים לבקש תכונה חדשה, היכנסו לIssue Tracker.

חזרה למעלה

תחילת העבודה

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

אחסון נתונים, שכפול ואימות

איפה מאוחסנים הנתונים שלי?

נתוני המכונה מאוחסנים באזור שבו נמצאת המכונה. אם לא תציינו מיקום לאחסון, הגיבויים יאוחסנו במספר אזורים שקרובים מבחינה גיאוגרפית למיקום של המכונה שלכם ב-Cloud SQL. לדוגמה, אם המכונה של Cloud SQL נמצאת ב-us-central1, הגיבויים מאוחסנים כברירת מחדל במספר אזורים ב-us. עם זאת, מיקום ברירת המחדל כמו australia-southeast1 נמצא מחוץ למספר אזורים. האזור הקרוב ביותר במספר אזורים הוא asia.

מה זה אזור?

תחום (zone) הוא ישות עצמאית במיקום גיאוגרפי ספציפי שבו אפשר להשתמש במשאבים. לדוגמה, אזור בשם us-central1-a מציין מיקום במרכז ארצות הברית.

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

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

מכונות PostgreSQL מספקות הגדרת זמינות גבוהה ועותקי קריאה.

אילו סוגים של עותקים לקריאה בלבד אפשר ליצור?

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

איך פועל מעבר לגיבוי בעת כשל ב-Cloud SQL?

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

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

הנתונים מוצפנים באמצעות תקן Advanced Encryption Standard של 256 ביט (AES-256), או תקן טוב יותר, עם מפתחות סימטריים: כלומר, אותו מפתח משמש להצפנת הנתונים כשהם מאוחסנים, ולפענוח שלהם כשהם בשימוש. מפתחות הנתונים האלה מוצפנים בעצמם באמצעות מפתח שמאוחסן במאגר מפתחות מאובטח, ומשתנים באופן קבוע.

פרטים נוספים זמינים במאמר הצפנה במנוחה ב-Google Cloud.

איך מנוהלת ההצפנה של נתונים במעבר?

‫Google מצפינה ומאמתת את כל הנתונים במעבר בשכבת רשת אחת או יותר, כשהנתונים מועברים אל מחוץ לגבולות הפיזיים שאינם בשליטתה של Google או מטעמה של Google. הנתונים במעבר בגבולות הפיזיים האלה מאומתים בדרך כלל, אבל עשויים להיות לא מוצפנים כברירת מחדל. אם מתחברים למכונה באמצעות כתובת ה-IP הציבורית שלה, צריך להשתמש באישורי SSL/TLS כדי שהנתונים יהיו מאובטחים במהלך ההעברה. אתם יכולים לבחור אילו אמצעי אבטחה נוספים להחיל על סמך מודל האיומים שלכם. לדוגמה, אתם יכולים להגדיר SSL לחיבורים בתוך האזור ל-Cloud SQL.

למידע נוסף, קראו את המאמר הצפנה במעבר ב-Google Cloud.

חזרה למעלה

העברת נתונים

איך הנתונים והאילוצים מועברים ל-Cloud SQL?
במהלך תהליך ההעברה, הנתונים מועברים קודם, והאילוצים (לדוגמה, מפתחות ראשיים, מפתחות זרים ואינדקסים) נוצרים מחדש במכונה בשלב מאוחר יותר.
איך אפשר להעביר את הנתונים מהר יותר?
עכשיו אפשר להעביר נתונים בטבלאות של מסד הנתונים במקביל. הביצועים משתפרים כי Cloud SQL יכול להעביר את הנתונים באמצעות תהליכים מקבילים בתוך מסד נתונים. אפשר להגדיר את המהירות שבה Cloud SQL מעביר את הנתונים האלה ל-min, ל-optimal או ל-max. מידע נוסף זמין במאמר שימוש בייבוא מנוהל כדי להגדיר שכפול ממסדי נתונים חיצוניים.
חזרה למעלה

גיבוי ושחזור

איך משחזרים מכונה?

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

כדי לשחזר מכונה לנקודה מסוימת בזמן, משתמשים בשחזור מערכת מנקודה מסוימת בזמן (PITR). מידע נוסף זמין במאמר שימוש בשחזור מערכת מנקודה מסוימת בזמן (PITR).

כמה עולים הגיבויים?

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

למידע נוסף על תמחור האחסון של המכונה ועל תעריפי המכונה, ראו תמחור.

האם אפשר לגשת לגיבויים אוטומטיים שנוצרו לפני יותר משבעה ימים?

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

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

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

ניהול המכונות

אילו פעולות יכולות לגרום להפעלה מחדש של מכונות Cloud SQL?
יכול להיות שהמכונות של Cloud SQL יופעלו מחדש כשאתם או Cloud SQL תבצעו את הפעולות הבאות:
  • עדכון
  • יצירה
  • קידום רפליקה
  • תחזוקה
  • יצירת הרפליקה מחדש
  • יתירות כשל
  • הפעלה מחדש
  • שחזור מכונה מגיבוי
  • הפעלת זמינות גבוהה במכונה קיימת (זהו עדכון למכונה)
  • הוספת דגל לניהול מסד נתונים שדורש הפעלה מחדש

הפעלה מחדש של מכונה לא משנה את כתובות ה-IP הציבוריות או הפרטיות של המכונה.

כמה זמן המכונות מושבתות במהלך ההפעלה מחדש?

כמה זמן המכונות מושבתות במהלך ההפעלה מחדש?

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

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

אפשר להגדיל או להקטין את מסד הנתונים?

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

האם אפשר לשדרג ולשנמך את מספר המעבדים הווירטואליים?

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

האם צריך להשתמש במסוף Google Cloud כדי לנהל את Cloud SQL?
לא. את כל משימות הניהול שאפשר לבצע באמצעות המסוף אפשר לבצע גם באופן פרוגרמטי באמצעות Cloud SQL Admin API, או באמצעות סקריפטים עם כלי שורת הפקודה gcloud.
איך אפשר לפנות את המקום שתופסים הקבצים הזמניים?
הקבצים הזמניים יכולים לגדול כששאילתות SQL יוצרות הרבה טבלאות זמניות. כדי לפנות את המקום שתופסות הטבלאות הזמניות, צריך להפעיל מחדש את מסד הנתונים. חשוב לדעת שהפעלה מחדש של מסד הנתונים לא מקטינה את נפח האחסון שהוקצה בדיסק כתוצאה מהגידול בקבצים הזמניים.
אפשר לייבא או לייצא מסד נתונים ספציפי?
כן. אפשר לייבא או לייצא רק מסד נתונים ספציפי, ולא יותר ממסד נתונים אחד בכל פעם. מידע נוסף זמין במאמרים ייבוא נתונים וייצוא נתונים.
אפשר לייבא או לייצא קובץ CSV?
אפשר לייבא או לייצא קובץ CSV ל-MySQL או ל-PostgreSQL. מידע נוסף זמין במאמר יצירת קובץ CSV.

בשלב הזה, אין תמיכה ב-CSV ב-Cloud SQL ל-SQL Server.

האם צריך חשבון Cloud Storage כדי לייבא או לייצא נתונים למכונה?
ב-Cloud SQL אפשר לייבא ולייצא מסדי נתונים באמצעות קובצי CSV או pg_dump. למידע נוסף, קראו את המאמרים ייצוא וייבוא באמצעות pg_dump ו-pg_restore או ייצוא וייבוא באמצעות קובצי CSV.
אם מוחקים מכונה, אפשר להשתמש שוב בשם שלה?
כן.
מהו משתמש מסד הנתונים של cloudsqladmin?
כל מכונה של Cloud SQL ל-PostgreSQL כוללת משתמש של מסד נתונים שנקרא cloudsqladmin. יכול להיות שתבחינו במשתמש הזה אם תריצו את הפקודה \du cloudsqladmin ב-psql או תשלחו שאילתה ל-SELECT * FROM pg_roles WHERE rolname = 'cloudsqladmin'. במקרים מסוימים, המשתמש הזה מופיע גם בטבלת המשתמשים של המערכת. חשבון המשתמש הזה משמש לתהליכים אוטומטיים שצריכים לגשת לנתונים במכונה (לדוגמה, גיבוי המכונה או ביצוע ייבוא או ייצוא).
מהי רמת הבידוד של טרנזקציה ב-Cloud SQL?

מכונות PostgreSQL: ‏Cloud SQL מספק רמת בידוד של טרנזקציה Read committed. אפשר לשנות את רמת הבידוד של טרנזקציה ספציפית, אבל בדרך כלל עדיף להשתמש בערך ברירת המחדל. למידע נוסף, קראו את המאמר Transaction Isolation במסמכי התיעוד של PostgreSQL.

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

תובנות

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

תמחור וחיוב

איך אפשר לנסות את Cloud SQL?
המופע הקטן ביותר הוא db-f1-micro. אתם יכולים להשתמש בו כדי לנסות את השירות. חשוב לזכור שהסכם ה-SLA לא כולל מכונות עם ליבת מעבד משותפת.
כמה מכונות אפשר ליצור בפרויקט?
למידע על מגבלת המכונות, ראו מכסות ומגבלות.
איזה גודל של מכונה של מסד נתונים צריך? כמה זיכרון RAM?
באופן כללי, אפשר לשפר את הביצועים של מסד הנתונים על ידי בחירת מכונה גדולה יותר עם יותר זיכרון RAM ומעבד (CPU). כך משתפרים הביצועים של שאילתות רבות שכוללות כמות גדולה של חישובים, כמו שאילתות שכוללות איחודים, ORDER BY או GROUP, אבל הביצועים של עדכונים שמשפיעים על שורות בודדות לא יושפעו הרבה. עם זאת, ככל שהמכונה גדולה יותר, כך זמן האחזור של הפעולה ארוך יותר. למידע נוסף על גודלי מכונות ועל תמחור, ראו את דף התמחור.
איך מחושב השימוש במכונה שלי?

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

איך מחושב נפח האחסון?
האחסון מחושב לפי נפח האחסון שהקציתם למכונה. החיוב על אחסון של גיבויים נקבע לפי נפח האחסון שהגיבויים תופסים. החיוב על האחסון מתבצע גם אם המכונה מופעלת וגם אם היא מושבתת.
איך אפשר לראות כמה אשלם?
בכרטיסייה Billing במסוףGoogle Cloud מופיעים החיובים שנצברו במכונות מאז שהונפק החשבון האחרון.
מה קורה כשהמכונה מגיעה לגודל המותר?
אם המכונה מגיעה לגודל האחסון שהוקצה, ולא הפעלתם את ההגדלה האוטומטית של נפח האחסון או שהיא הגיעה למגבלה שהוגדרה, לא תוכלו לכתוב למסד הנתונים עד שתגדילו את נפח האחסון. כדי להגדיל את נפח האחסון לא צריך להפעיל מחדש את המכונה או להשבית אותה.
למה המכונה שלי מושעית?
כנראה שיש בעיה בחשבון Google Cloud שלך. כדי לבדוק את סטטוס החיוב, אפשר להגיש בקשה לתמיכה בנושאי חיוב. אחרי שפותרים את הבעיה בחיוב, המכונה חוזרת לסטטוס "ניתן להפעלה" תוך כמה שעות. חשוב לדעת: מכונות PostgreSQL מושעות נמחקות אחרי 90 יום.
למה המכונה שלי נמחקה?
מכונות שמושעות למשך 90 יום נמחקות. ההגדרה הזו רלוונטית למכונות במצב SUSPENDED. מכונות שהופסקו, עם המצב RUNNABLE, לא נמחקות.
איך אפשר לבטל את החשבון ב-Cloud SQL?
כדי להשבית את Cloud SQL בפרויקט, נכנסים לGoogle Cloud מסוף, בוחרים את הפרויקט ובוחרים את שירות ה-API כדי לפתוח את לוח הבקרה של ה-API. מוצאים את Cloud SQL API ולוחצים על Disable.
איך משביתים את החיוב?
כדי להשבית את החיוב, לוחצים על Disable billing בחלונית Billing & settings של הפרויקט במסוף Google Cloud . אם משביתים את החיוב, משביתים גם את שירות Cloud SQL. לפני שמשביתים את החיוב, חשוב לוודא שבאמת רוצים להשבית את שירות Cloud SQL.

אחרי שתשביתו את החיוב, תקבלו חשבון אחרון על חיובים שבוצעו בין תחילת מחזור החיובים לבין מועד הביטול.

.
חזרה למעלה

שימוש ב-Cloud SQL עם App Engine

אפשר להתחבר מ-App Engine למכונה של PostgreSQL?
אתם יכולים להתחבר מאפליקציית App Engine למכונה של PostgreSQL, בהתאם לסביבה ולשפה שבהן אתם משתמשים. מידע נוסף זמין במאמרים התחברות מסביבת ברירת המחדל ב-App Engine והתחברות מהסביבה הגמישה ב-App Engine.
האם לאפליקציית App Engine בארה"ב יש גישה למכונה של Cloud SQL באיחוד האירופי (ולהפך)?

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

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

אם אתם לא משתמשים ב-App Engine, אתם יכולים להשתמש בכל שפה שיש לה מחבר או API משויכים.

אפשר להשתמש ב-Django עם Cloud SQL?
כן. ‫Cloud SQL תואם ל-Django. למידע נוסף, קראו את המאמר תחילת העבודה עם Django.
באילו פלייסהולדרים אפשר להשתמש במחרוזת השאילתה ב-Python?
משתמשי Python יכולים להשתמש רק בקוד הפורמט %s בהחלפת פרמטרים. לכן, ההצהרה הבאה לא תקינה: cursor.execute('INSERT INTO entries (guestAge) VALUES (%d)', (age)).
איך מנהלים את החיבורים?

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

מידע נוסף על מגבלות החיבור למכונות זמין במאמר מכסות ומגבלות.

מה המשמעות של SQLException עם ההודעה "Invalid connection ID"?
המשמעות היא שהחיבור כבר לא פתוח בשרת והלקוח מחק אותו.  אין צורך להפעיל את הפונקציה close בחיבורים האלה, כי הם כבר סגורים.
האם אפשר לגשת למכונה של Cloud SQL באופן פרוגרמטי מחוץ ל-App Engine?
כן. אתם יכולים לגשת למכונות Cloud SQL באופן פרוגרמטי מאפליקציות חיצוניות, באמצעות כל שפה נתמכת. סקירה כללית על החיבור
חזרה למעלה