我單位有一個歷史數(shù)據(jù)庫,由于歷史過于“遙遠”,加之系統(tǒng)只用于查詢歷史數(shù)據(jù),無新數(shù)據(jù)產(chǎn)出,廠家已經(jīng)沒有技術(shù)人員跟蹤維護;我中心也沒有太多的技術(shù)力量加以維護,平常最多的維護就是有經(jīng)辦人員告訴我們,系統(tǒng)打不開了,一般就是中間件應(yīng)用服務(wù)死掉了,我們重啟一下中間件服務(wù),就可以了,沒有多余的操作。但今天不尋常,筆者按照以前的處理方式,重啟Weblogic服務(wù)后,經(jīng)辦人員告訴我,系統(tǒng)報錯,查詢不了。提示錯誤如圖1。
該系統(tǒng)主要是我市基本醫(yī)療保險參保繳費及待遇享受情況,由于歷史的原因,系統(tǒng)數(shù)據(jù)沒有并入新系統(tǒng)中來,一直以來,由我們自己管理,系統(tǒng)原來是在Unix系統(tǒng)中,后來我們要求廠家遷移到Windows 2003的操作系統(tǒng)中來。數(shù)據(jù)庫使用的Oracle 9i,中間件選用的是Weblogic 8i。
通過關(guān)閉Weblogic 應(yīng)用,重啟Weblogic應(yīng)用,我試了試登錄系統(tǒng),提示如圖2。系統(tǒng)確實登錄出現(xiàn)了問題,以前登錄沒有這個提示的。點擊確定后,系統(tǒng)可以登錄的。我試試查詢看看能不能查詢到數(shù)據(jù),選擇查詢菜單提示如圖3。
根據(jù)經(jīng)驗,我首先通過PL/SQL工具連接數(shù)據(jù)看看,連接是可以的,數(shù)據(jù)也可以查詢出來,說明數(shù)據(jù)庫是正常的。會不會是磁盤空間不夠了,查看服務(wù)器的磁盤空間,發(fā)現(xiàn)D和E空間還都有好幾個G的空間(數(shù)據(jù)文件分別放在D和E盤)。通過圖1和圖3的錯誤提示應(yīng)該是表空間的問題或數(shù)據(jù)文件的損壞導致的。確定思路后,就著手解決他,點擊開始→程序→Oracle-OraHome92→Enterprise Manager Console選擇獨立登錄,點擊確定通過登錄數(shù)據(jù)庫控制臺,進入登錄界面輸入管理賬戶和密碼并選擇連接身份為SYSDBA,點擊確定后,選擇雙擊存儲,查看服務(wù)器中的相關(guān)數(shù)據(jù)表空間,如圖4,我們發(fā)現(xiàn)用戶數(shù)據(jù)文件User05.ora和索引文件Index03.ora文件沒有自動擴展。其他的數(shù)據(jù)庫文件都自動擴展了,圖2的錯誤和這個數(shù)據(jù)文件是否擴展剛好一致,會不會就是這個問題呢?備份好數(shù)據(jù)庫,抱著試試看的態(tài)度,選中User05.ora文件,右鍵選擇“查看/編輯數(shù)據(jù)文件”在存儲標簽下選擇“數(shù)據(jù)文件已滿后自 動擴展(AUTOEXTEND)”增量填入1024KB(因為只用于查詢)最大大小在選擇自動擴展。點擊確定。同樣的方法也把Index03.ora文件也設(shè)置一下,如圖5,因為數(shù)據(jù)庫只用于查詢,所以增量就設(shè)置較小一點。設(shè)置好以后,重啟數(shù)據(jù)庫,問題解決。
圖1 提示錯誤
圖2 彈出提示
圖3 再次出現(xiàn)的提示。
圖4 相關(guān)數(shù)據(jù)表
圖5 設(shè)置文件
開始我們對該數(shù)據(jù)庫一直存在一個誤區(qū),認為該數(shù)據(jù)庫只用于查詢數(shù)據(jù),不再辦理任何業(yè)務(wù),數(shù)據(jù)量不應(yīng)該增加,其實,在查詢數(shù)據(jù)庫的同時,日志等文件是增加的,如果數(shù)據(jù)庫中的數(shù)據(jù)文件沒有空間,且不是自動擴展的,非常容易產(chǎn)生一些列的問題,通過設(shè)置數(shù)據(jù)庫中的文件自動擴展的好處是可以盡量減少人為的維護;減少出現(xiàn)沒有剩余空間可以寫入數(shù)據(jù)導致程序出錯,在數(shù)據(jù)庫沒有新數(shù)據(jù)系統(tǒng)中沒有大量數(shù)據(jù)產(chǎn)生的情況下,利用數(shù)據(jù)庫自動擴展功能確實是個不錯的選擇。