plsql链接服务器无响应,sqlplus 连接数据库无响应

一批三台安装服务器,先后出现了sqlplus /  连接数据库无响应问题。

1

因为几乎同一时间出现问题,起初怀疑是网络组对网络有整体调整。后经过确认网络组有调整,但不影响我们的服务器。

2 telnet server 1521端口正常响应

3 从终端客户plsql 连接oracle server,连接正常。

4 使用tcpdump发现与服务之间tcp的三次握手是正常成功的

无奈,google之

---------------------------------------------

事实上只要Linux

x86主机运行天数是是24.8的倍数都有可能引发该bug,因为time()函数值为null,造成无限死循环,从而耗尽cpu。

解决办法三种:

1) 重启主机;

2) 打patch set,如升级到10.2.0.4;

3) 对该bug单独打临时patch 4612267。

第一种方法没有彻底解决问题,以后照旧;第二种方法,升级时间长,且要求停库很久,当前生产环境暂不适合;

参考文档:

Doc ID: 338461.1 SQL*Plus 10.2.0.1 Hangs, When System Uptime Is

Long Period of Time

Doc ID: 4612267.8 Bug 4612267 - OCI client spins when machine

uptime >= 249 days

我采取的是第三种方法,打补丁包的方式。而且据o

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在PL/SQL中连接远程服务器数据库,你可以使用以下方法之一: 1. 使用数据库:在PL/SQL中,可以使用数据库连接远程服务器数据库。首先,你需要在本地数据库中创建一个数据库,指向远程服务器数据库。这可以通过使用CREATE DATABASE LINK语句来完成。然后,你可以使用该链来执行远程服务器上的查询和操作。 例如,假设你要连接到名为"remote_db"的远程数据库。你可以在本地数据库中创建一个链,如下所示: ```sql CREATE DATABASE LINK remote_link CONNECT TO remote_username IDENTIFIED BY remote_password USING 'remote_db'; ``` 在上述代码中,"remote_link"是你为链命名的名称,"remote_username"和"remote_password"是远程数据库的凭据,"remote_db"是远程数据库的地址。 下来,你可以在PL/SQL中使用该链来执行查询和操作。例如: ```sql DECLARE remote_data VARCHAR2(100); BEGIN SELECT data_column INTO remote_data FROM remote_table@remote_link WHERE condition; -- 在这里处理获取的数据 END; ``` 在上述代码中,"remote_table"是远程数据库中的表名,"condition"是你的查询条件。 2. 使用适配器:另一种方法是使用适配器来连接远程服务器数据库。适配器是一个中间件组件,允许你在PL/SQL中使用类似于本地数据库连接的语法来连接远程数据库。 具体来说,你可以使用Oracle Database Gateway for SQL Server或Oracle Database Gateway for ODBC等适配器来连接各种类型的远程数据库。 使用适配器的步骤和语法略有不同,具体取决于你选择的适配器和远程数据库类型。你需要按照适配器的文档和指南进行设置和配置。 希望以上信息对你有帮助!如有任何疑问,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值