2023年8月1日发(作者:)
ORA-12514,TNS:listenerdoesnotcurrentlyknowofs。。。今天使⽤SQL Developer连接⼀台测试服务器数据库(ORACLE 11g)时,遇到了“ORA-12514, TNS:listener does not currently know ofservice requested in connect descriptor”错误,具体提⽰如下所⽰:
执⾏请求的操作时遇到错误:
Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
供应商代码 12514
⼏年前写过⼀篇关于”“的案例⽂章,现在看来当时写的⽐较肤浅和粗糙,当然案例也不⼀样,下⾯在总结⼀下如何处理ORA-12514这个错误吧。
Step 1: ⾸先检查客户端的⾥⾯的host、port、service_name等是否正确myvm = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.20.57.15)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = SHARED) (SERVICE_NAME = omain)
) )逐⼀仔细检查过后发现这些配置都是正确的。 其实前⼏天还是正常来的。测试服务器和都没有改动过。所以我们继续后⾯排查。
Step 2:检查确认数据库实例是否启动。SQL> select status from v$instance;
STATUS------------OPEN
SQL>
如上所⽰,数据库实例正常,并没有关闭。当数据库实例异常关闭,也会出现ORA-12514错误,如下所⽰(如果我关闭⼀数据库实例,然后使⽤SQL*Plus测试连接数据库就会遇到这个错误):C:Users>sqlplus system/123456@mydb
SQL*Plus: Release 11.2.0.1.0 Production on 星期三 4⽉ 12 11:56
Copyright (c) 1982, 2010, Oracle. All rights reserved.
ERROR:ORA-12514: TNS: 监听程序当前⽆法识别连接描述符中请求的服务
Step 3:检查⽹络是否正常,tnsping能否ping通
如下所⽰,ping 和tnsping 均都正常
监听服务也正常,没有问题[oracle@DB-Server admin]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 12-APR-2017 10:36:40
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))STATUS of the LISTENER------------------------Alias LISTENERVersion TNSLSNR for Linux: Version 11.2.0.1.0 - ProductionStart Date 12-APR-2017 10:31:20Uptime 0 days 0 hr. 5 min. 20 secTrace Level offSecurity ON: Local OS AuthenticationSNMP OFFListener Parameter File /u01/app/oracle/product/11.1.0/dbhome_1/network/admin/tener Log File /u01/app/oracle/diag/tnslsnr/DB-Server/listener/alert/tening (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=omain)(PORT=1521)))The listener supports no servicesThe command completed successfully
Step 4:检查$ORACLE_BASE/diag/tnslsnr/DB-Server/listener/alert下的⽇志,发现host_addr为10.20.34.76,实际IP地址不是这个。因为监听⽂件⾥⾯我使⽤的hostname omain,所以赶紧检查/etc/hosts的配置
[root@DB-Server ~]# ifconfigeth0 Link encap:Ethernet HWaddr B0:83:FE:55:32:E5
inet addr:10.20.57.15 Bcast:10.20.57.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2363981 errors:0 dropped:0 overruns:0 frame:0 TX packets:180048 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000
RX bytes:225925147 (215.4 MiB) TX bytes:14349633 (13.6 MiB) Interrupt:233 Base address:0x4000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:3692 errors:0 dropped:0 overruns:0 frame:0 TX packets:3692 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0
RX bytes:2982961 (2.8 MiB) TX bytes:2982961 (2.8 MiB)
[root@DB-Server ~]# more /etc/hosts# Do not remove the following line, or various programs# that require network functionality will fail.10.20.34.76 omain DB-Server127.0.0.1 omain localhost::1 omain6 localhost6[root@DB-Server ~]#
果然发现/etc/hosts下配置为10.20.34.76, 具体原因是因为IT部门调换办公室,从三楼撤到⼆楼,将这台PC搬下来后,服务器IP地址变化了,修改/etc/hosts,然后重启监听服务,问题解决。
2023年8月1日发(作者:)
ORA-12514,TNS:listenerdoesnotcurrentlyknowofs。。。今天使⽤SQL Developer连接⼀台测试服务器数据库(ORACLE 11g)时,遇到了“ORA-12514, TNS:listener does not currently know ofservice requested in connect descriptor”错误,具体提⽰如下所⽰:
执⾏请求的操作时遇到错误:
Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
供应商代码 12514
⼏年前写过⼀篇关于”“的案例⽂章,现在看来当时写的⽐较肤浅和粗糙,当然案例也不⼀样,下⾯在总结⼀下如何处理ORA-12514这个错误吧。
Step 1: ⾸先检查客户端的⾥⾯的host、port、service_name等是否正确myvm = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.20.57.15)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = SHARED) (SERVICE_NAME = omain)
) )逐⼀仔细检查过后发现这些配置都是正确的。 其实前⼏天还是正常来的。测试服务器和都没有改动过。所以我们继续后⾯排查。
Step 2:检查确认数据库实例是否启动。SQL> select status from v$instance;
STATUS------------OPEN
SQL>
如上所⽰,数据库实例正常,并没有关闭。当数据库实例异常关闭,也会出现ORA-12514错误,如下所⽰(如果我关闭⼀数据库实例,然后使⽤SQL*Plus测试连接数据库就会遇到这个错误):C:Users>sqlplus system/123456@mydb
SQL*Plus: Release 11.2.0.1.0 Production on 星期三 4⽉ 12 11:56
Copyright (c) 1982, 2010, Oracle. All rights reserved.
ERROR:ORA-12514: TNS: 监听程序当前⽆法识别连接描述符中请求的服务
Step 3:检查⽹络是否正常,tnsping能否ping通
如下所⽰,ping 和tnsping 均都正常
监听服务也正常,没有问题[oracle@DB-Server admin]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 12-APR-2017 10:36:40
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))STATUS of the LISTENER------------------------Alias LISTENERVersion TNSLSNR for Linux: Version 11.2.0.1.0 - ProductionStart Date 12-APR-2017 10:31:20Uptime 0 days 0 hr. 5 min. 20 secTrace Level offSecurity ON: Local OS AuthenticationSNMP OFFListener Parameter File /u01/app/oracle/product/11.1.0/dbhome_1/network/admin/tener Log File /u01/app/oracle/diag/tnslsnr/DB-Server/listener/alert/tening (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=omain)(PORT=1521)))The listener supports no servicesThe command completed successfully
Step 4:检查$ORACLE_BASE/diag/tnslsnr/DB-Server/listener/alert下的⽇志,发现host_addr为10.20.34.76,实际IP地址不是这个。因为监听⽂件⾥⾯我使⽤的hostname omain,所以赶紧检查/etc/hosts的配置
[root@DB-Server ~]# ifconfigeth0 Link encap:Ethernet HWaddr B0:83:FE:55:32:E5
inet addr:10.20.57.15 Bcast:10.20.57.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2363981 errors:0 dropped:0 overruns:0 frame:0 TX packets:180048 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000
RX bytes:225925147 (215.4 MiB) TX bytes:14349633 (13.6 MiB) Interrupt:233 Base address:0x4000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:3692 errors:0 dropped:0 overruns:0 frame:0 TX packets:3692 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0
RX bytes:2982961 (2.8 MiB) TX bytes:2982961 (2.8 MiB)
[root@DB-Server ~]# more /etc/hosts# Do not remove the following line, or various programs# that require network functionality will fail.10.20.34.76 omain DB-Server127.0.0.1 omain localhost::1 omain6 localhost6[root@DB-Server ~]#
果然发现/etc/hosts下配置为10.20.34.76, 具体原因是因为IT部门调换办公室,从三楼撤到⼆楼,将这台PC搬下来后,服务器IP地址变化了,修改/etc/hosts,然后重启监听服务,问题解决。
发布评论