תופעות
שקול את התרחיש הבא:
-
יש לך מסד נתונים עם שני קבצי יומן רישום של טרנזקציות ב-Microsoft SQL Server 2012 או ב-Microsoft SQL Server 2014.
-
אתה מבצע גיבוי מלא במצב שחזור מלא.
-
הסרת אחד מקבצי יומן הטרנזאקציות ושינוי מצב השחזור למצב שחזור פשוט.
-
אתה מבצע גיבוי מלא וגיבוי דיפרנציאלי.
-
אתה משחזר את מסד הנתונים באמצעות קובץ הגיבוי המלא האחרון וקובץ הגיבוי הדיפרנציאלי.
בתרחיש זה, אתה מקבל את הודעת השגיאה הבאה:
Msg 3127, Level 16, מדינה 1, Line 3The file '% s ' של מסד הנתונים המשוחזר '% s ' משמאל במצב defunct מכיוון שמסד הנתונים משתמש במודל השחזור הפשוט והקובץ מסומן לקבלת גישה לקריאה-כתיבה. לכן, ניתן לשחזר רק קבצים לקריאה בלבד על-ידי שחזור טיפין טיפין. וקובץ יומן הרישום שנמחק מופיע שוב בsys.master_files עם המצב של DEFUNCT
בנוסף, כאשר אתה מנסה לגבות את מסד הנתונים, אתה מקבל את הודעת השגיאה הבאה:
Msg 3636, Level 16, State 2, Line 1An אירעה בעת עיבוד המטה-נתונים של BackupMetadata עבור מזהה מסד נתונים 16 מזהה קובץ 3. Msg 3046, Level 16, State 2, Line 1Inconsistent metadata התגלתה. פעולת הגיבוי האפשרית היחידה היא גיבוי של יומן הזנב באמצעות האפשרות עם CONTINUE_AFTER_ERROR או NO_TRUNCATE. Msg 3013, רמה 16, מדינה 1, Line 1BACKUP מסתיימת בצורה חריגה.
פתרון
הבעיה נפתרה לראשונה בעדכון המצטבר הבא של SQL Server.
עדכון מצטבר 5 עבור SQL Server 2014 /en-us/help/3011055
עדכון מצטבר 3 עבור SQL Server 2012 SP2 /en-us/help/3002049
כל עדכון מצטבר חדש עבור SQL Server מכיל את כל התיקונים החמים ואת כל תיקוני האבטחה שנכללו בעדכון המצטבר הקודם. עיין בעדכונים המצטברים האחרונים עבור SQL Server:
מצב
Microsoft אישרה שזוהי בעיה במוצרי Microsoft המופיעים בסעיף "חל על".