經(jīng)驗(yàn):解決DB2中出現(xiàn)的SQL1032N錯(cuò)誤現(xiàn)象
在使用DB2以來(lái),碰到了幾次出現(xiàn)提示SQL1032N錯(cuò)誤,每次出錯(cuò)時(shí)出錯(cuò)信息大概如下:
11/21/2004 22:15:33 0 0 SQL1042C 發(fā)生意外的系統(tǒng)錯(cuò)誤。 SQL1032N 未發(fā)出啟動(dòng)數(shù)據(jù)庫(kù)管理器的命令。 SQLSTATE=57019。
每次出現(xiàn)問(wèn)題后,都到網(wǎng)上找了很多資料,也問(wèn)了許多人,費(fèi)了些力才搞定的。幾次出錯(cuò)的原因和解決方法都不盡相同,解決后我也只做了個(gè)簡(jiǎn)單的記錄。一直想把它們寫下來(lái),方便方便后來(lái)也遇到同樣問(wèn)題,跟我一樣到處查找的人,中間也寫了一些廢話,比如我如何查找錯(cuò)誤,甚至于作了哪些無(wú)用功。第一種SQL1032N出錯(cuò),某天DB2的實(shí)例突然無(wú)法啟動(dòng)了,用db2start就提示大概如下的出錯(cuò)信息:
12/30/2004 11:28:39 0 0 SQL1042C 發(fā)生意外的系統(tǒng)錯(cuò)誤。 SQL1032N 未發(fā)出啟動(dòng)數(shù)據(jù)庫(kù)管理器的命令。 SQLSTATE=57019。
初次遇到這種問(wèn)題,還以為會(huì)不會(huì)是數(shù)據(jù)庫(kù)沒(méi)起來(lái),情急之下什么命令比如激活數(shù)據(jù)庫(kù)只類的,都拿來(lái)試了試,實(shí)例都起不來(lái),當(dāng)時(shí)運(yùn)行這些命令,肯定都是不行的了。
后來(lái)突然發(fā)現(xiàn),在開(kāi)啟機(jī)器的時(shí)候,提示有個(gè)服務(wù)出錯(cuò)了沒(méi)啟動(dòng),由此推想應(yīng)該就是在Window服務(wù)里設(shè)置為自動(dòng)啟動(dòng)的DB2實(shí)例服務(wù)沒(méi)有正常啟動(dòng),我在服務(wù)里面手動(dòng)啟動(dòng)它,提示這樣的錯(cuò)誤:
Windows不能在本地計(jì)算機(jī)啟動(dòng)DB2-DB2-0.有關(guān)更多信息,查閱系統(tǒng)事件日志.并參考特定服務(wù)代碼-8000.查看事件管理器,有這樣的記錄:
DB2-DB2-0服務(wù)因4294959296服務(wù)性錯(cuò)誤而停止.來(lái)源SERVICE CONTROL 事件ID:7024
做了這么多,全都是無(wú)用功,只限于知道了服務(wù)沒(méi)起來(lái),等于沒(méi)找。
之后通過(guò)各方詢問(wèn),終于找到了原因:License到期了。
在db2cmd界面下運(yùn)行db2licm -l,可以很明顯的看到許可證已經(jīng)過(guò)期了。
知道原因所在了,剩下的,就是自己想辦法去解決這個(gè)問(wèn)題了。
小結(jié):直到現(xiàn)在,在有些論壇中,還很經(jīng)??吹接腥税l(fā)這種帖子來(lái)問(wèn),至少我在兩個(gè)月內(nèi)就碰到了三次這種帖子。所以,如果不是可以確定已經(jīng)有永久授權(quán)的情況下,發(fā)生這種情況,用db2licm -l查一下,也不算壞事。還有一種情況,跟前面的差不多,是在啟動(dòng)實(shí)例的時(shí)候出現(xiàn)如上的SQL1032N錯(cuò)誤。在Windows NT服務(wù)中無(wú)法啟動(dòng)DB2-DB0服務(wù),同時(shí)提示:
出錯(cuò)1069,登陸失敗錯(cuò)誤。
這個(gè)錯(cuò)誤比較簡(jiǎn)單,是用來(lái)啟動(dòng)服務(wù)的用戶名或密碼錯(cuò)誤。只需要在服務(wù)的屬性中,選擇登陸選項(xiàng)卡,選擇用戶,并填好密碼,重新啟動(dòng)服務(wù)就可以了。
小結(jié):這種情況,一般發(fā)生在切換用戶登陸NT系統(tǒng)或者更改了DB2用戶的密碼的情況下。
