錯(cuò)誤案例:在Microsoft Virtual PC 2007和一臺(tái)筆記本電腦上安裝MSDN訂閱下載的SQL Server 2005企業(yè)版時(shí)出現(xiàn)問(wèn)題。安裝環(huán)境為windows Server 2003 企業(yè)版 + sp1,另外一個(gè)系統(tǒng)是帶sp2的,安裝用戶使用超級(jí)管理員(Administrator)。在安裝“Integration Services”步驟時(shí)出現(xiàn)安裝錯(cuò)誤,提示“錯(cuò)誤: -2146233087”。
錯(cuò)誤記錄如下:
標(biāo)題: Microsoft SQL Server 2005 安裝程序
------------------------------
無(wú)法在 COM+ 目錄中安裝和配置程序集 C:\Program Files\Microsoft SQL Server\90\DTS\Tasks\Microsoft.SqlServer.MSMQTask.dll。錯(cuò)誤: -2146233087
錯(cuò)誤消息: Unknown error 0x80131501
錯(cuò)誤說(shuō)明: 要執(zhí)行此任務(wù),您必須具有管理憑據(jù)。請(qǐng)與您的系統(tǒng)管理員聯(lián)系以獲得幫助。
有關(guān)幫助信息,請(qǐng)單擊:
go.microsoft.com/fwlink?LinkID=20476&ProdName=Microsoft
+SQL+Server&ProdVer=9.00.1399.06&EvtSrc=setup.rll&EvtID=
29549&EvtType=sqlca%5csqlassembly.cpp%40Do_sqlAssemblyReg
Svcs%40Do_sqlAssemblyRegSvcs%40x80131501
通過(guò)幫助信息的超鏈接頁(yè)面,提示“需要為MS DTC服務(wù)配置 Network Service帳戶運(yùn)行”,不過(guò)筆者的MS DTC本來(lái)就是在Network Service帳戶下運(yùn)行。
通過(guò)百度和Google搜索了一下,有不少朋友碰到類似錯(cuò)誤消息,不過(guò)沒(méi)有得到好的解決方式,只好自己尋找線索進(jìn)行嘗試??梢钥隙ǖ氖菃?wèn)題應(yīng)該出現(xiàn)在訪問(wèn)權(quán)限,而這方面常見(jiàn)的問(wèn)題一般都是對(duì)文件系統(tǒng)目錄和系統(tǒng)注冊(cè)表的訪問(wèn)。在微軟的客戶幫助和支持網(wǎng)站搜索SQL Server的相關(guān)安裝信息。有一篇文章提到設(shè)置“C:\WINDOWS\Registration”的權(quán)限,確認(rèn)該目錄以及目錄下的clb和crmlog文件有完全的讀寫(xiě)權(quán)限,再次安裝SQL Server 2005在“Integration Services”步驟還是提示失敗。在安裝過(guò)程中選擇服務(wù)帳戶時(shí)使用內(nèi)置系統(tǒng)帳戶或使用域用戶帳戶都一樣。
看來(lái)問(wèn)題沒(méi)有這么簡(jiǎn)單,筆者在另外一個(gè)系統(tǒng)中安裝時(shí)啟用RegMon進(jìn)行注冊(cè)表操作監(jiān)視,過(guò)濾后只監(jiān)視“msiexec.exe:484”進(jìn)程,在報(bào)以上面提到的錯(cuò)誤后保存監(jiān)視日志到文件。
通過(guò)監(jiān)控日志查看失敗的情況。由于沒(méi)有仔細(xì)查找,在后來(lái)通過(guò)微軟SQL Server組的技術(shù)支持工程師才想到問(wèn)題早應(yīng)該解決。以下是我事后再次查看RegMon Trace發(fā)現(xiàn)的問(wèn)題故障點(diǎn),通過(guò)下面的日志看出使用本機(jī)Administrator訪問(wèn)注冊(cè)表.HKCR\Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.DataFileMessage項(xiàng)時(shí)被拒絕。
11305 32.35072327 msiexec.exe:484 OpenKey HKCR\Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.DataFileMessage ACCESS DENIED NBCN-ZZ\Administrator
11306 32.36096954 msiexec.exe:484 QueryKey HKCU\Software\Classes SUCCESS Name: \REGISTRY\USER\S-1-5-21-730333180-4162487032-3015738926-500_CLASSES
11307 32.36102295 msiexec.exe:484 OpenKey HKCU\Software\Classes\Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.DataFileMessage NOT FOUND
11308 32.36108017 msiexec.exe:484 OpenKey HKCR SUCCESS
11309 32.36190796 msiexec.exe:484 CreateKey HKCR\Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.DataFileMessage ACCESS DENIED NBCN-ZZ\Administrator
11310 32.36222076 msiexec.exe:484 CreateKey HKCR\Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.DataFileMessage ACCESS DENIED NBCN-ZZ\Administrator
由于粗心結(jié)果又多做了很多工作,查看系統(tǒng)的“組件服務(wù)”配置是否有問(wèn)題,但是沒(méi)有發(fā)現(xiàn)什么異常。
在再次出現(xiàn)安裝問(wèn)題后,這次就直接點(diǎn)擊“忽略”按鈕繼續(xù)安裝SQLServer的其他部分,安裝結(jié)束后,提示安裝成功完成。
運(yùn)行“dcomcnfg”,打開(kāi)系統(tǒng)組件服務(wù)。展開(kāi)控制臺(tái)根目錄->組件服務(wù)->計(jì)算機(jī)->我的電腦->COM+應(yīng)用程序節(jié)點(diǎn),沒(méi)有發(fā)現(xiàn)Microsoft.SqlServer.MSMQTask節(jié)點(diǎn),可見(jiàn)該COM+應(yīng)用程序沒(méi)有安裝上。
再次運(yùn)行SQL Server 2005安裝程序進(jìn)行添加刪除安裝,提示安裝成功,在“組件服務(wù)”中看到“Microsoft.SqlServer.MSMQTask”??磥?lái)問(wèn)題解決了,但是那時(shí)還不知道問(wèn)題出在哪里。卸載SQL Server 2005,發(fā)現(xiàn)“Microsoft.SqlServer.MSMQTask”并沒(méi)有卸載,測(cè)試只安裝SQL Server 2005的Integration Services服務(wù)。結(jié)果安裝失敗,選擇“中止”取消安裝,再次確認(rèn)存在“Microsoft.SqlServer.MSMQTask”服務(wù)。
接下去筆者把安裝過(guò)程中出現(xiàn)的錯(cuò)誤發(fā)送給微軟,請(qǐng)SQL Server 組的技術(shù)支持工程師幫助解決。在工程師查找問(wèn)題過(guò)程中,雖然許多檢查點(diǎn)我都做過(guò),不過(guò)他查找分析解決問(wèn)題的思路清晰,以下我列了大概幾個(gè)步驟。
更多信息請(qǐng)查看IT技術(shù)專欄