מאת: עידית איזק היא מהנדסת תמיכה בכירה במחלקת הפרימייר במיקרוסופט ישראל .
בתור מהנדסת תמיכה במייקרוסופט יצא לי להיתקל בלא מעט בעיות עם התקנה של Service Pack או cumulative update שנכשלת ( בכל הגירסאות של SQL )
בחלק מהמקרים הבעייה קשורה לקבצים שנמחקו מתיקיית Windows Installer (ממוקמת ב C:\windows\installer )
ההודעות שגיאה שתראו בDetails log יכולות להיות שונות: ( תלוי גם בגירסת ה SQL ) :
- Package does not exist in the Installer cache
- Unable to install Windows Installer MSI file
- SQL Server Setup has encountered the following error: The patch file cannot be opened. The file is: c:\WINNT\Installer\1cf506f.msp. Error code 0x84B20001.
- The cached MSI file 'C:\Windows\Installer\<file_encoded_name>.msi' is missing.
במאמר הבא תולו למצוא פירוט של כל הודעות השגיאה:
http://support.microsoft.com/kb/969052/en-us
קצת רקע:
כל התקנה ( של כל מוצר כולל SQL ) שמשתמשת בWindows installer ( כולל עידכון של Service pack , Cumulative update ) שומרת גירסה של קבצי הMSI בתיקיית Windows \installer .
כל עידכון עתידי של המוצר Service pack) , Cumulative update) מתבסס על המידע של הקבצים בתיקייה זו. בלי המידע הזה העידכון ייכשל.
רצוי לציין שהקבצים הם ייחודיים לכל התקנה ולכל מחשב. זאת אומרת שלא ניתן להעתיק אותם ממחשב אחר.
אז כלל ראשון וחשוב ! אין למחוק קבצים מתיקיית Windows Installer – C:\windows\Installer
במקרה שבכל זאת נמחקו קבצים מתקייה זו בשרת ה SQL ייתכן ותצטרכו להתקין את השרת מחדש כולל מערכת ההפעלה והתקנת SQL אבל ישנה אפשרות שתוכלו לצאת מיזה בשלום.
אז במידה וההתקנה נכשלה , נלך לתיקיית Setup Bootstrap לקובץ SUMMARY שנוצר במהלך ההתקנה ונסתכל מהי השגיאה שאנו מקבלים .
ברוב המקרים קובץ ה Summary לא ייתן לנו מספיק פרטים ונצטרך לפתוח גם את קובץ ה Detail המתאים ( בקובץ ה summary תהייה לנו הפנייה לקובץ ה detail הרלוונטי)
במידה ויש שגיאה על קובץ אחד או מספר קבצים בודדים , נוכל לבצע את התיקון בצורה ידנית .
בשביל לעשות זאת אנחנו צריכים שלושה פרטים:
- PatchName לדוגמא Hotfix 1702 for SQL Server 2008 R2 64 bit )KB981355)
- Original MSP file that is used by the Patch2 לדוגמא sql_engine_core_inst.msp
- Cached MSP file לדוגמא c:\Windows\Installer\1fdb1aec.msp
בד"כ את שלושת הפרטים האלו נקבל מההודעת שגיאה או מהקובץ summary או Detail
דוגמא להודעת שגיאה בניסיון התקנת SQL 2008 R2 SP3 :
The cached patch file "c:\Windows\Installer\57457649.msp" is missing. The original file for this cached file is "sql_engine_core_shared.msp", which can be installed from "Service Pack 3 for SQL Server 2008 R2 (KB2979597) (64-bit)", version 10.53.6000.34.
אז יש לנו כאן את כל הפרטים שאנחנו צריכים:
PatchName ->> Service Pack 3 for SQL Server 2008
Original MSP file that is used by the Patch ->> sql_engine_core_shared.msp
3. Cached MSP file ->> c:\Windows\Installer\57457649.msp
מה שנותר לנו לעשות כרגע זה ( בהתבסס על הדוגמא הזו )
- להוריד את Service Pack 3 for SQL Server 2008 ( חשוב שיהיה מתאים לפלטפורמת השרת 32 או 64 ביט )
- לעשות extract ל Package
- לחפש שם את קובץ ה MSP. בדוגמא שלנו Service Pack 3 for SQL Server 2008
- להעתיק את הקובץ לתיקיית ה : windows installer %windir%\installer\
- לשנות את שם הקובץ ל cached MSP file . בדוגמא שלנו ל 57457649.msp
- לבצע שוב את ההתקנה.
יכול להיות שבמהלך ההתקנה תקבלו שגיאות על קבצים נוספים שחסרים ברכיבים אחרים.
במידה והקובץ החסר הוא MSI ולא MSP , הקובץ המקורי צריך להילקח מהמדייה המקורית שבה בוצעה ההתקנה ולא מקבצי ההתקנה של ה SP שאותם התבקשתם להוריד בסעיף 1.
מיקום המדייה המקורי יהיה מצויין בהודעת השגיאה .
במידה ויש יותר קבצים נוכל להשתמש בסקריפט FindSQLInstalls.vbs script
פרטים נוספים בKB הבא: http://support.microsoft.com/kb/969052/en-us
כלי למציאת קבצים חסרים מתיקיית ה windows Installer : http://support.microsoft.com/kb/2667628
בהצלחה !