2023年8月1日发(作者:)
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修改后的监听⽂件对应的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 呢?
2023年8月1日发(作者:)
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修改后的监听⽂件对应的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 呢?
发布评论