問:當我想要連接到我的Oracle數據庫時,我通過Oracle應用開發工具集(TOAD)得到了如下的錯誤信息:
ORA-12514:TNS:listenercouldnotresolveSERVICE_NAMEgiveninconnectdescriptor
我至今已經非常高興地使用這個數據庫幾個月了,而這種情況卻突然出現。請告訴我到底發生了什麼?
此問題提交於2004年11月19日
答:當你的tnsnames.ora文件中的SERVICE_NAME沒有向你想要連接的數據庫服務器中的監聽器注冊的時候,就會出現這個錯誤信息。如果你的客戶端配置沒有發生變化,那麼數據庫服務器配置就必須進行改變,否則你用來進行連接的SERVICE_NAME就永遠不會注冊到監聽器。
注冊到監聽器的SERVICE_NAME 是由數據庫實例的service_names 參數來決定的。查看參考指南中的服務器文檔來找到有關當這個參數沒有設置的時候,它的默認值是如何設置的詳細信息。你可以通過明確地對其進行設置,來避免它被另一個參數的變化所影響。
你還有可能是遇到了定時的問題。如果監聽器被重新啟動,那麼數據庫實例就必須向它重新注冊。通常情況下,每60秒就會出現這樣的問題。如果你迫不及待,那麼就以數據庫管理員的身份登錄到數據庫服務器,並且運行“更改系統注冊器”,這樣就可以強制它立即注冊到監聽器中。