- 論壇徽章:
- 0
|
解決Enterprise Manager 無法連接到數(shù)據(jù)庫實(shí)例 鄭重聲明:
此文僅以介紹一個解決問題的思路,以及面對一個突發(fā)問題,如何思考、分析。并不是所有的此類問題都可以由于本文所介紹方案來解決。
背景說明:
10g中oracle使用基于web的oem來本地管理數(shù)據(jù)庫。無需在本地安裝數(shù)據(jù)庫客戶端,通過web頁面就可以遠(yuǎn)程管理單個數(shù)據(jù)庫。這樣簡便了數(shù)據(jù)庫管理的準(zhǔn)備工作,但同時也引發(fā)了由此而產(chǎn)生的一系列問題。
今天早上,打開db control,發(fā)現(xiàn)enterprise manager無法連接到數(shù)據(jù)庫實(shí)例。但是可以看出數(shù)據(jù)庫實(shí)例、監(jiān)聽程序和實(shí)例的代理都正常工作。數(shù)據(jù)庫正常工作。比較納悶,如下圖所示:
錯誤圖例
近期并沒有對數(shù)據(jù)庫做調(diào)整,昨天用的還好好的。不過倒是昨天做了一個丟失spfile的恢復(fù)演練(這是后話)。
碰到這么一個問題,我首先想到的查看相關(guān)日志。
1、找到警告日志,里面沒有任何相關(guān)的信息。因?yàn)檫@個db control 獨(dú)立于數(shù)據(jù)庫運(yùn)行,只是用來管理數(shù)據(jù)庫的工具而已。
2、想到emctl,有自己的運(yùn)行日志。于是查看之:一般在oracle_home目錄下的以host _sid格式命名的一個目錄,里面就是所有包含db control的運(yùn)行相關(guān)配置、日志等信息。查看sysman目錄下的log文件夾中包含了db control 的運(yùn)行日志信息,其中的emoms.log就是其運(yùn)行日志,找到相應(yīng)時間點(diǎn),發(fā)現(xiàn)以下錯誤信息:
2007-11-01 11:00:40,796 [HttpRequestHandler-29045356] ERROR conn.ConnectionService verifyRepositoryEx.433 - Invalid Connection Pool. ERROR = Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
The Connection descriptor used by the client was:
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=jusdoi)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))
|
3、根據(jù)上面的錯誤提示信息,表明在啟動db control的時候,監(jiān)聽不能識別其中請求的服務(wù)名。
4、得知這里是用service_name來標(biāo)識目標(biāo)數(shù)據(jù)庫,于是就以sys登錄數(shù)據(jù)庫,查看參數(shù)service_names的值:orcl,再查看了參數(shù)db_domain的值,發(fā)現(xiàn)為com.cn。
5、發(fā)現(xiàn)問題,這里的SERVICE_NAME應(yīng)該為orcl.com.cn。由于db control不是使用客戶端的配置信息來連接數(shù)據(jù)庫,它有自己的配置信息,找到相關(guān)配置文件emoms.properties,修改其中的相關(guān)項(xiàng),然后保存,重新啟動db control,問題解決。
Db_domain這個參數(shù)原來為空,昨天做實(shí)驗(yàn)的時候,由于沒有備份spfile,后來手工做了個pfile,啟動數(shù)據(jù)庫,在這過程中修改了這個參數(shù)值,從而導(dǎo)致了db control無法連接到實(shí)例。到此為止,問題解決。
|
|
|
|
|