Linux Oracle数据库安装实战:ora-12541、ORA-12514

Linux Oracle数据库安装-远程链接问题解决

  • PL/SQL 连接登录 报【ora-12541 TNS:无监听程序】
  • PL/SQL 连接登录 报【ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务】

PL/SQL 连接登录 报【ora-12541 TNS:无监听程序】

lsnrctl status命令检查监听状态,发现端口为1539与Oracle客户端配置文件《tnsnames.ora》中配置的端口不一致(为1251),遂更改Oracle服务端监听端口,更改操作如下:
root下 su - oracle命令到Oracle用户下
cd $ORACLE_HOME cd network/admin到Oracle admin目录下
vim listener.ora 打开监听文件 后使用i等文本编辑保存命令更改端口号,随后重启监听。

重新尝试远程连接问题依旧
检查Linux服务器防火墙 发现1251端口未设置例外,使用如下命令开放端口:
iptables -A INPUT -p tcp --dport 1521 -j ACCEPT
service iptables save
service iptables restart
重新启动监听 重新尝试连接 成功!

PL/SQL 连接登录 报【ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务】

检查ORACLE服务端实例名、服务名与ORACLE客户端配置文件《tnsnames.ora》《listener.ora》实例名和服务名均匹配。
lsnrctl status命令检查监听状态发现打印如下:
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
按照其他博主提供的建议将localhost更改为服务器IP地址:无效

尝试其他建议在客户端listener.ora中加入如下内容:
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\oracle\virtual\product\12.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = “EXTPROC_DLLS=ONLY:D:\oracle\virtual\product\12.2.0\dbhome_1\bin\oraclr12.dll”)
)

 (SID_DESC =
      (SID_NAME = orcl)
      (ORACLE_HOME = D:\oracle\virtual\product\12.2.0\dbhome_1)
    )

红色部分为新增内容
依然无效。

认真查看lsnrctl status打印,发现如下内容:
The listener supports no services
The command completed successfully
发现orcl实例未注册到监听,更改服务端《listener.ora》文件,增加以下内容:

SID_LIST_LISTENER =  
(SID_LIST =  
  (SID_DESC =  
  (GLOBAL_DBNAME = orcl)
  (SID_NAME = orcl)
  )
)

手动增加监听注册
重新启动监听,PL/SQL远程连接成功

你可能感兴趣的:(Oracle实战)