פתרון בעיות

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

הנושאים בדף הזה:

גיבוי ושחזור

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

מריצים את הפקודה gcloud sql operations list כדי להציג את כל הפעולות במכונה הנתונה של Cloud SQL.

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

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

  • cloudsql.googleapis.com/sqlagent.out
  • cloudsql.googleapis.com/sqlserver.err
  • אם יומני הביקורת של Cloud מופעלים ויש לכם את ההרשאות הנדרשות כדי לצפות בהם, יכול להיות שגם cloudaudit.googleapis.com/activity זמין.
אחרי שמוחקים מכונה, אי אפשר לגבות אותה.

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

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

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

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

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

יוצרים את המשתמשים במסד הנתונים לפני שמשחזרים את ה-SQL dump.

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

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

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

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

אי אפשר לשחזר את המכונה באמצעות הפקודה Transact-SQL RESTORE או SQL Server Management Studio (SSMS). ב-Cloud SQL אי אפשר לשחזר מכונות באמצעות SSMS. כדי לשחזר את המכונה, מריצים את הפקודה gcloud sql import.
אתם לא יכולים לראות את היסטוריית הגיבוי של היומן.

היסטוריית הגיבוי של היומן נשמרת רק למשך 60 יום בטבלאות של היסטוריית הגיבוי ב-מסד הנתונים msdb.

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

שכפל

שגיאה פתרון בעיות
השכפול נכשל ומוצגת השגיאה constraints/sql.restrictAuthorizedNetworks. פעולת השכפול נחסמת על ידי ההגדרה Authorized Networks. Authorized Networks מוגדרים לכתובות IP ציבוריות בקטע Connectivity במסוף Google Cloud , ואי אפשר לשכפל בגלל שיקולי אבטחה.

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

הודעת שגיאה: Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges. Please allocate new ranges for this service provider. Help Token: [help-token-id].

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

משתמשים ב-gcloud כדי לשכפל את המכונה ומספקים ערך לפרמטר
--allocated-ip-range-name. מידע נוסף זמין במאמר שכפול מכונה עם כתובת IP פרטית.

חיבור

שגיאה פתרון בעיות
Aborted connection. הבעיה יכולה להיות:
  • חוסר יציבות ברשת.
  • אין תגובה לפקודות TCP keep-alive (הלקוח או השרת לא מגיבים, אולי בגלל עומס יתר)
  • משך החיים של החיבור למנוע של מסד הנתונים חרג מהמגבלה, והשרת מסיים את החיבור.

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

כדי לנסות להתחבר מחדש, מומלץ להשתמש בשיטות הבאות:

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

שילוב של השיטות האלה עוזר לצמצם את ההאטה.

הזמן הקצוב לתפוגה של החיבור או שגיאת חיבור כללית כשמשתמשים בכתובת IP פרטית או בקישור בין רשתות VPC שכנות (peering).

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

שלבים לפתרון בעיות:

  1. מריצים בדיקת קישוריות של Network Intelligence Center בין הלקוח במקור לבין כתובת ה-IP הפרטית של Cloud SQL ביציאה של מסד הנתונים (3306 ל-MySQL,‏ 5432 ל-PostgreSQL או 1433 ל-SQL Server). הבדיקה עוקבת אחרי נתיב החבילה ומזהה אם תעבורת הנתונים נדחתה בגלל כללים של חומת האש, נתיבים חסרים או הגדרות שגויות של קישור Peering.
  2. מוודאים שהסטטוס של החיבור בין רשתות VPC מקבילות הוא ACTIVE.
  3. מוודאים שכללי חומת האש ברשת ה-VPC מאפשרים תעבורת נתונים נכנסת (ingress) ביציאה של מסד הנתונים.
  4. אם אתם משתמשים בטווחי כתובות שהם לא RFC 1918, ודאו שעדכנתם את הגדרת הקישור בין רשתות שכנות (peering) כדי לייצא נתיבי רשתות משנה עם כתובת IP ציבורית.

לפרטים נוספים ולפקודות אבחון של gcloud, קראו את המאמר אבחון כשלים ברשת VPC ובקישור דרך IP פרטי.

הודעת שגיאה: Login failed for user "" יכול להיות שתיתקלו בשגיאת ההתחברות הזו במהלך אימות Microsoft Entra ID. כדי לפתור את הבעיה, ודאו שקיים פרטי התחברות ל-SQL Server למשתמש הזה ב-Microsoft Entra ID.
בעיות בקישוריות לרשת במכונות עם כתובת IP פרטית יכול להיות שתיתקלו בבעיות הבאות במהלך הגדרת השילוב:
  • פעולות איטיות ליצירת פרטי כניסה ל-Microsoft Entra ID
  • לא ניתן ליצור פרטי התחברות ל-Microsoft Entra ID
  • לא ניתן להתחבר למכונה באמצעות אימות של Microsoft Entra ID

במאמר פתרון בעיות בשילוב עם Microsoft Entra ID מוסבר איך לפתור את הבעיות האלה.

יצירת מכונות

שגיאה פתרון בעיות
הודעת שגיאה: 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 שהוקצה לחיבור לשירות הפרטי קטן מ-‎ /24.
  • גודל טווח כתובות ה-IP שהוקצה לחיבור לשירות הפרטי קטן מדי למספר המכונות של Cloud SQL.
  • אם יוצרים מכונות בכמה אזורים, הדרישה לגבי הגודל של טווח כתובות ה-IP שמוקצה תהיה גדולה יותר. גודל הטווח שהוקצה

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

אם השתמשתם בדגל --allocated-ip-range-name בזמן שיצרתם את המכונה של Cloud SQL, תוכלו להרחיב רק את טווח כתובות ה-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 עומדים בקריטריונים הבאים:

  • הם לא מכילים תווים כלליים לחיפוש.
  • אין בהן נקודות בסוף.
  • הם עומדים במפרטים של RFC 1034.

הפעלת SQL באמצעות Data API

שגיאה פתרון בעיות
The instance doesn't allow using ExecuteSql to access this instance. You can allow it by patching the instance with {settings: { dataApiAccess: "ALLOW_DATA_API" }} ‫Data API מושבת כברירת מחדל. כדי לפתור את הבעיה, מפעילים את Data API במכונה.
Secret cannot be provided when auto_iam_authn is true. כשמגדירים את auto_iam_authn ל-true, מבצעים אימות למסד הנתונים באמצעות IAM. בשיטת האימות הזו לא נדרשת סיסמה או סוד. אימות באמצעות IAM
ExecuteSql API is not supported for instances in certain Assured Workloads control packages folders yet. יכול להיות שסקריפט ה-SQL והתגובה להפעלה שלו יעברו דרך מיקומי ביניים בין הלקוח לבין המיקום של מכונת היעד. לכן, בקשות ייכשלו במכונות בפרויקטים מסוימים של Assured Workloads. אם הפרויקט לא רשום ל-Assured Workloads אבל constraints/sql.restrictNoncompliantResourceCreation נאכף באופן ידני, צריך לבקש מהאדמין של הארגון להסיר את האילוץ, והבעיה תיפתר במכונות החדשות שייווצרו.
The server principal USERNAME is not able to access the database DATABASE_NAME under the current security context. המשתמש לא חבר במסד הנתונים. מתחברים למסד הנתונים כמשתמש sqlserver ומוסיפים את המשתמש החדש, ואז נותנים למשתמש החדש את התפקיד db_owner במסד הנתונים. לדוגמה:
  EXEC sp_adduser 'user';
  EXEC sp_addrolemember 'db_owner', 'user'
  
The database is currently unavailable. יכול להיות שהמכונה מופעלת מחדש, עוברת תחזוקה או במצב לא תקין. צריך לבדוק את הסטטוס של המכונה ולנסות שוב מאוחר יותר.

ייצוא

שגיאה פתרון בעיות
HTTP Error 409: Operation failed because another operation was already in progress. כבר יש פעולה בהמתנה למכונה. מותר לבצע פעולה אחת בלבד בכל פעם. כדאי לנסות לשלוח את הבקשה אחרי שהפעולה הנוכחית תסתיים.
HTTP Error 403: The service account does not have the required permissions for the bucket. כדי לאפשר ייצוא לקטגוריה, צריך לוודא שהקטגוריה קיימת ושלחשבון השירות של מכונת Cloud SQL (שמבצעת את הייצוא) יש את התפקיד Storage Object Creator (roles/storage.objectCreator). תפקידי IAM ל-Cloud Storage
אתם רוצים שהייצוא יתבצע באופן אוטומטי. ב-Cloud SQL אין דרך להפוך את הייצוא לאוטומטי.

אתם יכולים ליצור מערכת ייצוא אוטומטית משלכם באמצעות מוצרי Google Cloudכמו Cloud Scheduler,‏ Pub/Sub ופונקציות Cloud Run, בדומה למאמר הזה בנושא אוטומציה של גיבויים.

דגלים

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

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

ב-Cloud SQL ל-SQL Server, אפשר להשתמש בפונקציה AT TIME ZONE להמרות זמן ועוד. מידע נוסף על הפונקציה הזו זמין במאמר AT TIME ZONE (Transact-SQL)‎.

זמינות גבוהה

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

עורכים את המכונה כדי לשדרג למכונה גדולה יותר עם יותר מעבדי CPU וזיכרון.

ייבוא

שגיאה פתרון בעיות
HTTP Error 409: Operation failed because another operation was already in progress. כבר יש פעולה בהמתנה למכונה. מותר לבצע פעולה אחת בלבד בכל פעם. כדאי לנסות לשלוח את הבקשה אחרי שהפעולה הנוכחית תסתיים.
פעולת הייבוא נמשכת יותר מדי זמן. יותר מדי חיבורים פעילים יכולים להפריע לפעולות הייבוא.

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

הפעלה מחדש:

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

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

אי-התאמה ב-LSN סדר הייבוא של הגיבויים של יומן העסקאות שגוי או ששרשרת יומן העסקאות שבורה.
מייבאים את הגיבויים של יומן העסקאות באותו סדר שבו הם מופיעים בטבלה של קבוצת הגיבויים.
‫StopAt מוקדם מדי השגיאה הזו מציינת שהיומן הראשון בקובץ יומן העסקאות הוא אחרי חותמת הזמן StopAt. לדוגמה, אם היומן הראשון בקובץ יומן העסקאות הוא ב-2023-09-01T12:00:00 ובשדה StopAt יש את הערך 2023-09-01T11:00:00, אז Cloud SQL מחזיר את השגיאה הזו.
חשוב לוודא שאתם משתמשים בחותמת הזמן הנכונה של StopAt ובקובץ יומן העסקאות הנכון.

שרתים מקושרים

שגיאה פתרון בעיות
Msg 7411, Level 16, State 1, Line 25

Server 'LINKED_SERVER_NAME' is not configured for DATA ACCESS.
האפשרות DataAccess מושבתת. מריצים את הפקודה הבאה כדי להפעיל את הגישה לנתונים:
EXEC sp_serveroption
    @server='LINKED_SERVER_NAME',
    @optname='data access',
    @optvalue='TRUE'

מחליפים את LINKED_SERVER_NAME בשם של השרת המקושר.

Access to the remote server is denied because no login-mapping exists. (Microsoft SQL Server, Error: 7416) אם הבעיה הזו מתרחשת בזמן שאתם יוצרים חיבור מוצפן, אתם צריכים לנסות דרך אחרת כדי לספק את מזהה המשתמש כשאתם ניגשים לשרת המקושר. כדי לעשות את זה, מריצים את הפקודה הבאה:
EXEC master.dbo.sp_addlinkedserver
   @server = N'LINKED_SERVER_NAME',
   @srvproduct= N'',
   @provider= N'MSOLEDBSQL',
   @datasrc= N'TARGET_SERVER_ID',
   @provstr= N'Encrypt=yes;TrustServerCertificate=yes;User ID=USER_ID'

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

  • LINKED_SERVER_NAME בשם של השרת המקושר.
  • TARGET_SERVER_ID בשם של שרת היעד, או בכתובת ה-IP ובמספר היציאה של שרת היעד.
  • ‫USER_ID עם המשתמש שמבצע את ההתחברות.
התנהגות לא צפויה אם אתם נתקלים בהתנהגות לא צפויה, ודאו שאתם משתמשים בספק נתמך. מידע נוסף זמין במאמרי העזרה של Microsoft.

רישום ביומן

שגיאה פתרון בעיות
לא נמצאו יומני ביקורת. יומני Data Access נכתבים רק אם הפעולה היא קריאה מאומתת ל-API שמונעת על ידי משתמש, שיוצרת, משנה או קוראת נתונים שנוצרו על ידי משתמשים, או אם הפעולה ניגשת לקובצי תצורה או למטא-נתונים של משאבים.
מידע על הפעולות לא נמצא ביומנים. אתם רוצים לקבל מידע נוסף על פעולה מסוימת.

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

חלק מהיומנים מסוננים מהיומן error.log של מכונה של Cloud SQL ל-SQL Server. היומנים המסוננים כוללים יומני AD ללא חותמות זמן, וכוללים את: Login failed for user 'x'. Reason: Token-based server access validation failed with an infrastructure error. Login lacks connect endpoint permission. [CLIENT: 127.0.0.1]. היומנים האלה מסוננים כי הם עלולים לגרום לבלבול.
קשה לקרוא קובצי יומן. אתם מעדיפים להציג את היומנים כקובץ JSON או כטקסט.אתם יכולים להשתמש בפקודה gcloud logging read יחד עם פקודות עיבוד ב-Linux כדי להוריד את היומנים.

כדי להוריד את היומנים כקובץ JSON:

gcloud logging read \
"resource.type=cloudsql_database \
AND logName=projects/PROJECT_ID \
/logs/cloudsql.googleapis.com%2FLOG_NAME" \
--format json \
--project=PROJECT_ID \
--freshness="1d" \
> downloaded-log.json
    

כדי להוריד את היומנים כקובץ TEXT:

gcloud logging read \
"resource.type=cloudsql_database \
AND logName=projects/PROJECT_ID \
/logs/cloudsql.googleapis.com%2FLOG_NAME" \
--format json \
--project=PROJECT_ID \
--freshness="1d"| jq -rnc --stream 'fromstream(1|truncate_stream(inputs)) \
| .textPayload' \
--order=asc
> downloaded-log.txt
   

ניהול מופעים

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

אפשר לראות פירוט של השימוש בדיסק של המכונה לפי סוג הנתונים באמצעות המדד cloudsql.googleapis.com/database/disk/bytes_used_by_data_type בMetrics Explorer או התרשים Disk storage by type בלוח הבקרה System insights.

דברים שכדאי לנסות:

  • ‫ב-Cloud SQL ל-SQL Server, המדד database/disk/bytes_used_by_data_type מפרט את השימוש בדיסק של המכונה לפי Data, pitr_transaction_log_backups (גיבויים של יומני טרנזקציות שמאוחסנים בדיסק לשחזור מערכת מנקודה מסוימת בזמן), Logs, error_logs, memory_dumps ו-Other.
  • כדי לבדוק את פירוט האחסון בין קובצי נתונים (ROWS) לבין קובצי יומן של טרנזקציות (LOG) במסד נתונים של Cloud SQL ל-SQL Server, מתחברים למסד הנתונים ושולחים שאילתה ל-sys.database_files:
    SELECT name, type_desc,
      size * 8 / 1024.0 AS size_mb,
      FILEPROPERTY(name, 'SpaceUsed') * 8 / 1024.0 AS space_used_mb
    FROM sys.database_files;
    אפשר גם להריץ את הפקודה DBCC SQLPERF(LOGSPACE); כדי לבדוק את גודל יומן העסקאות ואת השטח שבו נעשה שימוש בכל מסדי הנתונים במכונה.
  • כדי לבדוק אם הגיבויים של יומני העסקאות של שחזור המערכת מנקודה מסוימת בזמן (PITR) מאוחסנים בדיסק או ב-Cloud Storage, קראו את המאמר בדיקת מיקום האחסון של יומני העסקאות שמשמשים ל-PITR.
נפח האחסון הזמני הגדיל את נפח האחסון האוטומטי. האחסון האוטומטי מופעל.

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

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

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

אי אפשר למחוק את המכונה. יכול להיות שתופיע הודעת השגיאה ERROR: (gcloud.sql.instances.delete) HTTP Error 409: The instance or operation is not in an appropriate state to handle the request, או שהמכונה תהיה בסטטוס INSTANCE_RISKY_FLAG_CONFIG.

הנה כמה הסברים אפשריים:

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

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

אפשרות אחת להפחתת הסיכון היא ליצור את הטבלה הזמנית באמצעות ROW_FORMAT=COMPRESSED, כדי שהיא תאוחסן במרחבי טבלאות מסוג file-per-table בספריית הקבצים הזמניים. עם זאת, החיסרון הוא עלויות הביצועים שקשורות ליצירה ולהסרה של מרחב טבלאות מסוג file-per-table לכל טבלה זמנית.

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

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

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

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

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

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

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

כדאי לעיין במיוחד ב טיפים הכלליים לשיפור הביצועים.

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

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

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

יש אינדיקציה ל-אין זיכרון פנוי (OOM), אבל היא לא מופיעה בתרשימי המעקב. יכול להיות שמכונה תיכשל ותדווח על Out of memory, אבל בתרשימים של מסוף Google Cloud או של Cloud Monitoring נראה שעדיין נשאר זיכרון.

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

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

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

כדי לשמור את הנתונים, צריך לייצא אותם ל-Cloud Storage לפני ש מוחקים מכונה.

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

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

יש דרכים אחרות להשיג את המטרה על ידי יצירת מכונה חדשה.

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

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

שגיאה במחיקת מופע. אם ההגנה מפני מחיקה מופעלת במכונה, צריך לאשר את התוכניות למחיקת המכונה. ואז להשבית את ההגנה מפני מחיקה לפני שמוחקים את המכונה.
הודעת שגיאה: 429 Too Many Requests (rateLimitExceeded). יכול להיות שתקבלו את השגיאה 429 Too Many Requests ב-HTTP עם הסיבה rateLimitExceeded כשאפליקציה או חשבון שירות חורגים מהמכסה לקצב הגשת הבקשות לכל משתמש ב-Cloud SQL Admin API. מכסות לקצב הגשת בקשות נאכפות לדקה, למשתמש ולאזור, ולכן יכול להיות שמדדי המכסות המצטברים ברמת הפרויקט בדף Cloud Quotas במסוף Google Cloud לא יראו ניצול מלא של המכסה.

כדי לאבחן איזה משתמש או חשבון שירות ממצה את הגבלת קצב של יצירת בקשות לכל משתמש:

  1. במסוף Google Cloud , בוחרים את הפרויקט הצרכני שממנו נשלחות הבקשות, ואז נכנסים לדף Metrics Explorer.
  2. לוחצים על Select a metric ומזינים serviceruntime.googleapis.com/api/request_count בסרגל הסינון. בתפריטי המשנה, בוחרים באפשרות Consumed API > Api > Request count ולוחצים על Apply.
  3. ברכיב Filter, לוחצים על Add filter, בוחרים באפשרות response_code, משאירים את Comparator מוגדר ל-= (equals), מזינים 429 בשדה Value ולוחצים על Apply.
  4. לוחצים שוב על הוספת מסנן, בוחרים באפשרות service (מזינים sqladmin.googleapis.com בשדה ערך) או method (לדוגמה, מזינים google.cloud.sql.v1.SqlInstancesService.Get בשדה ערך), ואז לוחצים על אישור.
  5. ברכיב Aggregation, מוודאים שהתפריט הראשון מוגדר ל-Sum, ובתפריט השני (לצד by) בוחרים באפשרות credential_id כדי לקבץ את הבקשות לפי פרטי כניסה ספציפיים.
  6. בתוצאות, מחפשים את מזהה פרטי הכניסה (credential_id) עם המספר הגבוה ביותר של תגובות 429. הערך הזה הוא מזהה הלקוח ב-OAuth 2.0 של חשבון השירות או של פרטי הכניסה של המשתמש שמנצל את מגבלת הקצב לכל משתמש.
  7. במסוף Google Cloud , נכנסים לדף Service accounts ומחפשים את מזהה הלקוח ב-OAuth 2.0 שתואם למזהה פרטי הכניסה. הרשומה התואמת היא חשבון השירות שממצה את הגבלת קצב של יצירת בקשות לכל משתמש.

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

התחברות לשירות פרטי

שגיאה פתרון בעיות
החיבור לשירות של המכונה לא מקבל את נקודת הקצה של Private Service Connect.
  1. בודקים את הסטטוס של נקודת הקצה.

    gcloud

    כדי לבדוק את הסטטוס, משתמשים בפקודה
    gcloud compute forwarding-rules describe.

    gcloud compute forwarding-rules describe ENDPOINT_NAME \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    | grep pscConnectionStatus

    מחליפים את הפרטים הבאים:

    • ‫ENDPOINT_NAME: השם של נקודת הקצה
    • ‫PROJECT_ID: המזהה או מספר הפרויקט של הפרויקט ב- Google Cloud שמכיל את נקודת הקצה (endpoint)
    • ‫REGION_NAME: שם האזור של נקודת הקצה (endpoint)

    REST

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • ‫PROJECT_ID: המזהה או מספר הפרויקט של הפרויקט ב- Google Cloud שמכיל את נקודת הקצה של Private Service Connect
    • ‫REGION_NAME: שם האזור
    • ‫ENDPOINT_NAME: השם של נקודת הקצה

    ה-method של ה-HTTP וכתובת ה-URL:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

    {
      "kind": "compute#forwardingRule",
      "id": "ENDPOINT_ID",
      "creationTimestamp": "2024-05-09T12:03:21.383-07:00",
      "name": "ENDPOINT_NAME",
      "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME",
      "IPAddress": "IP_ADDRESS",
      "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME",
      "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default",
      "serviceDirectoryRegistrations": [
        {
          "namespace": "goog-psc-default"
        }
      ],
      "networkTier": "PREMIUM",
      "labelFingerprint": "LABEL_FINGERPRINT_ID",
      "fingerprint": "FINGERPRINT_ID",
      "pscConnectionId": "CONNECTION_ID",
      "pscConnectionStatus": "ACCEPTED",
      "allowPscGlobalAccess": true
    }
    
  2. מוודאים שהסטטוס של נקודת הקצה הוא ACCEPTED. אם הסטטוס הוא PENDING, המכונה לא מאפשרת לפרויקט Google Cloud שמכיל את נקודת הקצה. חשוב לוודא שפרויקט הרשת שבו נוצרה נקודת הקצה מורשה. מידע נוסף זמין במאמר עריכת מכון עם Private Service Connect מופעל.
ERROR: (gcloud.compute.forwarding-rules.create) Could not fetch resource: The resource 'projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME' was not found הודעת השגיאה הזו יכולה להופיע כששומרים כתובת IP פנימית סטטית לנקודת הקצה של Private Service Connect. מוודאים שרשת המשנה שצוינה קיימת בפרויקט שצוין ב-URI. אם רוצים ליצור נקודת קצה בפרויקט שירות אבל להשתמש ברשת משנה מ-VPC משותף, צריך לציין את רשת המשנה לפי ה-URI שלה ולהשתמש במזהה הפרויקט של הפרויקט המארח ב-URI. מידע נוסף זמין במאמר יצירת נקודת הקצה באופן ידני.
ERROR: (gcloud.compute.forwarding-rules.create) Could not fetch resource: - The resource 'projects/PROJECT_ID/global/networks/NETWORK_NAME' was not found הודעת השגיאה הזו יכולה להופיע כשיוצרים נקודת קצה (endpoint) של Private Service Connect באופן ידני. חשוב לוודא שהרשת שצוינה קיימת בפרויקט שצוין ב-URI. אם רוצים ליצור נקודת קצה בפרויקט שירות אבל להשתמש ברשת VPC משותפת, צריך לציין את הרשת לפי ה-URI שלה ולהשתמש במזהה הפרויקט של הפרויקט המארח ב-URI. מידע נוסף זמין במאמר יצירת נקודת הקצה באופן ידני.
Invalid consumer network status for PSC auto connection.

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

  • ‫CONNECTION_POLICY_MISSING: אין מדיניות תואמת לחיבור לשירות ברשת הצרכן. כללי מדיניות של חיבורי שירות מוגדרים לפי רשת ולפי אזור. כדי להגדיר מחדש את הרשת, קראו את המאמר עדכון מדיניות החיבור לשירות.
  • ‫CONSUMER_INSTANCE_PROJECT_NOT_ALLOWLISTED: יש מדיניות תואמת לחיבור לשירות, אבל השדה Service instance scope במדיניות לא מוגדר לאפשר חיבור למכונה הזו של Cloud SQL. מעדכנים את המדיניות כדי להגדיר את הערך של השדה Service instance scope ‏(--producer-instance-location) עם הפרויקט, התיקייה או הארגון שבהם נמצא המכונה של Cloud SQL. כדי להגדיר מחדש את מדיניות החיבור לשירות, קראו את המאמר עדכון מדיניות החיבור לשירות.
  • ‫POLICY_LIMIT_REACHED: מדיניות החיבור לשירות הגיעה למגבלת נקודות הקצה שלה. כדי לפתור את הבעיה, צריך להגדיל את מגבלת נקודות הקצה על ידי עדכון המדיניות של חיבורי השירות.
No permission to create a service connection policy.

אין לכם את ההרשאות הנדרשות כדי ליצור מדיניות חיבור לשירות. כדי ליצור מדיניות חיבור לשירות, צריך את התפקיד Compute Network Admin IAM. למידע נוסף, קראו את המאמר תפקידים והרשאות.

אי אפשר לקבל חיבורים מממשק Private Service Connect כשמשתמשים בקישוריות יוצאת של Private Service Connect.

אם הרשת החיצונית לא יכולה לקבל חיבורים מהממשק של Private Service Connect, יכול להיות שכללי המדיניות של החיבורים במחבר הרשת לא מוגדרים נכון.

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

כדי לאמת את החיבורים שאושרו במחבר הרשת, משתמשים בפקודה הבאה:

    gcloud compute network-attachments describe default
    --region=REGION_ID
    

אם הממשק של Private Service Connect לא נמצא ברשימת הממשקים שאושרו, מעדכנים את מחבר הרשת. מידע נוסף זמין במאמר ניהול של חיבורי רשת.

רפליקציה

שגיאה פתרון בעיות
הרפליקה לקריאה בלבד לא התחילה לשכפל בזמן היצירה. סביר להניח שיש שגיאה ספציפית יותר בקובצי היומן. בודקים את היומנים ב-Cloud Logging כדי למצוא את השגיאה בפועל.
אי אפשר ליצור עותק לקריאה בלבד – שגיאת invalidFlagValue. אחד מהדגלים בבקשה לא תקין. זה יכול להיות דגל שציינתם במפורש או דגל שהוגדר לערך ברירת מחדל.

קודם כל, בודקים שהערך של הדגל max_connections גדול מהערך בשרת הראשי או שווה לו.

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

לא ניתן ליצור עותק לקריאה בלבד – שגיאה לא ידועה. סביר להניח שיש שגיאה ספציפית יותר בקובצי היומן. בודקים את היומנים ב-Cloud Logging כדי למצוא את השגיאה בפועל.

אם השגיאה היא set Service Networking service account as servicenetworking.serviceAgent role on consumer project, אפשר ליצור ידנית את חשבון השירות הנדרש לפי ההוראות במאמר יצירה והקצאה של תפקידים לסוכני שירות.

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

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

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

עורכים את המכונה כדי להפעיל את automatic storage increase.

השהיית השכפול גבוהה באופן עקבי. עומס הכתיבה גבוה מדי והרפליקה לא יכולה לטפל בו. השהיית שכפול מתרחשת כשה-SQL thread ברפליקה לא מצליח לעמוד בקצב של ה-IO thread. סוגים מסוימים של שאילתות או עומסי עבודה יכולים לגרום לעיכוב זמני או קבוע בשכפול של סכימה מסוימת. חלק מהסיבות הנפוצות לעיכוב ברפליקציה:
  • שאילתות איטיות ברפליקה. צריך למצוא ולתקן אותן.
  • שאילתות כמו DELETE ... WHERE field < 50000000 גורמות לעיכוב ברפליקציה עם רפליקציה מבוססת-שורות, כי מספר עצום של עדכונים נערמים ברפליקה.

פתרונות אפשריים:

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

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