天天看點

安裝SQL 2005群集的錯誤現象

前段時間做了個SQL2005群集,但是在部署過程中出現了非常怪異的現象,并且讓人是無法能夠了解,并且部署花了大量的時間,出現問題了找不到原因,隻能怪錯是自己的MSCS搭建的有問題,或者是SQL2005安裝程式出現問題。後來都将這些猜測排除在外。現在簡單的介紹下我的環境,兩個群集節點,上面分别運作了DC和DNS(在這裡強烈不建議将DC安裝在群集節點上,會現出一些權限方面的問題,因為客戶沒有額外的硬體隻能這麼做了。)在兩個節點上安裝了MSCS,并且來回切換都沒有問題,然後添加MSDTC資源,因為兩個節點是域控制器,是以MSDTC在兩節點之間無法切換,需要将DTCLog檔案的network service帳戶給予完全控制權限,在這裡聲明一下,如果DC是一台單獨立的角色,就不需要改這個權限,直接就可以切換了。一切都準備就緒,我們就開始部署SQL2005群集模式,我隻安裝了Database Service這個角色,其它都沒有安裝。OKAY,下面問題就來了,剛剛弄到準備安裝時,就報了一個錯誤。

安裝SQL 2005群集的過程中遇到以下錯誤:

錯誤 29503。SQL Server 服務無法啟動。有關詳細資訊,請參閱 SQL Server 聯機叢書中的主題“如何檢視 SQL Server 2005 安裝日志檔案”和“手動啟動 SQL Server”。

事件日志錯誤為:(1053) 服務沒有及時響應啟動或控制請求。

<Func Name='GetCAContext'>

<EndFunc Name='GetCAContext' Return='T' GetLastError='0'>

Doing Action: Do_sqlScript

PerfTime Start: Do_sqlScript : Mon Jun 29 11:06:43 2009

Service MSSQLSERVER with parameters '-m SqlSetup -Q -qChinese_PRC_CI_AS -T4022 -T3659 -T3610 -T4010' is being started at Mon Jun 29 11:06:43 2009

Unable to start service (1053)

        Error Code: 0x8007041d (1053)

Windows Error Text: 服務沒有及時響應啟動或控制請求。

  Source File Name: sqlsetuplib\service.cpp

Compiler Timestamp: Fri Sep 16 13:20:12 2005

Technorati 标簽: SQL

     Function Name: sqls::Service::Start

Source Line Number: 316

就這個錯誤讓我們花盡了心思,繞了很多的彎路啊。哈哈。後來,通過在微軟Support網站查找到了跟這個類似的錯誤,好像也是1053的錯誤。微軟的KB這是描述的,當SQL2005安裝在CPU不是2的幂次方的情況下,就會服務無法啟動。正好我們部署的HP伺服器是新款,CPU是6核的,總共4顆CPU,不是2的幂次方,是以果然會報這樣的錯誤,當時我也不太敢肯定,隻能先這麼認為。微軟的這篇KB給了解決方法是将CPU強制變為2的幂次方,隻需要在msconfig下面将Boot.ini參數設定一下就可以了。果然,通過上述的操作,重新開機兩台伺服器後,再進行安裝真的可以通過,但是,這是兩台伺服器就從24核變為了雙核,也許大家會問,難道我的伺服器就這麼白白的浪費掉了那麼的資源,其實,大家可以這麼做,安裝完成SQL群集後,并且打完SP補釘後,我們再将參數改回原來的狀态,然後重新開機伺服器就行了。微軟也沒有說SQL2005正常運作必須CPU是2的幂次方,隻是安裝是需要CPU為2的幂次方。唉,搞了兩天才把這個問題解決,其實也沒有什麼大的問題,隻是一個非常細微的地方進行設定下就好了,但是,我想這個問題我是一輩子也不會被發現的。也不跟大家多說了,希望大家在以後碰到這樣類似的問題時,前期準備要考慮的充分點,不要像我一樣,把時間花要無用的地方上。下面我就把微軟這篇KB告訴大家,大家上去看看知道了。

情況分析

========

由于在安裝SQL 2005之前,伺服器上的CPU個數一定要是2的幂次方。而由于您的伺服器現在的CPU個數是4*6=24個,不是2的幂次方,是以會遇到以上錯誤導緻安裝失敗。

解決方法