Oracle-pl/sql developer客户端连接报错问题分析

问题一:

        用户在windows电脑使用pl/sql developer客户端使用tns方式连接数据库时,出现ORA-12170 TNS连接超时报错

        使用ezconnect方式连接可以成功

问题一分析:

        首先,查看pl/sql developer软件的Oracle客户端配置configure-->preferences,确认客户端目录的位置c:\instantclient_11_2\

        查看客户端安装目录network/admin下面的tnsnames.ora,sqlnet.ora配置,配置了orcl连接串,经检查ip地址、端口服务名都是正确的,地址解析顺序NAMES.DIRECTORY_PATH也是正确的,优先TNSANMES路径

        新增一个测试的连接串test,奇怪的事发生了,通过这个连接串test可以连接成功,怀疑是不是orcl连接串字符有乱码情况,重写orcl再尝试连接还是出现报错ORA-12170 TNS连接超时报错

        检查了一遍配置都没问题之后,只能启动客户端跟踪方法进行下一步的分析,在Oracle客户端的sqlnet.ora配置了跟踪参数开启客户端跟踪

SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
Trace_level_client=16
Trace_directory_client=C:\instantclient_11_2\network\admin
Trace_unique_client=on
Trace_timestamp_client=on
Diag_adr_enabled=off
tnsping.trace_directory=C:\instantclient_11_2\network\admin
tnsping.trace_level=admin

        查看客户端生成的跟踪文件cli_xxx,发现了可疑的地方,在进行tns解析时,pl/sql developer工具会先访问本地的安装目录路径下的tnsnams.ora文件 local name file is C:\PLSQL Developer\tnsnames.ora文件,再去访问Oracle客户端所在的C:\instantclient_11_2\network\admin\tnsnames.ora文件路径

        打开C:\PLSQL Developer\tnsnames.ora文件,发现里面也有一个orcl连接串,而这个连接串的IP地址配为127.0.0.1,真相大白,难怪使用orcl就会出现连接超时,pl/sql developer工具会先访问本地的安装目录路径下的tnsnams.ora文件,再去访问Oracle客户端所在的tnsnames.ora文件,所以每次orcl解析到的IP地址都是127.0.0.1,而这个地址并没有监听1521端口,那可不就会出现tns连接超时的问题

问题一解决:

        将C:\PLSQL Developer\tnsnames.ora文件重命名挪走,以Oracle客户端所在的tnsnames.ora文件为准即可

问题二:

        在解决完客户端连接超时报错问题,交给用户使用之后,用户又反馈使用客户端连接数据库,大量用户登录提示密码错误ORA-01017: invalid username/password; logon denied

问题二分析:

        看到当前数据库版本为Oracle19c,马上想到的就是用户的密码版本是不是有问题,查看当前用户的密码版本为11g,12c,也就是说用户的密码版本只包含11g和12c的密码算法,客户端使用其他的密码版本10G会由于算法不一致导致出现密码不一致的问题

        可以看到当前连接到数据库服务器上的最小客户端版本为8(ALLOWED_LOGON_VERSION_CLIENT),数据库服务器上的最小服务端版本为8(ALLOWED_LOGON_VERSION_SERVER),如果在当前配置下,用户的密码版本生成应该是有10G版本的

        查看sqlnet.ora修改时间2023/11/29 17:49晚于用户的创建时间2023-11-29 12:00,应该是在没有配ALLOWED_LOGON_VERSION_SERVER之前就创建了用户,最小服务端版本默认为12导致创建的密码版本只有11g以及12c

问题二解决:

        重新对应用用户的密码进行重置,产生包括密码版本10G,11G,12C的用户密码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/264786.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

麒麟系统使用桌面共享远程桌面

客户端安装vinager 服务端 安装 vnc4server xrdp tightvncserver vino 安装完成后 需要重启 在用户的家目录下新建 .xsession 写入xfce4-session防止闪退 雪花屏 开启xrdp服务 远程链接 Vnc只能链接系统登录的用户 Rdp可以链接所有普通用户

晶圆划片机助力LED陶瓷基板高效切割:科技提升产业新高度

博捷芯半导体划片机在LED陶瓷基板制造领域,晶圆划片机作为一种先进的切割工具,正在为提升产业效率和产品质量发挥重要作用。通过精确的切割工艺,晶圆划片机将LED陶瓷基板高效地切割成独立的芯片,为LED产业的快速发展提供了有力支持…

【队列】数据也得排队

目录 引言 队列的概念 队列的实现 单向链表队列 结构 初始化 入队 出队 取队头 取队尾 求个数 判空 内存释放 总结 引言 队列,这个看似普通的数据结构,其实隐藏着无尽的趣味和巧思。就像单向链表这把神奇的魔法钥匙,它能打开队…

redis数据淘汰策略:

面试官:了解redis数据淘汰策略吗? 就是当Redis内存使用达到设置的上限时, 此时需要使用redis数据淘汰机制来进行数据淘汰。(有针对key的 和 针对value数据的) Redis支持8种不同策略来选择要删除的key: n…

【JavaSE专栏62】Java继承:面向对象编程中重要的基石

Java继承:面向对象编程中重要的基石 🚀 Java继承:面向对象编程中重要的基石 🚀摘要引言 🌐 一、探寻继承的本质 🕵️‍♂️1. 继承的基本原理2. 实现继承的方式单继承与多继承extends关键字 3. 子类与父类关…

SSL证书更新

首先,我们需要理解为什么需要更新SSL证书。SSL证书的有效期通常为一年。一旦证书过期,浏览器会显示警告,提示用户该网站的SSL证书已经过期,这可能会导致用户对网站的信任度下降,甚至直接离开网站。此外,一些…

【IDEA】IntelliJ IDEA中进行Git版本控制

本篇文章主要记录一下自己在IntelliJ IDEA上使用git的操作,一个新项目如何使用git进行版本控制。文章使用的IDEA版本 IntelliJ IDEA Community Edition 2023.3,远程仓库为https://gitee.com/ 1.配置Git(File>Settings) 2.去Git…

最新Redis7持久化(权威出版)

首先我们要知道什么是持久化:持久化是指将数据保存到磁盘上,以确保在Redis服务器重启时数据不会丢失。 Redis支持两种主要的持久化方式:RDB持久化和AOF持久化 下面让我依次给你介绍一下: RDB持久化 作用 这是将Redis数据保存…

【JavaSE专栏64】抽象类 vs. 接口:面向对象编程中的非实例化之争

】抽象类 vs. 接口:面向对象编程中的非实例化之争 《抽象类 vs. 接口:面向对象编程中的非实例化之争》摘要 🚀引言 🌐 一、抽象类的实质与应用 📘二、接口:定义规范与实现解耦 📝三、对比抽象类…

STM32-TIM定时器输出比较

目录 一、输出比较简介 二、PWM简介 三、输出比较通道(通用) 四、输出比较通道(高级) 五、输出比较模式 六、PWM基本结构 七、PWM参数计算 八、外设介绍 8.1 舵机 8.2 直流电机及驱动 九、开发步骤 十、输出比较库函数…

组件之间传值

目录 1:组件中的关系 2:父向子传值 3:子组件向父组件共享数据 4:兄弟组件数据共享 1:组件中的关系 在项目中使用到的组件关系最常用两种是,父子关系,兄弟关系 例如A组件使用B组件或者C组件…

以太坊虚拟机EVM介绍,智能合约详解

以太坊为例:什么是智能合约?智能合约怎么部署、调用、执行?智能合约的原理?智能合约存在哪儿?如何区分调用的是智能合约?世界状态数据库、EVM、智能合约它们之间的关系? 什么是智能合约 指的是…