葉瑞綿,王曉華,丁慧瑩
(武警黑龍江省總隊(duì)醫(yī)院,黑龍江哈爾濱150076)
“軍字一號(hào)”系統(tǒng)是以O(shè)racle為后臺(tái)數(shù)據(jù)庫(kù),以Power Builder為開(kāi)發(fā)平臺(tái)進(jìn)行開(kāi)發(fā)的,在“軍字一號(hào)”系統(tǒng)運(yùn)行的過(guò)程中,Oracle數(shù)據(jù)庫(kù)常常會(huì)出現(xiàn)一些問(wèn)題[1],本文總結(jié)了Oracle數(shù)據(jù)庫(kù)在使用過(guò)程中的問(wèn)題,并給出了解決方法,分析如下。
原因:達(dá)到會(huì)話允許的最大游標(biāo)數(shù)。
措施:①在初始化文件INIT.ORA文件中增加OPEN_CURSORS的數(shù)量,一般要求大于200。②出現(xiàn)這種錯(cuò)誤提示大多是因?yàn)镺racleConnection,OracleDataReader使用完后沒(méi)有正常的關(guān)閉造成的。只要使用后立即關(guān)閉掉就可以了,即調(diào)用相應(yīng)的Close()就可以了。對(duì)于OracleDataReader來(lái)說(shuō)一定要調(diào)用 Close()關(guān)掉[2]。
原因:一個(gè)行觸發(fā)讀取或修改變化的表(正在修改、插入)時(shí),產(chǎn)生這種錯(cuò)誤。
措施:檢查觸發(fā)器腳本,保證引用完整性。
原因:錯(cuò)誤代碼 ORA-12545表示網(wǎng)絡(luò)連接串(即tnsnames.ora文件中的HOST處)中使用的機(jī)器名和IP地址不存在。
措施:修改客戶端的hosts和tnsnames.ora或者修改oracle服務(wù)器數(shù)據(jù)庫(kù)。
原因:沒(méi)有啟動(dòng)監(jiān)聽(tīng)器或者監(jiān)聽(tīng)器損壞。
措施:①直接修改listener.ora,路徑是:Oracle安裝目錄oracleora81 etworkADMINlistener.ora.修改 HOST 為主機(jī)名或者IP。
②通過(guò)使用“Net8ConfigurationAssistant”工具向?qū)е氨O(jiān)聽(tīng)程序配置”增加一個(gè)監(jiān)聽(tīng)器即可。
原因:Oracle的數(shù)據(jù)庫(kù)服務(wù)沒(méi)有啟動(dòng)。
措施:①環(huán)境變量setOracle_sid=需要的服務(wù)名。②listener.ora,tnsnames.ora等內(nèi)機(jī)器名或者 IP 地址是否正確。③netstat–a檢查端口是否被占用。④檢查注冊(cè)表HKEY_LOCAL_MACHINE/Software/Oracle/Home0新增字符串USE_SHARED_SOCKET=TRUE,重新啟動(dòng)服務(wù)。
原因:Oracle的網(wǎng)絡(luò)服務(wù)名沒(méi)有正確配置。
措施:①請(qǐng)使用“Net8ConfigurationAssistant”工具向?qū)е氨镜鼐W(wǎng)絡(luò)服務(wù)名配置”配置TNS即可。②首先查看客戶端的tnsnames.ora文件,找到數(shù)據(jù)庫(kù)連接的描述中,sid=或service_name=之后的名稱,假設(shè)這個(gè)名稱是dbserver。然后在客戶端用tnsping命令,測(cè)試剛才找到的實(shí)例名,命令:tnspingdbserver,如果不通,則要從網(wǎng)絡(luò)環(huán)境、數(shù)據(jù)庫(kù)環(huán)境等方面找原因,看是否實(shí)例名錯(cuò)誤、數(shù)據(jù)庫(kù)是否啟動(dòng)、數(shù)據(jù)庫(kù)監(jiān)聽(tīng)是否啟動(dòng)、網(wǎng)絡(luò)是否通暢[3]。
本地計(jì)算機(jī)上的OracleOraDb10g_home1TNSListener服務(wù)啟動(dòng)后又停止了。一些服務(wù)自動(dòng)停止,如果它們沒(méi)有什么可做的,例如“性能日志和警報(bào)”服務(wù)[4]。
解決辦法:oracleora81 etworkADMINlistener.ora.把這這文件里的內(nèi)容改下HOST=你的計(jì)算機(jī)名字。
以上是筆者對(duì)在系統(tǒng)運(yùn)行過(guò)程中出現(xiàn)的數(shù)據(jù)庫(kù)問(wèn)題進(jìn)行的總結(jié),oracle數(shù)據(jù)庫(kù)功能強(qiáng)大,我們所遇到問(wèn)題的也只是一小部分,希望以此能和更多的同行學(xué)習(xí)交流。
[1]夏 洪斌,呂一剛,于敏,等.醫(yī)院信息系統(tǒng)ORACLE數(shù)據(jù)庫(kù)升級(jí)的實(shí)現(xiàn)[J].解放軍醫(yī)院管理雜志,2008(04):343.
[2]張 帆,張紅君,劉聰.“軍字一號(hào)”O(jiān)RACLE數(shù)據(jù)庫(kù)升級(jí)的實(shí)現(xiàn)[J].解放軍醫(yī)院管理雜志,2007(07):522.
[3]曹 麗,劉剛.醫(yī)院信息系統(tǒng)ORACLE數(shù)據(jù)庫(kù)升級(jí)解決方案[J].醫(yī)療設(shè)備信息,2007(07):30.
[4]劉 志敏.Oracle數(shù)據(jù)庫(kù)應(yīng)用管理解決方案[M].電子工業(yè)出版社,2002.