子洋丶 2019-03-25 12:11 采纳率: 100%
浏览 1281
已采纳

oracle 监听问题 --sqlplus可以登录,其他程序不可以连接

图片说明

???????????????
ip什么的根本不管,直接就能登录本地oracle

在其他程序连接oracle报错:
oracle 错误代码:ora-12541

图片说明

请问这种情况怎么解决?

以下是 listener.ora代码
为了解决这个问题,重新配置了一个监听
所以有两个监听程序,但是依旧不好使!

# listener.ora Network Configuration File: E:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

LISTENER2 =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = KX8G3P6HOZLYPJ9)(PORT = 1512))
    )
  )

ADR_BASE_LISTENER2 = E:\app\Administrator

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

ADR_BASE_LISTENER = E:\app\Administrator

SID_DESC =
  (GLOBAL_DBNAME = ORCL)
  (ORACLE_HOME = E:\app\Administrator\product\11.2.0\dbhome_1)
  (SID_NAME = ORCL)


以下是tnsnames.ora代码,
前两天还能用,今天一连接就开始报错!!

# tnsnames.ora Network Configuration File: E:\app\Administrator\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = KX8G3P6HOZLYPJ9)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

============补==================

以下是lsnrctl stat 执行结果

图片说明

以下是tnsping orcl执行结果

图片说明

  • 写回答

2条回答 默认 最新

  • 子洋丶 2019-04-02 16:42
    关注

    问题解决了,因为数据库用的不是很多,所以只能每天抽空查资料做测试!
    数据库回复前我曾修改了两处。

    一、数据库监听配置文件:

    1.tnsnames.ora 文件
    将HOST统一成 localhost 根据上述tnsnames.ora所示,我的HOST一个引用的localhost ,一个引用的机器名。
    2. listener.ora 文件
    也将HOST 统一成 localhost ,这里统一成localhost 是为了避免 listener.ora和.tnsnames.ora不统一的问题。

    有帖子说:统一127.0.0.1 或者 localhost 都是可以的,目前没有亲测IP地址。

    二 oracle字符集环境变量:

    我删除了之前为了解决sqlplus中文乱码问题,所手动添加的环境变量
    (后来发现也没用,因为不是字符集的问题,是因为win10命令窗口不兼容,
    解决方法,命令窗口右键属性,勾选使用旧版控制台,重启就OK了····)
    gbk字符集环境变量配置信息:
    环境变量:NLS_LANG ;
    变量值 : SIMPLIFIED CHINESE_CHINA.ZHS16GBK

    因为很早之前在别的电脑上也配置过一次,配置后恰巧也出现了问题
    (不过,那时候刚接触oracle懂得不多)
    所以这次连带也删除了。

    补充一下:
    @ 后面其实不会影响访问本地数据库,
    @ dba后 如果ip地址不对,那么也不影响他的本地链接,
    所以第一张图并没有问题!

    我在解决这个问题时,统一HOST了,删除了字符集变量,
    重启后就可以正常连接了。

    推测主要原因:
    外部程序或手动修改了计算机的IP、计算机名称
    监听出现问题配置HOST应该足以解决问题!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!