某企業(yè)正常使用的一套C/S模式進(jìn)銷存系統(tǒng),新增加的一臺(tái)客戶機(jī)在連接數(shù)據(jù)庫(kù)服務(wù)器(安裝SQL Server 2000)時(shí)出現(xiàn)故障提示—“[DBNETLIB][ConnectionOpen(connect()).]SQL Server 不存在或拒絕訪問(wèn)”,系統(tǒng)無(wú)法登錄,其它的客戶機(jī)工作正常。
2 解決過(guò)程及思路
對(duì)于這種故障提示,一般資料上對(duì)此故障介紹的解決辦法是檢查客戶機(jī)上防火墻和1433端口的設(shè)置。出現(xiàn)故障的客戶機(jī)上安裝的是卡巴斯基6.0互聯(lián)網(wǎng)安全套裝,在卡巴斯基的“網(wǎng)絡(luò)設(shè)置”中添加1433端口后,出現(xiàn)的故障提示變?yōu)?#8220;一般性網(wǎng)絡(luò)錯(cuò)誤 (recv())”,造成后面這種故障提示信息的原因很多,不易確定。為此,比較正常工作的客戶機(jī)和出現(xiàn)故障的客戶機(jī)的SQL SERVER客戶端設(shè)置,發(fā)現(xiàn)工作正常的客戶機(jī)使用“Named pipes”為優(yōu)先使用的協(xié)議,使用服務(wù)器的名稱來(lái)連接數(shù)據(jù)庫(kù)服務(wù)器,出現(xiàn)故障的客戶機(jī)使用“tcp/ip”為優(yōu)先啟用的協(xié)議,使用服務(wù)器的IP地址來(lái)連接數(shù)據(jù)庫(kù)服務(wù)器,默認(rèn)端口為1433,在出現(xiàn)故障的客戶機(jī)上把 “Named pipes”設(shè)置為優(yōu)先啟用的協(xié)議,使用服務(wù)器的名稱來(lái)連接數(shù)據(jù)庫(kù)服務(wù)器則連接正常,可以正常運(yùn)行。由此確定故障與TCP/IP協(xié)議有關(guān),在服務(wù)器(Windows 2000 SERVER SP4+SQL Server 2000,IP地址為10.140.90.249)上運(yùn)行netstat –an命令,結(jié)果如下:
以下為引用的內(nèi)容: Active Connections Proto Local Address Foreign Address State …… TCP 10.140.90.249:80 10.140.90.52:2519 TIME_WAIT TCP 10.140.90.249:80 10.140.90.52:2523 TIME_WAIT TCP 10.140.90.249:80 10.140.90.52:2525 TIME_WAIT TCP 10.140.90.249:80 10.140.90.52:2527 TIME_WAIT TCP 10.140.90.249:80 10.140.90.52:2529 ESTABLISHED TCP 10.140.90.249:80 10.140.90.52:2531 ESTABLISHED TCP 10.140.90.249:139 0.0.0.0:0 LISTENING TCP 10.140.90.249:1051 10.140.90.249:2161 ESTABLISHED TCP 10.140.90.249:2161 10.140.90.249:1051 ESTABLISHED …… |
SELECT @@VERSION
返回值為“8.00.194 RTM”,該值為SQL Server 2000的原始版本,進(jìn)一步詢問(wèn)管理員,得知在安裝SP4時(shí)沒(méi)有停止服務(wù)器上的SQL Server服務(wù),而SQL Server 2000 SP4明確要求安裝時(shí)要停止服務(wù)器上的SQL Server服務(wù)和所有客戶端程序后才能安裝,由此判斷服務(wù)器上的SQL Server 2000 SP4沒(méi)有安裝成功。SQL Server 2000版本和版本號(hào)關(guān)系可以在網(wǎng)上查到。
重新在服務(wù)器上安裝SQL Server 2000 SP4,出現(xiàn)提示“以前進(jìn)行的程序安裝創(chuàng)建了掛起的文件操作。運(yùn)行程序之前,必須重新啟動(dòng)計(jì)算機(jī)。”表明以前的SP4沒(méi)有安裝成功,重新啟動(dòng)服務(wù)器,這個(gè)提示繼續(xù)出現(xiàn),啟動(dòng)注冊(cè)表編輯器,來(lái)到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager分支,刪除PendingFileRenameOperations項(xiàng)目,然后重新安裝SQL Server 2000 SP4成功。再在服務(wù)器上執(zhí)行netstat –an命令,1433端口赫然在列,處于“LISTENING”狀態(tài),把出現(xiàn)故障的客戶機(jī)設(shè)置為TCP/IP連接方式,啟動(dòng)程序,連接順利完成,錯(cuò)誤信息不再出現(xiàn)。
3 結(jié)束語(yǔ)
現(xiàn)在的軟件系統(tǒng)越來(lái)越復(fù)雜,牽扯的系統(tǒng)也越來(lái)越多,排除故障時(shí)不能被故障的表面現(xiàn)象所迷惑,要順藤摸瓜,逐步分析排除,到有關(guān)軟件系統(tǒng)的論壇和官方網(wǎng)站了解相關(guān)產(chǎn)品的信息,尤其是補(bǔ)丁信息,在排除故障時(shí)才能事半功倍,少走彎路。
這種故障在單機(jī)狀態(tài)時(shí)也會(huì)出現(xiàn),一般是SQL SERVER的客戶端TCP/IP設(shè)置為優(yōu)先啟用的協(xié)議,使用IP地址連接SQL SERVER,網(wǎng)線物理連接有問(wèn)題或者IP地址設(shè)置有問(wèn)題時(shí)。
聯(lián)系客服