OracleORA12541报错解决过程Oracle 导⼊全库之后使⽤plsql登陆时报错
版本12C版本2
再oracle主机本地可以使⽤sqlplus 登陆,但是使⽤plsql⽆法登陆,报错如上。
⾸先考虑是防⽕墙问题,查看防⽕墙和selinux均为关闭状态
然后查看监听状态
查看监听状态的命令为⾸先使⽤oracle ⽤户登陆操作系统,命令lsnrctl
进⼊监听程序,关键status 查看监听状态
⾥⾯详细列出了监听的状态以及服务端的监听⽂件位置,
查看监听⽂件
查看客户端的监听配置
⽆发现明显问题,下⾯尝试重启监听
重启和启动监听的命令为
lsnrctl stop、lsnrctl start
使⽤oracle⽤户执⾏该命令
执⾏过上述的重启监听之后,依然报错
为了排除防⽕墙因素在同⽹段使⽤ssh测试了连接1521端⼝,结果测试结果为访问被拒绝
初步还是怀疑监听服务的问题,再次查看监听⽂件
将HOST =localhost 修改为本地IP地址HOST = 172.16.103.9,注意修改监听之前需要先关闭监听,关闭监听之后再修改监听⽂件,最后再启动监听
修改后的监听⽂件
启动监听
查看监听状态
1分30秒过去了,未监听到实例。
此时尝试使⽤plsql连接
此时依旧报错12514,再次查看监听状态,依旧是未监听到实例
再次尝试修改监听⽂件,将监听IP修改未监听主机名。因为hosts⽂件中有解析将本机解析为oracle,故将监听⽂件中的主机名修改为oracle
linux安装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 呢?
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论