zoukankan      html  css  js  c++  java
  • Oracle ORA 12541 报错解决过程

       

       

    Oracle 导入全库之后使用plsql登陆时报错

       

    版本12C版本2

       

    ORA-12541: TNS: No Listener

       

       

       

    再oracle主机本地可以使用sqlplus 登陆,但是使用plsql无法登陆,报错如上。

       

    首先考虑是防火墙问题,查看防火墙和selinux均为关闭状态

       

    然后查看监听状态

    查看 监听状态的命令为首先使用oracle 用户登陆操作系统,命令lsnrctl

    进入监听程序,关键status 查看监听状态

       

    里面详细列出了监听的状态以及服务端的监听文件位置,

    查看监听文件

       

       

    查看客户端的监听配置

       

       

       

    无发现明显问题,下面尝试重启监听

       

    重启和启动监听的命令为

    lsnrctl stoplsnrctl start

       

       

    使用oracle用户执行该命令

       

    执行过上述的重启监听之后,依然报错

       

    为了排除防火墙因素在同网段使用ssh测试了连接1521端口,结果测试结果为访问被拒绝

    初步还是怀疑监听服务的问题,再次查看监听文件

    HOST =localhost 修改为本地IP地址HOST = 172.16.103.9,注意修改监听之前需要先关闭监听,关闭监听之后再修改监听文件,最后再启动监听

    修改后的监听文件

    启动监听

    查看监听状态

    1分30秒过去了,未监听到实例。

    此时尝试使用plsql连接

       

    此时依旧报错12514,再次查看监听状态,依旧是未监听到实例

    再次尝试修改监听文件,将监听IP修改未监听主机名。因为hosts文件中有解析将本机解析为oracle,故将监听文件中的主机名修改为oracle

    修改后的监听文件

    对应的hosts文件

    再次启动监听,查看监听状态

       

    已经监听到实例,再次使用plsql连接,plsql已经可以正常连接。

       

    总结:本库版本是oracle 12c 版本2 操作系统为oracle linux 7.3 这个库我执行过从12C版本1 RAC集群到这个库的整库还原,使用的expdp和impdp备份还原,备份还原之后出现此故障,不知道是oracle自身的bug还是因为我之前的库和现有的库版本不一致导致的问题。总之,监听文件中HOST对应的主机需要写主机名,写IP不生效,百度上说将HOST对应的值写成0.0.0.0的也可以监听到实例,再解决问题的过程中,没有尝试该方法。因为不清楚HOST=0.0.0.0是泛指该主机能连接到的所有主机还是该主机自身。还是HOST仅仅只能使用主机名来解析呢,还有,在我执行全库还原操作之前是没有这个问题的,监听文件的默认配置为localhost。根据本机hosts文件,localhost可解析为127.0.0.1和::1,这两条已经足够代表本机自身了,为什么还需要使用安装oracle过程中单独添加的解析条目 172.16.103.9 oracle 呢?

       

  • 相关阅读:
    MySQL--lsblk命令查看块设备
    MySQL--linux IO调度算法
    一致性哈希
    MySQL--查询表统计信息
    MySQL--区分表名大小写
    MySQL--Online DDL
    MySQL--MODIFY COLUMN和ALTER COLUMN
    MySQL--修改表字段
    MySQL--增加或修改列注释
    鼠标事件
  • 原文地址:https://www.cnblogs.com/withfeel/p/12421953.html
Copyright © 2011-2022 走看看