Oracle的一般监听问题解决

1. 无监听的解决办法:

   Windows的情况下重启之后或者是一些异常状态时会造成服务没有正常启动起来, 解决办法:

   打开服务 方法1 任务管理器-服务界面 或者是 运行-services.msc 打开服务

   查找后缀为 listener的那个服务 启动或者是重启,可以解决很大一部分问题。

2. 如果开启监听服务之后提示oracle正在启动或者关闭中

   可能oracleservice服务没有正常,需要将这个服务打开。

3. 如果前面两个都无法解决问题 建议打开命令行首先输入

lsnrctl

主要命令 查看监听状态 status

关闭服务 stop

开启服务 start

如果服务状态不正常可能需要修改admin/network下面的配置文件进行处理。

4. 监听正常之后 再次打开cmd命令行 输入 sqlplus / as sysdba

以sysdba的方式打开

如果出现连接到空闲进程, 需要startup 一下 

Oracle的startup的过程 主要是: unmount->mount->open

数据库开启之后在lsnrctl中使用status应该能够查看到Oracle的instanceid 一般情况为ready 这种情况下一般可以访问了

 

5. 但是这里面listener 以及tnsname的配置文件中 host 不能为 localhost 或者是127.0.0.1 因为这两者会导致无法网络方式连接到服务器。

 

6.如果外部机器使用sqlplus 或者是plsql进行连接提示 无法获取的服务名时 有两种解决办法,一种是动态注册

sqlplus / as sysdba 之后执行命令

alter system register

如果不能解决需要使用静态注册的方式来处理, 主要的解决办法:

修改listener.ora的配置文件

在配置文件中增加一段oracle_sid的内容:

(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\app\Administrator\product\12.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\app\Administrator\product\12.2.0\dbhome_1\bin\oraclr12.dll")
)

可以同一级增加上

(SID_DESC =
(SID_NAME = ORA12CR2)
(ORACLE_HOME = C:\app\Administrator\product\12.2.0\dbhome_1)
(GLOBAL_DBNAME = ORA12CR2)
)

这一段就是静态注册使用 静态注册的服务名在status里面显示的是unknown 这一点与动态注册不一样。动态注册为ready

7.如果还解决不了问题的话 可能就得从客户端以及防火墙网络是否联通进行考虑

不过理论上应该优先考虑这一部分。

转载于:https://www.cnblogs.com/jinanxiaolaohu/p/7994678.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值