开启1521端口监听_解决Oracle服务端1521端口无法telnet,服务名未开启监听问题

开启1521端口监听_解决Oracle服务端1521端口无法telnet,服务名未开启监听问题场景:oracle服务安装在windows本地,oracle客户端在虚拟机中,使用虚拟机连接windows的oracle数据库。问题1:使用虚拟机telnet我本地oracle1521端口,不通解决思路:关闭虚拟机linux防火墙(这个方法有点粗暴,建议在只需要修改防火墙的端口允许通过即可)#1:查看防火状态systemctlstatusfirewalldserviceiptables…

大家好,又见面了,我是你们的朋友全栈君。

场景:oracle服务安装在windows本地,oracle客户端在虚拟机中,使用虚拟机连接windows的oracle数据库。

问题1:使用虚拟机telnet我本地oracle1521端口,不通

解决思路:

关闭虚拟机linux防火墙(这个方法有点粗暴,建议在只需要修改防火墙的端口允许通过即可)

# 1:查看防火状态

systemctl status firewalld

service iptables status

# 2:暂时关闭防火墙

systemctl stop firewalld

service iptables stop

# 3:永久关闭防火墙

systemctl disable firewalld

chkconfig iptables off

# 4:重启防火墙

systemctl enable firewalld

service iptables restart

# 5:永久关闭后重启

chkconfig iptables on

防火墙配置规则 端口 允许的端口

# 查看已打开的端口

netstat -anp

# 添加允许的端口

firewall-cmd –add-port=1521/tcp –permanent

# 若移除端口

firewall-cmd –permanent –remove-port=1521/tcp

# 策略修改完成,请重启:

systemctl restart firewalld

添加windows防火墙对1521的入站允许规则

复制代码

问题2:使用sqlplus登录报错,ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

解决思路:关键字监听程序

查看监听服务状态

# 关闭监听服务

lsnrctl stop

# 启动监听服务

lsnrctl start

# 查看监听服务状态

lsnrctl stat

查看监听服务如果出现下列问题

复制代码

说明监听服务没有启动

去启动oracle监听服务,监听服务有两个,这里只做单监听讲,随便启动一个即可。

再通过lsnrctl stat查看监听服务,如果出现下图情况

只看到一个服务名”CLRExtProc”启动了,而我们想要的是ORCL服务名

这是需要修改listener.ora 文件

修改listener.ora 文件

文件路径,我本地的路径是:D:appniaobulashiproduct11.2.0dbhome_1NETWORKADMIN

需要添加以下红色部分代码,将服务名为ORCL添加到监听配置文件中

贴出来如下:

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = CLRExtProc)

(ORACLE_HOME = D:\app\niaobulashi\product\11.2.0\dbhome_1)

(PROGRAM = extproc)

(ENVS = “EXTPROC_DLLS=ONLY:D:\app\niaobulashi\product\11.2.0\dbhome_1\bin\oraclr11.dll”)

)

(SID_DESC=

(SID_NAME = ORCL)

(ORACLE_HOME = D:\app\niaobulashi\product\11.2.0\dbhome_1)

(PROGRAM = extproc)

(ENVS = “EXTPROC_DLLS=ONLY:D:\app\niaobulashi\product\11.2.0\dbhome_1\bin\oraclr11.dll”)

)

)

LISTENER =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = DESKTOP-NNDNCEI)(PORT = 1521))

)

ADR_BASE_LISTENER = D:\app\niaobulashi

复制代码

再查看监听服务状态,可以看到ORCL有了

修改tnsname.ora的HOST为本地主机名

ORACLR_CONNECTION_DATA =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

)

(CONNECT_DATA =

(SID = CLRExtProc)

(PRESENTATION = RO)

)

)

LISTENER_ORCL =

(ADDRESS = (PROTOCOL = TCP)(HOST = DESKTOP-NNDNCEI)(PORT = 1521))

ORCL =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = DESKTOP-NNDNCEI)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = ORCL)

)

)

复制代码

最后使用虚拟机就可以正常连接本地oracle服务了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133060.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号