вторник, 24 юни 2008 г.

Често срещани проблеми при инсталиране на MSSQL 2005

Microsoft SQL Server 2005 Express е доста костелив орех, ако се налага инсталация на множество машини. По мои наблюдения в около 20% от случаите инсталацията не завършва успешно, което си е жив проблем при mass deploy.
До сега съм срещал няколко възможни сценария, при които възниква проблем:

1. SQL Native Client: Странно защо, но този компонент е възможно да зависне в странна полуинсталирана фаза и да предотврати по-нататъшна инсталация на MSSQL 2005 Express. Най-често се получава, ако инсталацията на MSSQL 2005 е била прекъсната по средата (но трябва да е в точния момент - след началото на инсталацията и преди да е завършило доинсталирането на SQL Native Client).
Решение: Деинсталира се SQL Native Client и се повтаря инсталацията на MSSQL 2005 Express

2. MSXML 6.0 : Това е най-често срещания проблеми и за съжаление най-трудния за разрешаване. При неуспех на инсталация на MSXML 6.0 не се инсталира и MSSQL Database Engine => няма MSSQL 2005 Express :( Симптомите са червено хиксче пред MSXML 6.0 и Database Engine
Още по-неприятно е, че обикновено MSXML 6.0 не може да се намери в Add/Remove Programs. Допълнително усложнява и наличието на поне 4 различни версии на MSXML 6.0 (release, post release, SP1, post SP1 и т.н.)

Решение: Има няколко възможни пътя, по които може да се тръгне.
Първият (оптимистичен) е да се провери дали има MSXML 6.0 в Add/Remove Programs и да се деинсталира оттам (както и всички компоненти свързани с MSSQL 2005, ако такива има), след което да се повтори инсталацията.
Вторият (реалистичен): Инсталира се Windows Installer Clean Up Utility от следния адрес: http://support.microsoft.com/kb/290301
Малко объркващо пише Microsoft Office навсякъде, но това не трябва да ни плаши :) След инсталация и стартиране се появява спартанския интерфейс на програмата, който обаче е напълно достатъчен за целта.
Remove-ваме всичко, което има в името си MSXML 6.0 или празен низ ( и това може да се получи - информация по-долу).
Инсталацията на MSSQL 2005 вече (би трябвало) да работи успешно!

Малко допълнителна информация относно MSI Inventory database. Това не е базата данни на MSI, а на Windows Installer, където са описани всички инсталирани и не дотам инсталирани компоненти.
Удобен инструмент, който силно препоръчвам е msiinv.exe и е описан подробно на http://blogs.msdn.com/astebner/archive/2005/07/01/using-msiinv-to-gather-information-about-what-is-installed-on-a-computer.aspx
Накратко - дава информация относно всички инсталирани приложения на съответния компютър. Още по-приятно е, че информацията е доста подробна (включително от къде е инсталирано съответното приложение).
Част от тази информация вклюва entry-та като:
MSXML 6.0 Parser
Product code: {AEB9948B-4FF2-47C9-990E-47014492A0FE}
Product state: (5) Installed.
Package code: {A60D52F8-FAAB-4544-AF65-EAC1A22E5435}

Version: 6.00.3883.8

AssignmentType: 1

Publisher: Microsoft Corporation

Language: 1033

Installed from: D:\OTHER\IFX\Win32\

Package: D:\OTHER\IFX\Win32\

Product Icon: C:\WINDOWS\Installer\{AEB9948B-4FF2-47C9-990E-47014492A0FE}\ARPIco

Help link: http://go.microsoft.com/fwlink/?LinkId=52156

Local package:

Install date: 2008\03\13

0 patch packages.

Това общо взето е положителния вариант - за съжаление е възможно да се случи реда Product state: (5) Installed.
да бъде Product state: (1) Product was advertised but not installed
Което обикновено означава, че продуктът е зависнал в доста неприятно състояние и изхода е да се премахне чрез Windows Installer Clean Up.

Интересно е да се прочете статията и да се разбере повече за този инсттрумент. msiinv.exe заедно с Windows Installer CleanUp Utility могат да разрешат доста проблеми :)

Няма коментари: