Pozor na tři jádra
Před dvěma týdny si kolega instaloval novou vývojářskou mašinu, obvyklých pár hodin mariáše s DVD. Vše postupovalo dobře kupředu, na Visty jsme aplikovali už tehdy zveřejněný SP2, antivir, firewall, Office, vpnky, VS + SQL obojí 2005. Na všechno aplikován poslední Windows Update. Problém ale nastal při poslední fázi SQL instalace, ve chvíli, kdy instalátor spouští službu a chce aplikovat skripty. Instalace skončila na obecné hlášce o neběžící službě a jediná možnost byla instalaci odrolovat. V instalačním logu se také nebylo čeho chytit. Zkusili jsme proces několikrát opakovat, dotáhnout updaty, nastupovat/vystupovat, ale nic nepomáhalo. Nepříjemná situace - operace, kterou jsem dělal několikrát, standardní prostředí, standardní instalace, nový počítač a SQL prostě nejde naistalovat. Pomalu jsme začali přemýšlet o reinstalaci systému, ale pak jsme našli záchranu:
http://blogs.msdn.com/psssql/archive/2008/07/23/sql-server-2005-encounters-exception-during-install-when-system-has-odd-number-of-processors-or-logical-processors-per-core.aspx
http://support.microsoft.com/kb/954835/en-us
http://support.microsoft.com/kb/931666/en-us
Ve zkratce - "On a computer that has a multicore processor, if the ratio of logical processors to physical sockets is not a power of 2, you cannot install SQL Server 2005."
Procesory s lichým počtem jader(existuje snad pouze AMD Phenom se třemi), to pro mě byla absolutní novinka. A že na něj nejde instalovat SQL Server 2005 RTM rovněž. Naštěstí ony články nabízí několik řešení:
- Slipstream SP2 nebo SP3 do RTM instalce. Stačí stáhnout service pack, rozbalit ho (sp2.exe /x) a spustit instalátor s odkazem na rozbanené soubory (...Servers\setup.exe HOTFIXPATCH="...SP2\hotfixsql\files\sqlrun_sql.msp"). Nebylo vyzkoušeno.
- Omezení počtu procesorů v boot.ini. Spustit msconfig, v boot.ini/advanced změnit počet procesorů na 1, restart. Vyzkoušeli jsme, instalace trvala několikrát déle (daleko více než 3x) a instalace skončila stejnou chybou.
- Překopírování souborů sqlserver.exe a sqlos.dll. Tyto soubory se vezmou z funkční SP2/SP3 instalace a po prvním neúspěšném startu služby se soubory nahradí. Nakonec se aplikuje SP3. Tato metoda nám fungovala.
Chyba z instalačního logu:
Doing Action: Do_sqlScript
PerfTime Start: Do_sqlScript :
Service MSSQLSERVER with parameters '-m SqlSetup -Q -qSQL_Latin1_General_CP1_CI_AS -T4022 -T3659 -T3610 -T4010' is being started at
Unable to start service (1053)
Error Code: 0x8007041d (1053)
Windows Error Text: The service did not respond to the start or control request in a timely fashion.
Source File Name: sqlsetuplib\service.cpp