下面是“Oracle数据库新装之后出现的监听程序无法正常启动和运行(Oracle-12514)问题”的完整攻略:
问题描述
在新装Oracle数据库后,试图启动监听程序时,会出现“Oracle-12514”错误,即无法正常启动和运行监听程序。
解决步骤
以下是解决该问题的步骤:
步骤一:检查监听程序配置
在解决该问题之前,首先需要检查监听程序配置是否正确。以下是配置监听程序的步骤:
- 打开命令行,输入
lsnrctl
命令进入命令行界面。 - 在命令行界面中,输入
set current_listener LISTENER
命令,指定当前使用的监听程序为“LISTENER”。 - 输入
show
命令,查看当前监听程序的配置信息。
如果配置正确但监听程序仍无法启动,则继续进行下一步操作。
步骤二:检查端口号是否被占用
如果监听程序配置正确但仍无法启动,则需要检查端口号是否被其他程序占用。以下是检查端口号的步骤:
- 在命令行界面中,输入
netstat -an
命令,查看当前已经开启的端口列表。 - 在列表中查找Oracle数据库使用的端口号(默认为1521),并确保该端口未被其他程序占用。
如果端口号未被占用但监听程序仍无法启动,则继续进行下一步操作。
步骤三:检查环境变量设置
如果监听程序配置正确、端口号未被占用,但监听程序仍无法启动,则需要检查环境变量设置是否正确。以下是检查环境变量的步骤:
- 检查
ORACLE_HOME
环境变量是否正确设置为Oracle数据库的安装目录,如:C:\oraclexe\app\oracle\product\11.2.0\server
。 - 检查
PATH
环境变量是否正确包含Oracle数据库所在目录中的bin
文件夹,如:C:\oraclexe\app\oracle\product\11.2.0\server\bin
。 - 检查
TNS_ADMIN
环境变量是否正确设置为Oracle客户端配置文件(如tnsnames.ora
、sqlnet.ora
等文件)所在目录的路径,如:C:\oraclexe\app\oracle\product\11.2.0\server\network\admin
。
如果环境变量设置正确但监听程序仍无法启动,则继续进行下一步操作。
步骤四:检查防火墙设置
如果监听程序配置正确、端口号未被占用、环境变量设置正确,但监听程序仍无法启动,则可能需要检查防火墙设置是否正确。以下是检查防火墙设置的步骤:
- 检查Windows防火墙是否被启用,并确保该端口未被防火墙禁用。
- 如果有其他防火墙软件,则需要按照其具体的设置方法进行设置,确保Oracle数据库端口已经被允许通过。
步骤五:重启计算机
如果以上步骤都已经完成,但仍无法启动监听程序,则建议重新启动计算机后再试。
示例说明
以下是两条示例说明:
示例一:检查监听程序配置
[oracle@localhost ~]$ lsnrctl
LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 30-AUG-2018 15:00:45
Copyright (c) 1991, 2014, Oracle. All rights reserved.
Welcome to LSNRCTL, type "help" for information.
LSNRCTL> set current_listener LISTENER
LSNRCTL> show
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date 20-AUG-2018 08:04:34
Uptime 10 days 6 hr. 56 min. 11 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /app/oracle/product/12.1.0.2/network/admin/listener.ora
Listener Log File /app/oracle/diag/tnslsnr/host01/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.101)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
LSNRCTL>
如果配置正确但监听程序仍无法启动,则继续进行下一步操作。
示例二:检查端口号是否被占用
[oracle@localhost ~]$ netstat -an | findstr "1521"
TCP 0.0.0.0:1521 0.0.0.0:0 LISTENING
TCP [::]:1521 [::]:0 LISTENING
如果端口号未被占用但监听程序仍无法启动,则继续进行下一步操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Oracle数据库新装之后出现的监听程序无法正常启动和运行(Oracle-12514)问题 - Python技术站