很长的SQL连接开放时间

时间:2010-03-02 16:07:34

标签: oracle

最近,我们已将Oracle 9.2.0.6生产数据库从Windows 32位RAC(2个节点)迁移到Linux 64位环境。 Linux 64位环境的内存是Windows 32位环境的8倍,Linux 64位的磁盘速度更快(RAID 10与Windows 5的RAID 5相比)。

然而,在这次迁移之后,我们注意到sql连接时间已经显着增加。有一段时间,打开连接需要16秒。我们使用了不同的驱动程序(JDBC,ODBC,OCI)和SQLPlus。但是,我们注意到sql连接时间没有区别。我们调查了网络,但发现没有网络问题。

有一段时间,打开一个连接大约需要16秒。该数据库有大约50000个用户架构。

有人可以告诉我可以采取哪些措施来减少连接开放时间?感谢您的帮助。

5 个答案:

答案 0 :(得分:3)

在我们的案例中是DNS。在我们的管理员注释掉服务器端的所有DNS条目后,系统立即开始响应。

答案 1 :(得分:2)

这可能有很多原因,如果没有更多信息,很难确定根本原因。

话虽如此,检查你所连接的机器上的sqlnet.ora文件(即< oracle_home> /network/admin/sqlnet.ora),看看你是否有一行如下:

SQLNET.AUTHENTICATION_SERVICES= (NTS)

如果是,请尝试将其更改为:

SQLNET.AUTHENTICATION_SERVICES= (NONE)

通过SQLPlus保存并重试您的连接。

另外,请检查您为NAMES.DIRECTORY_PATH设置的值。确保您用于连接到实例的方法是列表中的第一个。例如,我们使用TNSNAMES和我们的读物:

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

希望这有帮助。

答案 2 :(得分:2)

如果突然tnsping变得非常慢(意味着它之前是一个可以正常的系统),但ping到同一个数据库服务器很快,最可能的原因是listener.log文件也是大:

  

$ ORACLE_HOME /网络/数/ LISTENER.LOG

某些操作系统(根据我的经验,SunOS)会遇到写一个非常大的文本文件性能问题(超过4G?),所以尾部/清理日志文件会立即解决tnsping需要很长时间的问题。

答案 3 :(得分:2)

我在Mac OS上针对Oracle 12.1.0.2.0使用SQL Developer 4.1.5.21的连接建立速度非常慢。

为了分析这一点,我安装了Oracle Instant Client来直接检查与sqlplus的连接。当我尝试与$ sqlplus <USER>/<PASSWORD>@<HOST>:<PORT>/<SERVICE> SQL*Plus: Release 12.1.0.2.0 Production on Thu Mar 16 10:50:44 2017 Copyright (c) 1982, 2016, Oracle. All rights reserved. ERROR: ORA-21561: OID generation failed 建立联系时,它给了我以下错误:

hostname

然后我找到了博客条目Oracle ORA-21561 : OID generation failed,并将主机名(由127.0.0.1命令返回)添加到/etc/hosts中的127.0.0.1 localhost MacBook-Pro.local 行:

sqlplus

这解决了for country in countriesList { print(country["country"]) } 中的ORA-21561错误以及SQL Developer中建立速度慢的问题。

答案 4 :(得分:1)

可能表明问题领域的事情:

来自客户:

  • 所有客户都表现出这个问题吗?
  • 快速ping 服务器吗?
  • 正在调整 dbname slow?
  • 你能正常连接telnet吗?

从服务器:

  • 是否能够快速ping 客户端
  • 是客户名称和IP快速的nslookup吗?
  • 正在调整 dbname slow?
  • 是sqlplus用户@dbname快还是慢?
  • 是服务器上的直接连接吗? I.E.,export ORACLE_SID = db; sqlplus user / pw