开启了数据库的监听与进程,然而连接的时候,却出现下面的问题:
SQL> conn sys/123456@warehouse as sysdba;
ERROR:
ORA-12154: TNS: 无法解析指定的连接标识符
然后,利用tnsping来测试整个连接进程哪里出了问题:
C:\Users\asus>tnsping warehouse
TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 17-8月 -2013 23:33:27
Copyright (c) 1997, 2010, Oracle. All rights reserved.
已使用的参数文件:
D:\app\asus\product\11.2.0\client_1\network\admin\sqlnet.ora
TNS-03505: 无法解析名称
“无法解释名称”,应该是tnsnames.ora文件中没有添加该实例名称的解释信息。为此,我利用Net Manager来添加了本地命名。然后再用TNSPING命令来测试。然后,成功了。
C:\Users\asus>TNSPING WAREHOUSE
TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 17-8月 -2013 23:58:40
Copyright (c) 1997, 2010, Oracle. All rights reserved.
已使用的参数文件:
D:\app\asus\product\11.2.0\client_1\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = WAREHOUSE)))
OK (30 毫秒)
另外,对于TNSPING命令来说,除了可以像上面那样测试名称是否可以解释之外。还可以检测服务器端的listener是否已经开始监听。如下:
C:\Users\asus>lsnrctl stop-------关闭监听
LSNRCTL for 32-bit Windows: Version 11.2.0.1.0 - Production on 18-8月 -2013 00:08:00
Copyright (c) 1991, 2010, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
命令执行成功
C:\Users\asus>tnsping warehouse---测试连接
TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 18-8月 -2013 00:08:21
Copyright (c) 1997, 2010, Oracle. All rights reserved.
已使用的参数文件:
D:\app\asus\product\11.2.0\client_1\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = WAREHOUSE)))
TNS-12541: TNS: 无监听程序----可以看到,名称可以解释,只是服务器端并没有启动监听;
C:\Users\asus>lsnrctl start----重新开启监听
LSNRCTL for 32-bit Windows: Version 11.2.0.1.0 - Production on 18-8月 -2013 00:08:53
Copyright (c) 1991, 2010, Oracle. All rights reserved.
启动tnslsnr: 请稍候...
Failed to open service <OracleOraClient11g_home1TNSListener>, error 1060.
TNSLSNR for 32-bit Windows: Version 11.2.0.1.0 - Production
系统参数文件为D:\app\asus\product\11.2.0\client_1\network\admin\listener.ora
写入d:\app\asus\diag\tnslsnr\PC\listener\alert\log.xml的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 11.2.0.1.0 - Production
启动日期 18-8月 -2013 00:09:01
正常运行时间 0 天 0 小时 0 分 5 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 D:\app\asus\product\11.2.0\client_1\network\admin\listener.ora
监听程序日志文件 d:\app\asus\diag\tnslsnr\PC\listener\alert\log.xml
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
服务摘要..
服务 "CATALOG" 包含 1 个实例。
实例 "CATALOG", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "TEST" 包含 1 个实例。
实例 "TEST", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
C:\Users\asus>tnsping warehouse---再次测试
TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 18-8月 -2013 00:09:17
Copyright (c) 1997, 2010, Oracle. All rights reserved.
已使用的参数文件:
D:\app\asus\product\11.2.0\client_1\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = WAREHOUSE)))
OK (10 毫秒)