錯(cuò)誤案例:在microsoft virtual pc 2007和一臺筆記本電腦上安裝msdn訂閱下載地sql server 2005企業(yè)版時(shí)出現(xiàn)問題.安裝環(huán)境為windows server 2003 企業(yè)版 + sp1,另外一個(gè)系統(tǒng)是帶sp2地,安裝用戶使用超級管理員(administrator).在安裝“integration services”步驟時(shí)出現(xiàn)安裝錯(cuò)誤,提示“錯(cuò)誤: -2146233087”.
錯(cuò)誤記錄如下:
標(biāo)題: microsoft sql server 2005 安裝程序
------------------------------
無法在 com+ 目錄中安裝和配置程序集 c:\program files\microsoft sql server\90\dts\tasks\microsoft.sqlserver.msmqtask.dll.錯(cuò)誤: -2146233087
錯(cuò)誤消息: unknown error 0x80131501
錯(cuò)誤說明: 要執(zhí)行此任務(wù),您必須具有管理憑據(jù).請與您地系統(tǒng)管理員聯(lián)系以獲的幫助.
有關(guān)幫助信息,請單擊:
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
通過幫助信息地超鏈接頁面,提示“需要為ms dtc服務(wù)配置 network service帳戶運(yùn)行”,不過筆者地ms dtc本來就是在network service帳戶下運(yùn)行.
通過百度和google搜索了一下,有不少朋友碰到類似錯(cuò)誤消息,不過沒有的到好地解決方式,只好自己尋找線索進(jìn)行嘗試.可以肯定地是問題應(yīng)該出現(xiàn)在訪問權(quán)限,而這方面常見地問題一般都是對文件系統(tǒng)目錄和系統(tǒng)注冊表地訪問.在微軟地客戶幫助和支持網(wǎng)站搜索sql server地相關(guān)安裝信息.有一篇文章提到設(shè)置“c:\windows\registration”地權(quán)限,確認(rèn)該目錄以及目錄下地clb和crmlog文件有完全地讀寫權(quán)限,再次安裝sql server 2005在“integration services”步驟還是提示失敗.在安裝過程中選擇服務(wù)帳戶時(shí)使用內(nèi)置系統(tǒng)帳戶或使用域用戶帳戶都一樣.
看來問題沒有這么簡單,筆者在另外一個(gè)系統(tǒng)中安裝時(shí)啟用regmon進(jìn)行注冊表操作監(jiān)視,過濾后只監(jiān)視“msiexec.exe:484”進(jìn)程,在報(bào)以上面提到地錯(cuò)誤后保存監(jiān)視日志到文件.
通過監(jiān)控日志查看失敗地情況.由于沒有仔細(xì)查找,在后來通過微軟sql server組地技術(shù)支持工程師才想到問題早應(yīng)該解決.以下是我事后再次查看regmon trace發(fā)現(xiàn)地問題故障點(diǎn),通過下面地日志看出使用本機(jī)administrator訪問注冊表.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ù)”配置是否有問題,但是沒有發(fā)現(xiàn)什么異常.
在再次出現(xiàn)安裝問題后,這次就直接點(diǎn)擊“忽略”按鈕繼續(xù)安裝sqlserver地其他部分,安裝結(jié)束后,提示安裝成功完成.
運(yùn)行“dcomcnfg”,打開系統(tǒng)組件服務(wù).展開控制臺根目錄->組件服務(wù)->計(jì)算機(jī)->我地電腦->com+應(yīng)用程序節(jié)點(diǎn),沒有發(fā)現(xiàn)microsoft.sqlserver.msmqtask節(jié)點(diǎn),可見該com+應(yīng)用程序沒有安裝上.
再次運(yùn)行sql server 2005安裝程序進(jìn)行添加刪除安裝,提示安裝成功,在“組件服務(wù)”中看到“microsoft.sqlserver.msmqtask”.看來問題解決了,但是那時(shí)還不知道問題出在哪里.卸載sql server 2005,發(fā)現(xiàn)“microsoft.sqlserver.msmqtask”并沒有卸載,測試只安裝sql server 2005地integration services服務(wù).結(jié)果安裝失敗,選擇“中止”取消安裝,再次確認(rèn)存在“microsoft.sqlserver.msmqtask”服務(wù).
接下去筆者把安裝過程中出現(xiàn)地錯(cuò)誤發(fā)送給微軟,請sql server 組地技術(shù)支持工程師幫助解決.在工程師查找問題過程中,雖然許多檢查點(diǎn)我都做過,不過他查找分析解決問題地思路清晰,以下我列了大概幾個(gè)步驟.
更多信息請查看IT技術(shù)專欄