天天看點

《Oracle達人修煉秘籍:Oracle 11g資料庫管理與開發指南 》一3.5 運作時故障分析與解決

oracle資料庫伺服器在運作過程中可能出現某些問題,其中,有的問題是緻命的,必須重新安裝資料庫伺服器系統,而有的問題隻需進行簡單的處理就可以解決。下面介紹在學習使用oracle資料庫的過程中經常出現的幾個問題及對應的解決方法。

ora-12541: tns:無監聽器程式

當通過企業管理器或其他工具登入資料庫時,如果提示錯誤“ora-12541: tns:無監聽程式”,這說明oracle監聽程式沒有運作。

解決方法:選擇“開始→控制台→管理工具→服務”指令,打開“服務”對話框,在服務清單中啟動名為oracleoradb10g_home1tnslistener的服務。

ora-12514:tns:監聽程式目前無法識别連接配接描述符中請求的服務

1)當通過企業管理器或其他工具登入資料庫時,如果提示錯誤“ora-12514:tns:監聽程式目前無法識别連接配接描述符中請求的服務”,這可能是由于在系統服務中的oracle執行個體服務沒有啟動。

解決方法:打開作業系統的“服務”對話框,将服務清單中名為oracleserviceorcl(orcl為資料庫執行個體名)的服務啟動起來。

2)關閉資料庫(shutdown immediate)後,通過sql plus連接配接資料庫時,提示錯誤“ora-12514:tns:監聽程式目前無法識别連接配接描述符中請求的服務”,通過重新開機服務的方式啟動資料庫,再次連接配接卻能成功登入。這是由于在oracle 11g中,背景程序pmon自動在監聽器中注冊系統中的服務名,而不需要在監聽配置檔案listener.ora中指定監聽的服務名。但是,在資料庫處于關閉狀态下,如果pmon程序沒有啟動,也就不會自動在監聽器中注冊服務名,是以會出現上述錯誤提示。

解決方法1: 在監聽配置檔案networkadminlistener.ora的監聽服務清單中添加特定服務注冊資訊。例如,添加一個服務名為orcl的注冊資訊。

解決方法2:打開如圖3-36所示的oracle net manager對話框,在左側的清單中選中監聽程式名稱,如listener,在右側的下拉清單中選擇“資料庫服務”,然後單擊“添加資料庫”按鈕,添加被監聽的資料庫資訊,如圖3-40所示。最後儲存網絡配置,并重新開機監聽服務。

3.啟動作業系統清單中的某個oracle服務時,顯示“系統找不到指定的路徑”

在啟動oracle監聽程式時,可能彈出“系統找不到指定的路徑”對話框,其原因是系統資料庫中與該服務對應的可執行檔案的路徑丢失了。

《Oracle達人修煉秘籍:Oracle 11g資料庫管理與開發指南 》一3.5 運作時故障分析與解決

解決方法:選擇“開始→運作”指令,打開“運作”對話框,輸入regedit指令,打開作業系統的系統資料庫編輯器。在系統資料庫編輯器左側的樹狀結構中選擇“我的電腦→hkey_local_machine→system→currentcontrolset→services”,展開services頁籤,找到相應的oracle服務項并将其選中,如圖3-41所示。在右側對話框中單擊滑鼠右鍵,在彈出菜單中選擇“建立→字元串值”,建立一個字元串,将其命名為imagepath。輕按兩下建立的imagepath字元串,彈出如圖3-42所示的“編輯字元串”對話框。在“數值資料”編輯框中輸入目前oracle服務所對應的應用程式的路徑與名稱,然後單擊“确定”按鈕,關閉系統資料庫編輯器。

《Oracle達人修煉秘籍:Oracle 11g資料庫管理與開發指南 》一3.5 運作時故障分析與解決

注意 作業系統服務清單中的每個oracle服務都與oracle主目錄中bin目錄下的一個可執行程式相對應,例如,oracleoradb10g_home1tnslistener服務與d:appadministratorproduct11.2.0dbhome_1 bin tnslsnr.exe檔案相對應。

4.登入資料庫時出現“ora-12545:因目标主機或對象不存在,連接配接失敗”

如果在登入資料庫時産生“ora-12545:因目标主機或對象不存在,連接配接失敗”錯誤,其原因可能是安裝完資料庫伺服器後計算機ip位址變化或計算機名稱變化。

打開如圖3-36所示的oracle net manager對話框,分别選中左側樹狀結構中的監聽器和資料庫,修改右側對話框中的“主機名”為目前的計算機名。

5.通過ie啟動企業管理器時,顯示“無法顯示網頁”

在ie位址欄中輸入企業管理器位址,按Enter鍵後顯示“無法顯示網頁”,其原因可能是網絡故障或資料庫伺服器的oracledbconsole服務沒有啟動。

解決方法:在确認不是網絡故障的前提下,打開資料庫伺服器系統服務清單對話框,啟動名為oracledbconsole的服務。

6.無法啟動oracledbconsole服務

導緻oracledbconsole服務無法啟動的原因有多種,可以在指令提示符界面執行emctl start dbconsole指令啟動oracledbconsole服務,檢視無法啟動的原因。

(1)由于計算機網絡擴充卡改變引起的oracledbconsole服務無法啟動

oracle資料庫伺服器總是将系統中最後配置的網絡擴充卡作為自己的網絡擴充卡,是以當作業系統中建立了網絡擴充卡或網絡擴充卡綁定順序發生變化時,都将導緻oracledbconsole服務無法啟動,需要将安裝oracle資料庫伺服器時的網絡擴充卡調整為系統主網絡擴充卡。具體方法如下:

1)單擊“開始”按鈕,在“搜尋程式和檔案”文本框中輸入ncpa.cpl指令,按Enter鍵進入“網絡連接配接”對話框。或者打開“控制台→網絡和internet→網絡和共享中心”後進入“網絡和共享中心”對話框,單擊此對話框左側清單中的“更改擴充卡設定”連結,進入“網絡連接配接”對話框。

《Oracle達人修煉秘籍:Oracle 11g資料庫管理與開發指南 》一3.5 運作時故障分析與解決

2)打開“進階”菜單,選擇“進階設定”指令進入圖3-43所示的“進階設定”視窗,選擇當初安裝oracle資料庫伺服器時的主網絡擴充卡,如“網絡連接配接2”,然後單擊右側的上調箭頭按鈕,将其調整到第一位即可。

(2)由于更改了主機ip位址或主機名引起的oracledbconsole服務無法啟動

此時可以按下列方法進行解決。

1)修改下列兩個與主機ip或主機名相關的兩個檔案夾名。

兩個檔案夾分别為sfd_orcl和oc4jj2ee oc4j_dbconsole_sfd_orcl。其中,sfd為修改後的主機名或ip位址,orcl為sid。

2)重建oem的資料檔案庫。

3)重新配置dbcontrol。

4)啟動oracledbconsole服務。