正确理解tnsnames.ora中的service_name
正解:tnsnames.ora中的service_name 其实应该是监听程序监听到
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "test.test.doudou.com" has 1 instance(s).
Instance "test", status READY, has 1 handler(s) for this service...
Service "testXDB.test.doudou.com" has 1 instance(s).
Instance "test", status READY, has 1 handler(s) for this service...
Service "test_XPT.test.doudou.com" has 1 instance(s).
Instance "test", status READY, has 1 handler(s) for this service...
The command completed successfully
场景回忆
查看service_names,db_domain
SQL> show parameter service_names
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
service_names string test
SQL> show parameter db_domain
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_domain string test.doudou.com
tnsping 通,可以ping通
[ora@dg-ss dbs]$ tnsping test
TNS Ping Utility for Linux: Version 10.2.0.4.0 - Production on 08-AUG-2008 17:23:19
Copyright (c) 1997, 2007, Oracle. All rights reserved.
Used parameter files:
/opt/oracle/product/10.2.0/db_2/network/admin/sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = dg-ss)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = test)))
OK (0 msec)
用户登录确报错 ORA-12514
[ora@dg-ss dbs]$ sqlplus doudou/123@test
SQL*Plus: Release 10.2.0.4.0 - Production on Fri Aug 8 17:23:23 2008
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor
查看监听程序状态
[ora@dg-ss dbs]$ lsnrctl status
LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 08-AUG-2008 17:22:00
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dg-ss)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.4.0 - Production
Start Date 08-AUG-2008 17:21:35
Uptime 0 days 0 hr. 0 min. 24 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/oracle/product/10.2.0/db_2/network/admin/listener.ora
Listener Log File /opt/oracle/product/10.2.0/db_2/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dg-ss)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "test.test.doudou.com" has 1 instance(s).
Instance "test", status READY, has 1 handler(s) for this service...
Service "testXDB.test.doudou.com" has 1 instance(s).
Instance "test", status READY, has 1 handler(s) for this service...
Service "test_XPT.test.doudou.com" has 1 instance(s).
Instance "test", status READY, has 1 handler(s) for this service...
The command completed successfully
查看tnsnames.ora文件
[ora@dg-ss admin]$ cat tnsnames.ora
TEST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dg-ss)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = test)
)
)
解决方法
TEST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dg-ss)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = test.test.doudou.com)
)
)
用户可以正常登录
[ora@dg-ss admin]$ sqlplus doudou/123@test
SQL*Plus: Release 10.2.0.4.0 - Production on Fri Aug 8 17:24:14 2008
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
总结:
通过这次简单的错误,让我意识到研究oracle不能人云亦云,必须通过实验才能研究的更深,更明了。
最后提醒自己一次tnsnames.ora中的service_name是监听程序监听到的service_name也可以认为是servcie_name=db_name.db_domain
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26442936/viewspace-758902/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26442936/viewspace-758902/