2009年12月11日 星期五

ORA12514 TNS監聽器目前不知道連線描述區中要求的服務

先描述一下筆者所在的情況:

Client: windows 7

Server : 任一Linux主機, 上面有裝Oracle任一軟體.

由於通常是在Linux上建立Oracle, 所以在Client常要連線Server.

目前筆者較常使用的是PL/SQL DEVELOPER 這套軟體.

至於要怎樣連線Server, 請參閱筆者其他文章.

—————————————————————————————–

問題描述:

由於Linux常會改寫主機名字, 所以會導致PL/SQL DEVELOPER無法連線.

ORA-12514: TNS: 監聽器目前不知道連線描述區中要求的服務.

主要是因為Client下的tnsnames.ora設定的問題.

先查詢一下Linux主機名稱

[root ~ ]#vi /etc/hosts

…..

127.0.0.1 localhost.localdomain localhost

……

之後在tnsnames.ora

將service更改為完整的sid+domainname

舉例如下:

orcl =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl.localdomain)
)
)

這樣就可以了.

這個問題的原因是因為client連線時server無法分辨真正要連線的SID Name(Service Name)所造成的。

原文出處:

http://tw.myblog.yahoo.com/database995/article?mid=812&prev=813&next=-1

沒有留言: