מידע על רפליקציה ב-Cloud SQL

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

מבוא

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

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

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

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

כשיוצרים את הרפליקה הראשונה:

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

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

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

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

ב-Cloud SQL יש תמיכה בסוגים הבאים של רפליקות:

באמצעות אכיפת מחברים, אתם יכולים לאכוף שימוש רק ב-Cloud SQL Auth Proxy או במחברי שפה של Cloud SQL כדי להתחבר למכונות של Cloud SQL. כשמפעילים אכיפת מחברים, Cloud SQL דוחה חיבורים ישירים למסד הנתונים. אי אפשר ליצור עותקי API לקריאה בלבד במכונה שמופעלת בה אכיפת מחברים. באופן דומה, אם למכונה יש רפליקות לקריאה בלבד, אי אפשר להפעיל אכיפת מחברים במכונה.

ב-Cloud SQL אין תמיכה ברפליקציה בין שני שרתים חיצוניים.

עותקים לקריאה בלבד

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

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

מתחברים לרפליקה ישירות באמצעות שם החיבור וכתובת ה-IP שלה. אם אתם מתחברים לרפליקה באמצעות כתובת IP פרטית, אתם לא צריכים ליצור חיבור פרטי נוסף ל-VPC בשביל הרפליקה, כי החיבור עובר בירושה מהמכונה הראשית.

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

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

בחירת סוג מכונה מתאים

לעותקי ה-Read replica יכול להיות מספר שונה של מעבדי vCPU וזיכרון מאשר למכונה הראשית. כדאי לעקוב אחרי המדדים במכונה, כמו השימוש במעבד (CPU) ובזיכרון, כדי לוודא שהגודל של מכונת הרפליקה מתאים לעומס העבודה שלה, במיוחד אם היא קטנה יותר מהמכונה הראשית. מופע רפליקה קטן מדי נוטה יותר לביצועים נמוכים, כמו אירועים תכופים של חוסר בזיכרון (OOM).

נפח האחסון ברפליקות לקריאה בלבד

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

רפליקות לקריאה באזורים שונים

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

במקרה של רפליקות לקריאה בלבד של SQL Server, ההנחה היא שהרפליקה נמצאת באותה רשת וירטואלית כמו הרפליקה הראשית, או שהן מתקשרות באמצעות כתובת IP ציבורית.

רפליקות בכמה אזורים:

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

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

רפליקות לקריאה מדורגת

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

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

הסברים על המונחים

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

הגדרת רפליקות מדורגות

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

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

הגבלות

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

תרחישים לדוגמה של רפליקציה

תרחישי השימוש הבאים רלוונטיים לכל סוג של רפליקציה.

שם ראשי רפליקה יתרונות ותרחישים לדוגמה מידע נוסף
עותק לקריאה בלבד מכונה של Cloud SQL מכונה של Cloud SQL
  • קיבולת קריאה נוספת
  • יעד ב-Analytics
  • שיפור ביצועי קריאה
  • ייצוא מרפליקות
רפליקה לקריאה באזור אחר מכונה של Cloud SQL מכונה של Cloud SQL
  • קיבולת קריאה נוספת
  • יעד ב-Analytics
  • יכולת נוספת של תוכנית התאוששות מאסון (DR)
  • שיפור ביצועי קריאה
  • העברת נתונים בין אזורים
רפליקציה של שרת SQL מכונה מחוץ ל-Cloud SQL מכונה של Cloud SQL ל-SQL Server
  • נתיב ההעברה ל-Cloud SQL
  • רפליקציה משרת חיצוני ל-Cloud SQL
  • רפליקציה מ-Cloud SQL לשרת חיצוני
  • רפליקציה בין מכונות של Cloud SQL
  • שכפול נתונים אל Google Cloud
  • יעד ב-Analytics

חיוב

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

הפניה מהירה לרפליקות לקריאה בלבד ב-Cloud SQL

נושא קבוצת הדיון
גיבויים אי אפשר להגדיר גיבויים ברפליקה.
ליבות וזיכרון עותקים לקריאה בלבד יכולים להשתמש במספר שונה של ליבות ובכמות שונה של זיכרון מאלה של המכונה הראשית.
מחיקת המכונה הראשית כדי למחוק מכונה ראשית, צריך לקדם את כל הרפליקות לקריאה בלבד שלה למכונות עצמאיות או למחוק את הרפליקות לקריאה בלבד.
מחיקת הרפליקה כשמוחקים רפליקה, אין לכך השפעה על הסטטוס של המכונה הראשית.
מחיקת מסד נתונים משוכפל אתם יכולים למחוק מסד נתונים משוכפל של SQL Server באמצעות מסוף Google Cloud או הפקודה gcloud, והמחיקה תתפשט באופן אוטומטי לרפליקות. אי אפשר למחוק מסד נתונים משוכפל של SQL Server באמצעות פקודות T-SQL.
יתירות כשל מופע ראשי יכול לעבור למצב של יתירות כשל ברפליקה רק אם הרפליקה היא רפליקה מדורגת. עותקי ה-Read Replica לא יכולים לעבור למצב יתירות כשל בשום צורה במהלך הפסקה.
איזון עומסים ב-Cloud SQL אין איזון עומסים בין רפליקות.
חלונות זמן לתחזוקה הרפליקות לקריאה חולקות את חלונות הזמן לתחזוקה עם המכונה הראשית. הרפליקות פועלות לפי הגדרות התחזוקה של המכונה הראשית, כולל חלון הזמן לתחזוקה, קביעת מועד חדש ופרק הזמן לדחיית עדכונים ותחזוקה. במהלך התחזוקה, קודם כל מתעדכנות כל הרפליקות לקריאה ב-Cloud SQL, ורק אחר כך מתעדכנת המכונה הראשית.
כמה עותקים לקריאה בלבד אפשר ליצור עד 8 רפליקות לקריאה בלבד למכונה ראשית אחת.
כתובת IP פרטית אם אתם מתחברים לרפליקה באמצעות כתובת IP פרטית, אתם לא צריכים ליצור חיבור פרטי נוסף ל-VPC בשביל הרפליקה, כי היא עוברת בירושה מהמכונה הראשית.
שחזור המכונה הראשית אי אפשר לשחזר את המכונה הראשית של רפליקה כל עוד הרפליקה קיימת. לפני שמשחזרים מכונה מגיבוי או מבצעים בה שחזור מערכת מנקודה מסוימת בזמן (PITR), צריך לקדם או למחוק את כל הרפליקות שלה.
הגדרות ההגדרות של המכונה הראשית מועברות לרפליקה, כולל שינויים בנתונים של המשתמשים שיכולים לגשת למכונה.
הפסקת רפליקה אי אפשר stop רפליקה. אפשר restart או delete אותו, אבל אי אפשר לעצור אותו כמו מכונה ראשית.
שדרוג רפליקה עותקים לקריאה בלבד יכולים לעבור שדרוג משבש בכל שלב.
טבלאות משתמשים אי אפשר לבצע שינויים ברפליקה. כל השינויים של המשתמשים צריכים להתבצע במכונה הראשית.

מגבלות

  • התכונה הזו רלוונטית רק לגרסאות הבאות של Cloud SQL ל-SQL Server:

    • SQL Server 2017 Enterprise
    • SQL Server 2019 Enterprise
    • SQL Server 2022 Enterprise
  • ב-Cloud SQL אין תמיכה ברפליקות של תוכנית התאוששות מאסון (DR) מתקדמת באותו אזור. אם רוצים ליצור עותק לקריאה בלבד באותו אזור של המקור, אפשר לקדם את העותק לקריאה בלבד רק למכונה ראשית חדשה.

  • רפליקות מדורגות זמינות רק במהדורת Cloud SQL Enterprise Plus.

  • אי אפשר ליצור רפליקה מדורגת באמצעות מסוף Google Cloud .

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

  • אתם צריכים לעקוב אחרי הרפליקה באמצעות T-SQL או SQL Server Management Studio.

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

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

  • כדי ליצור רפליקה, המכונה הראשית צריכה לעמוד בדרישות הבאות:

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

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

    Instance is not eligible for replica creation...
    
  • אי אפשר להגדיר רפליקציה במכונה שמוגדרת עם רפליקציה חיצונית.

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