急急急!oracle数据库报TNS连接超时,更换IP后正常,网络通讯正常,TNS配置正常,不要复制常规的答案

急急急!oracle数据库报TNS连接超时,更换IP后正常,网络通讯正常,TNS配置正常,不要复制常规的答案,第1张

1 你在服务器上是否 可以正常登录数据库并查询数据sqlplus

2 服务器上 用sqlplus user/pwd@orcl 的方式能否登录?

3 服务器的防火墙是否开着,是否没有为oracle调整过

4 客户端用oracle sql developer 连接时,地址,端口,数据库实例名,用户名,密码,是否都正确?

tnsping 它ping的是连接串啊,不是什么SID,也不是主机名,你需要在tnsnamesora中定义这个连接串,或者用netca工具来生产这个连接串

tnsnamesora具体位置在$ORACLE_HOME/network/admin中

1先确定网络是否通,2,服务端的监听程序有没有开,启动监听用 lsnrctl start,3,客户端有没有配置服务端的监听地址,,在运行里输入 cmd,输入 netca 配置oracle的net服务名配置。

原因:

1、EF 、EFCore 中默认存在链接池,每次数据库 *** 作完成之后,会将连接丢到连接池。连接的释放过程单独管控(这里不做详细解释);

2、当Oracle数据库中设置有连接(会话)有效期时,到期后,Oracle服务端会中断连接,并将会话标识为:SNIPED状态;

注:查询数据中已超时,未释放的会话:select from v$session where status = 'SNIPED';

3、当Oracle数据库中连接超时后,EF连接池中的连接依然存在,若再次进行数据库 *** 作,则会提示 idle 超时异常;

解决方案:

方案1:调整数据库设置,将数据库中的“IDLE_TIME”设置未“UNLIMITED”,具体方式请自行百度;

可通过以下语句查看当前设置:

select username, b from dba_users a, dba_profiles b where aprofile = bprofile and username='IOT_SUB_ALL';

方案2:

在项目代码数据库连接字符串中添加:min pool size=0;设置,将EF连接池最小连接保持数设置为0(默认为1);

连接字符串样式:

"User Id=用户id;Password=密码;Data Source=IP:端口/服务器名;min pool size=0;"

连接字符串参数详细说明见:

>

如用户一段时间没有作 *** 作或会话没有同数据库交换数据,通过 *** 时控制断开联接

假设你的用户名为 user_a,你要设计的时间是 50分钟没有 *** 作就断开。

create profile my_profile limit idle_time 50;

alter user user_a profile my_profile;

以上就是关于急急急!oracle数据库报TNS连接超时,更换IP后正常,网络通讯正常,TNS配置正常,不要复制常规的答案全部的内容,包括:急急急!oracle数据库报TNS连接超时,更换IP后正常,网络通讯正常,TNS配置正常,不要复制常规的答案、oracle客户端连接服务器数据库,总是连接超时、你好,想问你个数据库的问题 Oracle数据库的监听程序设置时出现:ORA-12170 TNS 连接超时怎么办呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9701486.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存