ORACLE FOR WINDOWS 监听配置之 ORA-12514 TNS能ping通不能登陆数据库

本文解决了一个在Windows Server 2008 R2上安装Oracle 11.2.0.3数据库后遇到的ORA-12514错误。通过检查数据库状态、监听状态和服务连接,发现监听器未正确配置数据库服务。最终通过修改listener.ora文件并重启监听器解决了问题。
    环境介绍:
    操作系统:windows server2008 R2 
    数据库版本:oracle 11.2.0.3
    问题描述:windwos 服务器上刚安装完oracle 数据库,服务器本地或使用TNS远程连接数据库报错ORA-12514,具体报错如下:
c:\OGG>sqlplus zhul/zhul@192.168.3.13:1521/orcl
SQL*Plus: Release 11.2.0.3.0 Production on 星期二 2月 27 16:06:09 2018
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
ERROR:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
请输入用户名:
ERROR:
ORA-01017: 用户名/口令无效; 登录被拒绝
请输入用户名:
ERROR:
ORA-01017: 用户名/口令无效; 登录被拒绝
SP2-0157: 在 3 次尝试之后无法连接到 ORACLE, 退出 SQL*Plus
c:\OGG>
    问题处理过程
    1、查看数据库状态(由于使用操作系统认证能正常登陆数据库,可知不是操作系统环境变量导致的)
c:\OGG>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on 星期二 2月 27 16:04:03 2018
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
orcl
SQL> quit
从 Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开
c:\OGG>
    2、查看监听状态:
c:\OGG>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on 星期二 2月 27 16:08:50 2018
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> alter system register ;
系统已更改。
SQL> quit
从 Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开
c:\OGG>lsnrctl status
LSNRCTL for 64-bit Windows: Version 11.2.0.3.0 - Production on 27-2月 -2018 16:09:02
Copyright (c) 1991, 2011, Oracle.  All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.3.13)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 64-bit Windows: Version 11.2.0.3.0 - Produ
ction
启动日期                  26-2月 -2018 16:08:57
正常运行时间              1 天 0 小时 0 分 9 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          C:\oracle\app\oracle\db\product\11.2.0\dbhome_1\networ
k\admin\listener.ora
监听程序日志文件          C:\oracle\app\oracle\db\diag\tnslsnr\WIN-6ABO3IQOF3U\l
istener\alert\log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.3.13)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
  实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
c:\OGG>
    3、测试数据库服务连接
c:\OGG>tnsping orcl
TNS Ping Utility for 64-bit Windows: Version 11.2.0.3.0 - Production on 27-2月 -2018 16:05:49
Copyright (c) 1997, 2011, Oracle.  All rights reserved.
已使用的参数文件:
C:\oracle\app\oracle\db\product\11.2.0\dbhome_1\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.13)(PORT =
1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))OK (0 毫秒)
c:\OGG>
    4、再次尝试TNS本地远程登陆
c:\OGG>sqlplus zhul/zhul@ORCL
SQL*Plus: Release 11.2.0.3.0 Production on 星期二 2月 27 16:12:24 2018
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
ERROR:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
请输入用户名:
ERROR:
ORA-01017: 用户名/口令无效; 登录被拒绝
请输入用户名:
ERROR:
ORA-01017: 用户名/口令无效; 登录被拒绝
SP2-0157: 在 3 次尝试之后无法连接到 ORACLE, 退出 SQL*Plus
c:\OGG>
    5、由2判断监听虽然注册orcl服务,但是没有向外提供服务,查看监听配置文件
# listener.ora Network Configuration File: C:\oracle\app\oracle\db\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\oracle\app\oracle\db\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\oracle\app\oracle\db\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.13)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
ADR_BASE_LISTENER = C:\oracle\app\oracle\db
    6、由5监听配置文件内容可知,监听不提供orcl服务,修改监听配置文件(添加绿色加粗部分):
# listener.ora Network Configuration File: C:\oracle\app\oracle\db\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = C:\oracle\app\oracle\db\product\11.2.0\dbhome_1) 
      (SID_NAME = ORCL)
     )       
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\oracle\app\oracle\db\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\oracle\app\oracle\db\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.13)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

ADR_BASE_LISTENER = C:\oracle\app\oracle\db
    7、重启监听
C:\Users\Administrator>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on 星期二 2月 27 16:19:57 2018
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> show parameter service
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
service_names                        string      orcl
SQL> quit
从 Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开
C:\Users\Administrator>lsnrctl stop
LSNRCTL for 64-bit Windows: Version 11.2.0.3.0 - Production on 27-2月 -2018 16:22:32
Copyright (c) 1991, 2011, Oracle.  All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.3.13)(PORT=1521)))命令执行成功
C:\Users\Administrator>lsnrctl start
LSNRCTL for 64-bit Windows: Version 11.2.0.3.0 - Production on 27-2月 -2018 16:22:37
Copyright (c) 1991, 2011, Oracle.  All rights reserved.
启动tnslsnr: 请稍候...
TNSLSNR for 64-bit Windows: Version 11.2.0.3.0 - Production
系统参数文件为C:\oracle\app\oracle\db\product\11.2.0\dbhome_1\network\admin\listener.ora
写入C:\oracle\app\oracle\db\diag\tnslsnr\WIN-6ABO3IQOF3U\listener\alert\log.xml
的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.3.13)(PORT=1521)))
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.3.13)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 64-bit Windows: Version 11.2.0.3.0 - Produ
ction
启动日期                  27-2月 -2018 16:22:42
正常运行时间              0 天 0 小时 0 分 5 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          C:\oracle\app\oracle\db\product\11.2.0\dbhome_1\networ
k\admin\listener.ora
监听程序日志文件          C:\oracle\app\oracle\db\diag\tnslsnr\WIN-6ABO3IQOF3U\l
istener\alert\log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.3.13)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
  实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "orcl" 包含 1 个实例。
  实例 "ORCL", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
C:\Users\Administrator>lsnrctl status
LSNRCTL for 64-bit Windows: Version 11.2.0.3.0 - Production on 27-2月 -2018 16:22:51
Copyright (c) 1991, 2011, Oracle.  All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.3.13)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 64-bit Windows: Version 11.2.0.3.0 - Produ
ction
启动日期                  27-2月 -2018 16:22:42
正常运行时间              0 天 0 小时 0 分 12 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          C:\oracle\app\oracle\db\product\11.2.0\dbhome_1\networ
k\admin\listener.ora
监听程序日志文件          C:\oracle\app\oracle\db\diag\tnslsnr\WIN-6ABO3IQOF3U\l
istener\alert\log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.3.13)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
  实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "orcl" 包含 1 个实例。
  实例 "ORCL", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
C:\Users\Administrator>
    8、再次远程登陆成功
C:\Users\Administrator>sqlplus zhul/zhul@ORCL
SQL*Plus: Release 11.2.0.3.0 Production on 星期二 2月 27 16:23:11 2018
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
C:\Users\Administrator>sqlplus zhul/zhul@192.168.3.13:1521/orcl
SQL*Plus: Release 11.2.0.1.0 Production on 星期二 2月 27 16:23:51 2018
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>

Oracle数据库升级后,若遇到ORA-12514错误,常是因为监听配置不正确,导致无法识别连接描述符中请求的服务。解决此类问题,可以按照以下步骤进行诊断与修复: 参考资源链接:[解决Oracle升级后ORA-12514错误:监听配置问题](https://wenku.youkuaiyun.com/doc/64530b9eea0840391e76c821?spm=1055.2569.3001.10343) 1. 首先,使用`tnsping`命令测试监听器是否能够响应特定的服务名。例如,输入命令`tnsping orcl`,如果响应正常,将显示监听器的配置信息;如果无响应,则需要进一步检查监听器状态。 2. 运行`lsnrctl status`命令查看监听器的状态。此命令会显示监听器是否正在运行,以及是否有任何错误信息。 3. 定位并打开监听配置文件`listener.ora`,常位于`$ORACLE_HOME/network/admin/`目录下。检查`LISTENER`部分的配置,确保`HOST`和`PORT`设置正确无误,与`tnsnames.ora`文件中的服务名配置匹配。 4. 如果在`listener.ora`文件中未找到匹配的配置,可能需要添加一个新的`DESCRIPTION`块,其内容应与Net Manager中的监听配置一致。 5. 在修改了`listener.ora`文件后,还需更新`tnsnames.ora`文件,确保其中的服务名配置与`listener.ora`中的新配置相匹配。 6. 完成配置文件的修改后,重启监听器以应用更改。可以使用`lsnrctl stop`命令停止监听器,然后使用`lsnrctl start`命令重新启动监听器。 7. 检查系统的环境变量设置,特别是`PATH`变量,确保指向正确的Oracle安装路径,这对于Oracle服务的正常运行至关重要。 8. 对于新安装或升级的Oracle数据库,还需要检查防火墙设置是否允许Oracle服务的端口信,以及Oracle服务是否已作为系统服务启动。在Windows系统中,可以过服务管理器来检查和启动Oracle相关的服务。 此过程涉及多个配置文件和系统设置,需仔细操作以避免新的配置错误。如果在过程中遇到具体问题,可以参考《解决Oracle升级后ORA-12514错误:监听配置问题》一书,该书详细介绍了此类问题的诊断和解决方法,提供了解决ORA-12514错误的全面指导。 参考资源链接:[解决Oracle升级后ORA-12514错误:监听配置问题](https://wenku.youkuaiyun.com/doc/64530b9eea0840391e76c821?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值