מאגרי קריאה ב-Cloud SQL תומכים באיזון עומסים בעומסי עבודה גדולים של קריאה.
מהם מאגרי קריאה?
מאגר קריאה הוא אוסף של מכונות של רפליקות לקריאה בלבד, שמשמשות להפצת עומסי עבודה גדולים של קריאה. אפשר להפנות את עומסי העבודה האלה מהמכונה הראשית למאגר לקריאה בלבד כדי להפחית את העומס על המכונה הראשית.
כל עותק לקריאה בלבד במאגר נקרא צומת במאגר לקריאה בלבד.
יש כמה דרכים להגדיל את מאגר הקריאה:
- הגדלה או הקטנה של קנה המידה: שינוי קנה המידה של קיבולת איזון העומסים באופן אופקי על ידי שינוי מספר הצמתים של מאגר הקריאה במאגר הקריאה. כל מאגר קריאה תומך ב-1 עד 20 צמתים של מאגר קריאה.
- הגדלה או הקטנה של קנה המידה: אפשר לשנות את הקיבולת של איזון העומסים באופן אנכי על ידי שינוי סוג המכונה שמשויכת לצומת של מאגר קריאה. אחרי שמגדירים את מאגר הקריאה, ההגדרה חלה באופן אחיד על כל צומת במאגר הקריאה.
כשמשנים את ההגדרות של צומת מאגר קריאה, כמו אחסון, קישוריות או דגלי הגדרה של מסד נתונים, השינויים חלים באופן אוטומטי על כל צומת במאגר הקריאה.
גישה למאגר קריאה דרך נקודת קצה אחת לקריאה
אפשר לגשת למאגר הקריאה דרך נקודת קצה אחת לקריאה עם כתובת IP שלא ניתנת לשינוי. חיבורים שנוצרים דרך נקודת הקצה מופנים אוטומטית לאחד מהצמתים של מאגר הקריאה. כשרוצים להרחיב אופקית או לצמצם אופקית את מאגר הקריאה, לא צריך להגדיר מחדש את האפליקציות שהיו מחוברות בעבר לנקודת הקצה היחידה הזו לקריאה, גם אם יוצרים צמתים חדשים במאגר הקריאה או מוחקים צמתים קודמים.
לכל צומת במאגר לקריאה בלבד יש גם כתובת IP משלו. לא מומלץ להשתמש בכתובות ה-IP האלה כגישה יעילה לנתונים, אבל אפשר להשתמש בהן כדי לפתור בעיות בביצועים של צומת מאגר קריאה ספציפי.
במאמר הצגת מידע על מאגר קריאה מוסבר איך לאחזר את פרטי החיבור של מאגר הקריאה או של הצמתים של מאגר הקריאה (כתובות IP או מחרוזת חיבור).
קריאה של התאמה לעומס (autoscaling) במאגר
אתם יכולים להגדיר את מאגר הקריאה כך שישנה את הגודל שלו באופן אוטומטי בהתאם לשינויים בעומס העבודה של האפליקציה. מידע נוסף זמין במאמר התאמה אוטומטית לעומס של מאגר קריאה.
קריאת מאפייני הבריכה
המאפיינים הבאים חלים:
- למאגרי קריאה אין API ייחודי שנתמך ב-Cloud SQL. כל פעולה ליצירה, להגדרה או לצפייה של מאגר קריאה מתבצעת באמצעות ה-API של מכונת Cloud SQL.
לדוגמה, כשמשתמשים ב-
gcloud CLIכדי ליצור מאגר קריאה, משתמשים בפקודהgcloud sql instances create. באופן דומה, כדי לבדוק את מספר הצמתים של מאגר הקריאה שהוגדרו במאגר קריאה, משתמשים בפקודהgcloud sql instances describe. - מאגר קריאה עם שני צמתים או יותר נכלל בהסכם רמת השירות (SLA).
- צומתי מאגר הקריאה של מאגר הקריאה תמיד נמצאים באותו אזור, כפי שצוין על ידי המשתמש. Cloud de Confiance by S3NS מחליף את מיקום צומת מאגר הקריאה בין כל האזורים באזור.
- למכונה ראשית יכול להיות מאגר קריאה אחד או יותר.
- הפעולות הבאות גורמות לזמן השבתה של פחות משנייה:
- הרחבה או צמצום (הוספה או הסרה של צמתים במאגר לקריאה בלבד).
- הגדלה או הקטנה (שינוי סוג המכונה של הצמתים במאגר).
- המרת רפליקה לקריאה בלבד באזור קיים למאגר קריאה.
- מאגר לקריאה בלבד עובר תחזוקה לפני המכונה הראשית שלו, בדומה לרפליקות לקריאה בלבד. כמו רפליקות לקריאה, מאגרי קריאה עוברים תחזוקה במהלך חלון הזמן לתחזוקה של המכונה הראשית.
- לכל צומת במאגר הקריאה יש את אותם מדדים שזמינים לרפליקה לקריאה בלבד ב-Cloud SQL.
- כשמשתמשים ב-
gcloudאו במסוף Cloud de Confiance כדי לתאר את פרטי הפרויקט, שם מאגר הקריאה מופיע, אבל שמות הצמתים של מאגר הקריאה לא מופיעים. - אם רוצים להגדיל את מספר העותקים לקריאה בלבד ליותר מ-10, צריך לאפס את הערכים של הדגלים לניהול מסד נתונים
max_wal_sendersו-max_replication_slotsבמכונה הראשית לערך שגדול או שווה למספר העותקים לקריאה בלבד שרוצים להשתמש בהם. לדוגמה, אם למכונה הראשית יש שתי רפליקות לקריאה ושני מאגרי קריאה של עשר רפליקות כל אחד, צריך לאפס את דגלי ההגדרותmax_wal_sendersו-max_replication_slotsלערך22או יותר. אם במכונה שלכם מותקנת גרסה 18 של PostgreSQL, צריך גם להגדיר את הדגלmax_active_replication_originsלערך22או יותר.
מגבלות
המגבלות הבאות חלות:
- מאגרי קריאה זמינים רק למכונות של Cloud SQL Enterprise Plus edition בארכיטקטורת הרשת החדשה. המכונה הראשית שמשויכת למאגר לקריאה בלבד חייבת להיות גם מכונה של מהדורת Cloud SQL Enterprise Plus.
- התנועה מועברת מצומתי מאגר הקריאה בהתאם לתקינות מסד הנתונים, אבל בלי קשר למידת הפיגור בשכפול בצומת מאגר הקריאה. התנועה יכולה לעבור מצומת מאגר קריאה בפיגור, גם אם יש צומת מאגר קריאה אחר שלא נמצא בפיגור. מסד נתונים נחשב תקין אם תהליך מסד הנתונים פועל ויכול לענות על שאילתות, אבל אין דרישה לגבי מידת העדכניות של הנתונים שמוצגים.
- אין הבטחה שסשן לוגי יחיד יתחבר לכמה צמתים במאגר הקריאה. יכול להיות שבקשות מאוחרות יותר בסשן יתחברו לצומת של מאגר קריאה עם מיקום רפליקציה (LSN) נמוך יותר מהצומת של מאגר הקריאה שטיפל בבקשה קודמת, מה שיכול לגרום למצב של מסד הנתונים להיראות כאילו הוא חזר אחורה בזמן.
- סוגי העדכונים הבאים לא נתמכים:
- מאגרי הקריאה עדיין מקבלים עדכוני תחזוקה של Cloud SQL, אבל אי אפשר לעדכן את מאגר הקריאה לגרסה ראשית חדשה של מסד הנתונים.
- הפעלה או עצירה של צמתים במאגר הקריאה.
- בנוסף לפעולות שלא נתמכות ברפליקות לקריאה, הפעולות הבאות לא נתמכות במאגרי קריאה:
- הפעלה והשבתה של הרפליקציה
- קידום רפליקה
- הפעלה מחדש
- ייבוא
- ייצוא
- יתירות כשל
- הצפנה מחדש
- שכפל
- אי אפשר להשתמש באישורי SSL/TLS עם רשות אישורים משותפת או עם רשות אישורים בניהול הלקוח במאגר לקריאה בלבד.
- מאגר קריאה לא יכול לשכפל למכונה אחרת, למשל, רפליקה מדורגת או מאגר קריאה אחר.
- מאגר קריאה חייב לשכפל ישירות ממכונה ראשית. היא לא יכולה להיות רפליקה מדורגת.
- אם רוצים להמיר עותק אזורי לקריאה בלבד למאגר קריאה, צריך קודם להמיר את העותק האזורי לקריאה בלבד לעותק לקריאה בלבד באזור ספציפי.
- כשיוצרים או משנים את הגודל של מאגר קריאה, צריך להמתין עד לסיום הפעולות הקודמות של יצירת המאגר, הקטנת הגודל או הגדלת הגודל שמשויכות למאגר הקריאה. ההגבלה הזו חלה על כל מאגר קריאה אחר שמשויך לאותו מכונה ראשית. אם רוצים לשנות את הגודל של כמה מאגרי קריאה שמשויכים לאותו מכונה ראשית, צריך לחכות עד שפעולות שינוי הגודל שמשויכות למאגר הקריאה הראשון יסתיימו לפני שמתחילים לשנות את הגודל של מאגר הקריאה הבא. אם שולחים בקשות בו-זמנית, יכול להיות שתתקבל השגיאה הבאה:
Operation failed because another operation was already in progress.. - אפשר להמיר לשימוש במאגר קריאה רק רפליקה אזורית שנמצאת באותו אזור כמו הרפליקה הראשית.
- אם האפליקציה צריכה להתחבר לעותק ייעודי לקריאה בלבד – לדוגמה, בגלל אינדקסים משניים שקיימים בעותק ספציפי לקריאה בלבד – צריך ליצור עותק לקריאה בלבד ב-Cloud SQL ולהשתמש בו במקום זאת.