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

תופעות

שקול את התרחיש הבא:

  • יש לך שתי טבלאות מחולקות למחיצות ב-Microsoft SQL Server 2014, והמחיצות של הטבלה הראשונה ממופות לקבצים ולfilegroups שונים באמצעות אותה ערכת מחיצות ואותה פונקציה.

  • באפשרותך להחליף אחת ממחיצות אלה בטבלה השניה ולאחר מכן לחתוך את הטבלה השניה.

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

  • אתה מפעיל משפט SELECT בטבלה השניה.

בתרחיש זה, אתה מקבל את הודעת השגיאה הבאה:

Msg 606, Level 21, State 1Metadata-חוסר עקביות. Filegroup id<Filegroup id> שצוין עבור הטבלה <table name> אינו קיים. הרצת DBCC CHECKDB או CHECKCATALOG.

בעת הפעלת DBCC CHECKDB/CHECKTABLE, אתה מקבל את הודעת השגיאה הבאה:

אין אפשרות לעבד אינדקס <IndexName> של טבלה <TableName> מכיוון Filegroup (filegroup ID <FileGroupNumber>) אינו חוקי.

פתרון

הבעיה נפתרה לראשונה בעדכונים המצטברים הבאים של SQL Server:

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

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

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

    SELECT * FROM sys.allocation_units AS au WHERE au.data_space_id NOT IN (SELECT data_space_id FROM sys.filegroups)
  2. הפוך את הטבלה כאשר הפגם במטה-נתונים ניתן להצגה שוב. אם השאילתה משלב 1 מחזירה תוצאה, המחיצה עם מטה-נתונים פגומים מונעת ממך להציג (בחר * מ) שורות בטבלה. כדי לעקוף בעיה זו, הסר מחיצה גרועה זו.הערה המחיצה הרעה צריכה להיות ריקה. אחרת, לא היתה אפשרות להשמיט או למחוק את הקבצים והfilegroup שהיו בתוכו. לשם כך, העבר מחיצה זו לטבלה אחרת המשתמשת באותה ערכת מחיצות. טבלה זו יכולה להיות רק טבלת דמה. השתמש בcontainer_id מהשאילתה בשלב 1 ולאחר מכן התאם אותה באמצעות הpartition_id ממחיצות sys. (הקפד לרשום את הpartition_number.) השתמש בpartition_number כדי לבצע החלפת מחיצה של שינוי טבלה מהטבלה שלא היתה אפשרות להציג לטבלת הדמה. לטבלת הדמה צריכה להיות אותה קבוצת עמודות ולהשתמש באותה ערכת מחיצות. השאילתה שלך לאיתור המחיצה שאינה עקבית עשויה להידמות לפעולות הבאות:

    SELECT au.container_id, au.data_space_id, p.partition_number FROM sys.partitions AS p JOIN sys.allocation_units AS au ON p.partition_id = au.container_id LEFT JOIN sys.filegroups AS fgs ON fgs.data_space_id = au.data_space_id WHERE object_id = OBJECT_ID('MyTableName') AND fgs.data_space_id IS NULL;
  3. העתק את הנתונים מהטבלה שאינה נדונה בעבר למסד הנתונים החדש.

מצב

Microsoft אישרה שזוהי בעיה במוצרי Microsoft המופיעים בסעיף "חל על".

זקוק לעזרה נוספת?

מעוניין באפשרויות נוספות?

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

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

האם מידע זה היה שימושי?

עד כמה אתם מרוצים מאיכות השפה?
מה השפיע על החוויה שלך?
בלחיצה על 'שלח', אתה מאפשר למשוב שלך לשפר מוצרים ושירותים של Microsoft. מנהל ה-IT שלך יוכל לאסוף נתונים אלה. הצהרת הפרטיות.

תודה על המשוב!

×