今天啟動DB2,無論如何都啟動不了,報一個錯誤:“Windows 不能在 本地計算機 啟動 DB2 - DB2COPY - DB2-0。有關更多信息,查閱系統事件日志。如果這是非 Microsoft 服務,請與服務廠商聯系,並參考特定服務錯誤代碼 -8000”
11/21/2004 22:15:33 0 0 SQL1042C 發生意外的系統錯誤。 SQL1032N 未發出啟動數據庫管理器的命令。 SQLSTATE=57019。
每次出現問題后,都到網上找了很多資料,也問了許多人,費了些力才搞定的。幾次出錯的原因和解決方法都不盡相同,解決后我也只做了個簡單的記錄。一直想把它們寫下來,方便方便后來也遇到同樣問題,跟我一樣到處查找的人,中間也寫了一些廢話,比如我如何查找錯誤,甚至於作了哪些無用功。第一種SQL1032N出錯,某天DB2的實例突然無法啟動了,用db2start就提示大概如下的出錯信息:
12/30/2004 11:28:39 0 0 SQL1042C 發生意外的系統錯誤。 SQL1032N 未發出啟動數據庫管理器的命令。 SQLSTATE=57019。
初次遇到這種問題,還以為會不會是數據庫沒起來,情急之下什么命令比如激活數據庫只類的,都拿來試了試,實例都起不來,當時運行這些命令,肯定都是不行的了。
后來突然發現,在開啟機器的時候,提示有個服務出錯了沒啟動,由此推想應該就是在Window服務里設置為自動啟動的DB2實例服務沒有正常啟動,我在服務里面手動啟動它,提示這樣的錯誤:
Windows不能在本地計算機啟動DB2-DB2-0.有關更多信息,查閱系統事件日志.並參考特定服務代碼-8000.查看事件管理器,有這樣的記錄:
DB2-DB2-0服務因4294959296服務性錯誤而停止.來源SERVICE CONTROL 事件ID:7024
之后通過各方詢問,終於找到了原因:License到期了。
在db2cmd界面下運行db2licm -l,可以很明顯的看到許可證已經過期了。
知道原因所在了,剩下的,就是自己想辦法去解決這個問題了。
db2licm -l命令可以查看到db2的license信息。
如果license過期:
http://download.chinaprj.cn/link.php?key=iEsrsBss&url=http://dlwt.csdn.net/fd.php?i=226219322655988&s=97b87a0a93e675e668cc3e72e1eca169
可以找一個永久的license添加到db2數據庫即可
把db2ese_c.lic放到一目錄下:
/opt/ibm/db2/V9.1/license/db2ese_c.lic
在/opt/IBM/db2/V9.1/adm/目錄下執行
db2licm -a /opt/ibm/db2/V9.1/license/db2ese_c.lic
執行后顯示:LIC1402I License added successfully.
再用db2licm -l查看,你會發現你的db2變為永久了
呵呵,大功告成,以后就不怕db2數據庫過期了
**************************************************
驗證存在的DB2數據庫
db2 list db directory
db2 list db directory show detail
驗證實例使用的通訊協議,查看DB2COMM變量
db2set -all
查看數據庫管理器的配置,查看SVCENAME(特指tcpip協議)
db2 get dbm cfg
查看/etc/services中,有無與上面對應SVCENAME的端口,例如:
db2cDB2 50000/tcp